24#ifndef __GNU_EXTENSION
26#define __GNU_EXTENSION __extension__
28#define __GNU_EXTENSION
47#define USB_PORT_STATUS_CONNECT 0x0001
48#define USB_PORT_STATUS_ENABLE 0x0002
49#define USB_PORT_STATUS_SUSPEND 0x0004
50#define USB_PORT_STATUS_OVER_CURRENT 0x0008
51#define USB_PORT_STATUS_RESET 0x0010
52#define USB_PORT_STATUS_POWER 0x0100
53#define USB_PORT_STATUS_LOW_SPEED 0x0200
54#define USB_PORT_STATUS_HIGH_SPEED 0x0400
93#define USB_DEVICE_QUALIFIER_DESCRIPTOR_TYPE 0x06
94#define USB_OTHER_SPEED_CONFIGURATION_DESCRIPTOR_TYPE 0x07
117#define USB_INTERFACE_ASSOCIATION_DESCRIPTOR_TYPE 0x0B
151#define USB_PORT_STATUS_CONNECT 0x0001
152#define USB_PORT_STATUS_ENABLE 0x0002
153#define USB_PORT_STATUS_SUSPEND 0x0004
154#define USB_PORT_STATUS_OVER_CURRENT 0x0008
155#define USB_PORT_STATUS_RESET 0x0010
156#define USB_PORT_STATUS_POWER 0x0100
157#define USB_PORT_STATUS_LOW_SPEED 0x0200
158#define USB_PORT_STATUS_HIGH_SPEED 0x0400
191#define PORT_LINK_STATE_U0 0
192#define PORT_LINK_STATE_U1 1
193#define PORT_LINK_STATE_U2 2
194#define PORT_LINK_STATE_U3 3
195#define PORT_LINK_STATE_DISABLED 4
196#define PORT_LINK_STATE_RX_DETECT 5
197#define PORT_LINK_STATE_INACTIVE 6
198#define PORT_LINK_STATE_POLLING 7
199#define PORT_LINK_STATE_RECOVERY 8
200#define PORT_LINK_STATE_HOT_RESET 9
201#define PORT_LINK_STATE_COMPLIANCE_MODE 10
202#define PORT_LINK_STATE_LOOPBACK 11
203#define PORT_LINK_STATE_TEST_MODE 11
279#define USB_20_HUB_DESCRIPTOR_TYPE 0x29
280#define USB_30_HUB_DESCRIPTOR_TYPE 0x2A
282#define USB_REQUEST_CLEAR_TT_BUFFER 0x08
283#define USB_REQUEST_RESET_TT 0x09
284#define USB_REQUEST_GET_TT_STATE 0x0A
285#define USB_REQUEST_STOP_TT 0x0B
287#define USB_REQUEST_SET_HUB_DEPTH 0x0C
288#define USB_REQUEST_GET_PORT_ERR_COUNT 0x0D
290#define USB_DEVICE_CLASS_RESERVED 0x00
291#define USB_DEVICE_CLASS_AUDIO 0x01
292#define USB_DEVICE_CLASS_COMMUNICATIONS 0x02
293#define USB_DEVICE_CLASS_HUMAN_INTERFACE 0x03
294#define USB_DEVICE_CLASS_MONITOR 0x04
295#define USB_DEVICE_CLASS_PHYSICAL_INTERFACE 0x05
296#define USB_DEVICE_CLASS_POWER 0x06
297#define USB_DEVICE_CLASS_IMAGE 0x06
298#define USB_DEVICE_CLASS_PRINTER 0x07
299#define USB_DEVICE_CLASS_STORAGE 0x08
300#define USB_DEVICE_CLASS_HUB 0x09
301#define USB_DEVICE_CLASS_CDC_DATA 0x0A
302#define USB_DEVICE_CLASS_SMART_CARD 0x0B
303#define USB_DEVICE_CLASS_CONTENT_SECURITY 0x0D
304#define USB_DEVICE_CLASS_VIDEO 0x0E
305#define USB_DEVICE_CLASS_PERSONAL_HEALTHCARE 0x0F
306#define USB_DEVICE_CLASS_AUDIO_VIDEO 0x10
307#define USB_DEVICE_CLASS_BILLBOARD 0x11
308#define USB_DEVICE_CLASS_DIAGNOSTIC_DEVICE 0xDC
309#define USB_DEVICE_CLASS_WIRELESS_CONTROLLER 0xE0
310#define USB_DEVICE_CLASS_MISCELLANEOUS 0xEF
311#define USB_DEVICE_CLASS_APPLICATION_SPECIFIC 0xFE
312#define USB_DEVICE_CLASS_VENDOR_SPECIFIC 0xFF
BM_REQUEST_TYPE bmRequestType
USHORT PortEnableDisableChange
USHORT OverCurrentIndicatorChange
USHORT ConnectStatusChange
USHORT PortIndicatorControl
USHORT LowSpeedDeviceAttached
USHORT CurrentConnectStatus
USHORT HighSpeedDeviceAttached
USHORT PortEnabledDisabled
USHORT PortLinkStateChange
USHORT OverCurrentIndicatorChange
USHORT ConnectStatusChange
USHORT PortConfigErrorChange
USHORT NegotiatedDeviceSpeed
USHORT PortEnabledDisabled
USHORT CurrentConnectStatus
USB_20_PORT_CHANGE Usb20PortChange
USB_30_PORT_CHANGE Usb30PortChange
USB_PORT_STATUS PortStatus
USB_PORT_CHANGE PortChange
USB_30_PORT_STATUS Usb30PortStatus
USB_20_PORT_STATUS Usb20PortStatus
union _USB_PORT_CHANGE USB_PORT_CHANGE
union _BM_REQUEST_TYPE * PBM_REQUEST_TYPE
union _USB_30_PORT_CHANGE USB_30_PORT_CHANGE
enum _USB_DEVICE_SPEED USB_DEVICE_SPEED
union _USB_20_PORT_CHANGE * PUSB_20_PORT_CHANGE
union _USB_HUB_CHANGE * PUSB_HUB_CHANGE
union _USB_HUB_CHANGE USB_HUB_CHANGE
union _USB_20_PORT_CHANGE USB_20_PORT_CHANGE
union _USB_HUB_STATUS_AND_CHANGE USB_HUB_STATUS_AND_CHANGE
union _USB_HIGH_SPEED_MAXPACKET USB_HIGH_SPEED_MAXPACKET
struct _USB_DEVICE_QUALIFIER_DESCRIPTOR USB_DEVICE_QUALIFIER_DESCRIPTOR
struct _USB_DEFAULT_PIPE_SETUP_PACKET * PUSB_DEFAULT_PIPE_SETUP_PACKET
union _USB_PORT_CHANGE * PUSB_PORT_CHANGE
union _USB_20_PORT_STATUS * PUSB_20_PORT_STATUS
union _USB_20_PORT_STATUS USB_20_PORT_STATUS
union _USB_PORT_STATUS * PUSB_PORT_STATUS
enum _USB_DEVICE_TYPE USB_DEVICE_TYPE
union _USB_HIGH_SPEED_MAXPACKET * PUSB_HIGH_SPEED_MAXPACKET
union _USB_HUB_STATUS USB_HUB_STATUS
struct _USB_INTERFACE_ASSOCIATION_DESCRIPTOR * PUSB_INTERFACE_ASSOCIATION_DESCRIPTOR
union _USB_HUB_STATUS_AND_CHANGE * PUSB_HUB_STATUS_AND_CHANGE
union _BM_REQUEST_TYPE BM_REQUEST_TYPE
union _USB_30_PORT_STATUS * PUSB_30_PORT_STATUS
struct _USB_DEVICE_QUALIFIER_DESCRIPTOR * PUSB_DEVICE_QUALIFIER_DESCRIPTOR
struct _USB_DEFAULT_PIPE_SETUP_PACKET USB_DEFAULT_PIPE_SETUP_PACKET
union _USB_PORT_STATUS_AND_CHANGE USB_PORT_STATUS_AND_CHANGE
union _USB_30_PORT_STATUS USB_30_PORT_STATUS
union _USB_PORT_STATUS USB_PORT_STATUS
struct _USB_INTERFACE_ASSOCIATION_DESCRIPTOR USB_INTERFACE_ASSOCIATION_DESCRIPTOR
union _USB_30_PORT_CHANGE * PUSB_30_PORT_CHANGE
union _USB_HUB_STATUS * PUSB_HUB_STATUS
union _USB_PORT_STATUS_AND_CHANGE * PUSB_PORT_STATUS_AND_CHANGE