3 /* Helper macro to enable gcc's extension. */
4 #ifndef __GNU_EXTENSION
6 #define __GNU_EXTENSION __extension__
8 #define __GNU_EXTENSION
16 typedef enum _USB_DEVICE_TYPE
{
21 typedef enum _USB_DEVICE_SPEED
{
27 #define USB_PORT_STATUS_CONNECT 0x0001
28 #define USB_PORT_STATUS_ENABLE 0x0002
29 #define USB_PORT_STATUS_SUSPEND 0x0004
30 #define USB_PORT_STATUS_OVER_CURRENT 0x0008
31 #define USB_PORT_STATUS_RESET 0x0010
32 #define USB_PORT_STATUS_POWER 0x0100
33 #define USB_PORT_STATUS_LOW_SPEED 0x0200
34 #define USB_PORT_STATUS_HIGH_SPEED 0x0400
37 typedef union _BM_REQUEST_TYPE
{
45 } BM_REQUEST_TYPE
, *PBM_REQUEST_TYPE
;
47 typedef struct _USB_DEFAULT_PIPE_SETUP_PACKET
{
48 BM_REQUEST_TYPE bmRequestType
;
51 __GNU_EXTENSION
struct {
58 __GNU_EXTENSION
struct {
65 } USB_DEFAULT_PIPE_SETUP_PACKET
, *PUSB_DEFAULT_PIPE_SETUP_PACKET
;
67 C_ASSERT(sizeof(USB_DEFAULT_PIPE_SETUP_PACKET
) == 8);
69 #define USB_DEVICE_QUALIFIER_DESCRIPTOR_TYPE 0x06
70 #define USB_OTHER_SPEED_CONFIGURATION_DESCRIPTOR_TYPE 0x07
72 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
;
84 typedef union _USB_HIGH_SPEED_MAXPACKET
{
91 } USB_HIGH_SPEED_MAXPACKET
, *PUSB_HIGH_SPEED_MAXPACKET
;
93 #define USB_INTERFACE_ASSOCIATION_DESCRIPTOR_TYPE 0x0B
95 typedef struct _USB_INTERFACE_ASSOCIATION_DESCRIPTOR
{
97 UCHAR bDescriptorType
;
98 UCHAR bFirstInterface
;
99 UCHAR bInterfaceCount
;
100 UCHAR bFunctionClass
;
101 UCHAR bFunctionSubClass
;
102 UCHAR bFunctionProtocol
;
104 } USB_INTERFACE_ASSOCIATION_DESCRIPTOR
, *PUSB_INTERFACE_ASSOCIATION_DESCRIPTOR
;