X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/usb-driver/blobdiff_plain/e71b6bf3f359a5b670cf4a14fa15836572da2492..c21a2deca24d58fbef00bbc2fca205e83191d5d7:/usb-driver.h?ds=sidebyside diff --git a/usb-driver.h b/usb-driver.h index faab957..baddf4a 100644 --- a/usb-driver.h +++ b/usb-driver.h @@ -1,6 +1,7 @@ #define VERSION 0x910 #define LICENSE 0x952 #define TRANSFER 0x98c +#define MULTI_TRANSFER 0x98d #define USB_TRANSFER 0x983 #define EVENT_UNREGISTER 0x987 #define INT_DISABLE 0x91f @@ -12,9 +13,41 @@ #define INT_ENABLE 0x98e #define EVENT_PULL 0x988 #define USB_SET_INTERFACE 0x981 +#define CARD_REGISTER_OLD 0x97d +#define INT_ENABLE_OLD 0x91e +#define USB_GET_DEVICE_DATA_OLD 0x980 +#define EVENT_REGISTER_OLD 0x986 +#define TRANSFER_OLD 0x903 +#define MULTI_TRANSFER_OLD 0x904 #define MAGIC 0xa410b413UL +#define PP_DATA 0 +#define PP_STATUS 1 +#define PP_CONTROL 2 +#define PP_ECP_CFGA 0 +#define PP_ECP_CFGB 1 +#define PP_ECP_ECR 2 +#define PP_READ 10 +#define PP_WRITE 13 + +#define PP_TDI 0x01 +#define PP_TDO 0x10 +#define PP_PROG 0x10 +#define PP_TCK 0x02 +#define PP_TMS 0x04 +#define PP_CTRL 0x08 + +#ifdef DEBUG +#define DPRINTF(format, args...) fprintf(stderr, format, ##args) +#else +#define DPRINTF(format, args...) +#endif + +void hexdump(unsigned char *buf, int len); + +#define WDU_GET_MAX_PACKET_SIZE(x) ((unsigned short) (((x) & 0x7ff) * (1 + (((x) & 0x1800) >> 11)))) + /* http://www.jungo.com/support/documentation/windriver/811/wdusb_man_mhtml/node78.html#SECTION001734000000000000000 */ struct header_struct { @@ -217,8 +250,8 @@ typedef struct { unsigned char Byte; // Use for 8 bit transfer. unsigned short Word; // Use for 16 bit transfer. - unsigned int Dword; // Use for 32 bit transfer. - unsigned long long Qword; // Use for 64 bit transfer. + uint32_t Dword; // Use for 32 bit transfer. + uint64_t Qword; // Use for 64 bit transfer. void* pBuffer; // Use for string transfer. } Data; } WD_TRANSFER, WD_TRANSFER_V61; @@ -350,3 +383,16 @@ struct usb_device_info { WDU_CONFIGURATION *pActiveConfig; WDU_INTERFACE *pActiveInterface[WD_USB_MAX_INTERFACES]; }; + +typedef enum { + WDU_DIR_IN = 1, + WDU_DIR_OUT = 2, + WDU_DIR_IN_OUT = 3 +} WDU_DIR; + +typedef enum { + PIPE_TYPE_CONTROL = 0, + PIPE_TYPE_ISOCHRONOUS = 1, + PIPE_TYPE_BULK = 2, + PIPE_TYPE_INTERRUPT = 3 +} USB_PIPE_TYPE;