4 /* Helper macro to enable gcc's extension. */
5 #ifndef __GNU_EXTENSION
7 #define __GNU_EXTENSION __extension__
9 #define __GNU_EXTENSION
18 typedef enum _USB_DEVICE_TYPE
24 typedef enum _USB_DEVICE_SPEED
31 typedef union _BM_REQUEST_TYPE
41 } BM_REQUEST_TYPE
, *PBM_REQUEST_TYPE
;
43 typedef struct _USB_DEFAULT_PIPE_SETUP_PACKET
45 BM_REQUEST_TYPE bmRequestType
;
49 __GNU_EXTENSION
struct
58 __GNU_EXTENSION
struct
66 } USB_DEFAULT_PIPE_SETUP_PACKET
, *PUSB_DEFAULT_PIPE_SETUP_PACKET
;
69 C_ASSERT(sizeof(USB_DEFAULT_PIPE_SETUP_PACKET
) == 8);
71 typedef struct _USB_DEVICE_QUALIFIER_DESCRIPTOR
74 UCHAR bDescriptorType
;
77 UCHAR bDeviceSubClass
;
78 UCHAR bDeviceProtocol
;
79 UCHAR bMaxPacketSize0
;
80 UCHAR bNumConfigurations
;
82 } USB_DEVICE_QUALIFIER_DESCRIPTOR
, *PUSB_DEVICE_QUALIFIER_DESCRIPTOR
;
85 typedef union _USB_HIGH_SPEED_MAXPACKET
94 } USB_HIGH_SPEED_MAXPACKET
, *PUSB_HIGH_SPEED_MAXPACKET
;
96 typedef struct _USB_INTERFACE_ASSOCIATION_DESCRIPTOR
99 UCHAR bDescriptorType
;
100 UCHAR bFirstInterface
;
101 UCHAR bInterfaceCount
;
102 UCHAR bFunctionClass
;
103 UCHAR bFunctionSubClass
;
104 UCHAR bFunctionProtocol
;
106 } USB_INTERFACE_ASSOCIATION_DESCRIPTOR
, *PUSB_INTERFACE_ASSOCIATION_DESCRIPTOR
;
108 #define USB_PORT_STATUS_CONNECT 0x0001
109 #define USB_PORT_STATUS_ENABLE 0x0002
110 #define USB_PORT_STATUS_SUSPEND 0x0004
111 #define USB_PORT_STATUS_OVER_CURRENT 0x0008
112 #define USB_PORT_STATUS_RESET 0x0010
113 #define USB_PORT_STATUS_POWER 0x0100
114 #define USB_PORT_STATUS_LOW_SPEED 0x0200
115 #define USB_PORT_STATUS_HIGH_SPEED 0x0400
116 #define USB_DEVICE_QUALIFIER_DESCRIPTOR_TYPE 0x06
117 #define USB_INTERFACE_ASSOCIATION_DESCRIPTOR_TYPE 0x0B
121 #endif //__USB200_H__