+#if __WORDSIZE == 32
#define VERSION 0x910
#define LICENSE 0x952
#define TRANSFER 0x98c
#define INT_ENABLE 0x98e
#define EVENT_PULL 0x988
#define USB_SET_INTERFACE 0x981
+#else
+#define VERSION 0xc0000910
+#define LICENSE 0xc0000952
+#define TRANSFER 0xc000098c
+#define USB_TRANSFER 0xc0000983
+#define EVENT_UNREGISTER 0xc0000987
+#define INT_DISABLE 0xc000091f
+#define INT_WAIT 0xc000094b
+#define CARD_REGISTER 0xc00009a4
+#define EVENT_REGISTER 0xc00009a5
+#define CARD_UNREGISTER 0xc000092b
+#define USB_GET_DEVICE_DATA 0xc00009a7
+#define INT_ENABLE 0xc000098e
+#define EVENT_PULL 0xc0000988
+#define USB_SET_INTERFACE 0xc0000981
+#endif
#define MAGIC 0xa410b413UL
+#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 {
{
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;
WDU_INTERFACE *pInterfaces;
} WDU_CONFIGURATION;
-struct wdu_device_info {
+struct usb_device_info {
WDU_DEVICE_DESCRIPTOR Descriptor;
WDU_PIPE_INFO Pipe0;
WDU_CONFIGURATION *pConfigs;
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;