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 typedef union _BM_REQUEST_TYPE
{
35 } BM_REQUEST_TYPE
, *PBM_REQUEST_TYPE
;
37 typedef struct _USB_DEFAULT_PIPE_SETUP_PACKET
{
38 BM_REQUEST_TYPE bmRequestType
;
41 __GNU_EXTENSION
struct {
48 __GNU_EXTENSION
struct {
55 } USB_DEFAULT_PIPE_SETUP_PACKET
, *PUSB_DEFAULT_PIPE_SETUP_PACKET
;
57 C_ASSERT(sizeof(USB_DEFAULT_PIPE_SETUP_PACKET
) == 8);
59 typedef struct _USB_DEVICE_QUALIFIER_DESCRIPTOR
{
61 UCHAR bDescriptorType
;
64 UCHAR bDeviceSubClass
;
65 UCHAR bDeviceProtocol
;
66 UCHAR bMaxPacketSize0
;
67 UCHAR bNumConfigurations
;
69 } USB_DEVICE_QUALIFIER_DESCRIPTOR
, *PUSB_DEVICE_QUALIFIER_DESCRIPTOR
;
71 typedef union _USB_HIGH_SPEED_MAXPACKET
{
78 } USB_HIGH_SPEED_MAXPACKET
, *PUSB_HIGH_SPEED_MAXPACKET
;
80 typedef struct _USB_INTERFACE_ASSOCIATION_DESCRIPTOR
{
82 UCHAR bDescriptorType
;
83 UCHAR bFirstInterface
;
84 UCHAR bInterfaceCount
;
86 UCHAR bFunctionSubClass
;
87 UCHAR bFunctionProtocol
;
89 } USB_INTERFACE_ASSOCIATION_DESCRIPTOR
, *PUSB_INTERFACE_ASSOCIATION_DESCRIPTOR
;
91 #define USB_PORT_STATUS_CONNECT 0x0001
92 #define USB_PORT_STATUS_ENABLE 0x0002
93 #define USB_PORT_STATUS_SUSPEND 0x0004
94 #define USB_PORT_STATUS_OVER_CURRENT 0x0008
95 #define USB_PORT_STATUS_RESET 0x0010
96 #define USB_PORT_STATUS_POWER 0x0100
97 #define USB_PORT_STATUS_LOW_SPEED 0x0200
98 #define USB_PORT_STATUS_HIGH_SPEED 0x0400
99 #define USB_DEVICE_QUALIFIER_DESCRIPTOR_TYPE 0x06
100 #define USB_OTHER_SPEED_CONFIGURATION_DESCRIPTOR_TYPE 0x07
101 #define USB_INTERFACE_ASSOCIATION_DESCRIPTOR_TYPE 0x0B