37#define USB_BM_REQUEST_OUTPUT 0
38#define USB_BM_REQUEST_INPUT 0x80
39#define USB_BM_REQUEST_STANDARD 0
40#define USB_BM_REQUEST_CLASS 0x20
41#define USB_BM_REQUEST_VENDOR 0x40
42#define USB_BM_REQUEST_DEVICE 0
43#define USB_BM_REQUEST_INTERFACE 1
44#define USB_BM_REQUEST_ENDPOINT 2
45#define USB_BM_REQUEST_OTHER 3
46#define USB_BM_REQUEST_VENDORSPEC 0x1F
48#define USB_BREQUEST_GET_STATUS 0
49#define USB_BREQUEST_CLEAR_FEATURE 1
50#define USB_BREQUEST_SET_FEATURE 3
51#define USB_BREQUEST_SET_ADDRESS 5
52#define USB_BREQUEST_GET_DESCRIPTOR 6
53#define USB_BREQUEST_SET_DESCRIPTOR 7
54#define USB_BREQUEST_GET_CONFIGURATION 8
55#define USB_BREQUEST_SET_CONFIGURATION 9
56#define USB_BREQUEST_GET_INTERFACE 10
57#define USB_BREQUEST_SET_INTERFACE 11
59#define USB_DESCRIPTOR_DEVICE 1
60#define USB_DESCRIPTOR_CONFIGURATION 2
61#define USB_DESCRIPTOR_STRING 3
62#define USB_DESCRIPTOR_INTERFACE 4
63#define USB_DESCRIPTOR_ENDPOINT 5
64#define USB_DESCRIPTOR_SUPERSPEED_ENDP_CMP 48
66#define USB_DESCRIPTOR_WVALUE(type,index) ((type << 8) | index)
68#define USB_AUDIO_DEV_CLASS 0x01
69#define USB_COMMUNICATION_CDC_CTRL_CLASS 0x02
70#define USB_HID_DEV_CLASS 0x03
71#define USB_PHYSICAL_DEV_CLASS 0x05
72#define USB_IMAGE_DEV_CLASS 0x06
73#define USB_PRINTER_DEV_CLASS 0x07
74#define USB_MASS_STORAGE_DEV_CLASS 0x08
75#define USB_HUB_DEV_CLASS 0x09
76#define USB_CDC_DATA_DEV_CLASS 0x0A
77#define USB_SMART_CARD_DEV_CLASS 0x0B
78#define USB_CONTENT_SECURITY_DEV_CLASS 0x0D
79#define USB_VIDEO_DEV_CLASS 0x0E
80#define USB_PERSONAL_HEALTHCARE_DEV_CLASS 0x0F
81#define USB_AUDIO_VIDEO_DEV_CLASS 0x10
82#define USB_BILLBOARD_DEV_CLASS 0x11
83#define USB_TYPE_C_BRIDGE_CLASS 0x12
84#define USB_I3C_DEV_CLASS 0x3C
85#define USB_DIAGNOSTIC_DEV_CLASS 0xDC
86#define USB_WIRELESS_CONTROLLER_DEV_CLASS 0xE0
87#define USB_MISCELLANEOUS_DEV_CLASS 0xEF
90#define ENDPOINT_TRANSFER_TYPE_CONTROL 0
91#define ENDPOINT_TRANSFER_TYPE_ISOCH 1
92#define ENDPOINT_TRANSFER_TYPE_BULK 2
93#define ENDPOINT_TRANSFER_TYPE_INT 3
void USBGetConfigDesc(AuUSBDevice *usbdev, uint64_t buffer, uint16_t len, uint8_t id)
Definition usb.cpp:105
struct _string_desc_ usb_string_desc_t
struct _endpoint_desc_ usb_endpoint_desc_t
int(* usb_drv_unload)(_usb_dev_ *dev)
Definition usb.h:186
void USBSetConfigDesc(AuUSBDevice *usbdev, uint8_t configval)
Definition usb.cpp:130
void USBScheduleInterrupt(AuUSBDevice *usbdev, void *ep, uint64_t physdata)
struct _config_desc_ usb_config_desc_t
void USBGetStringDesc(AuUSBDevice *usbdev, uint64_t buffer, uint16_t id)
Definition usb.cpp:80
void USBGetDeviceDesc(AuUSBDevice *usbdev, uint64_t buffer, uint16_t len)
Definition usb.cpp:54
struct _interface_desc_ usb_if_desc_t
struct _usb_desc_ usb_descriptor_t
struct _usb_dev_ AuUSBDevice
AuUSBDevice * USBCreateDevice()
Definition usb.cpp:41
void USBDeviceSetFunctions(AuUSBDevice *dev)
Definition usb.cpp:314
struct _dev_desc_ usb_dev_desc_t
struct _qualifier_desc_ usb_qualifier_desc_t
int(* usb_drv_entry)(_usb_dev_ *dev)
Definition usb.h:185
unsigned int uint32_t
Definition acefiex.h:163
unsigned char uint8_t
Definition acefiex.h:161
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
unsigned short int uint16_t
Definition acefiex.h:162
uint8_t bMaxPower
Definition usb3.h:215
uint8_t iConfiguration
Definition usb3.h:213
uint8_t bNumInterfaces
Definition usb3.h:211
uint8_t bLength
Definition usb3.h:208
uint16_t wTotalLength
Definition usb3.h:210
uint8_t bDescriptorType
Definition usb3.h:209
uint8_t bmAttributes
Definition usb3.h:214
uint8_t bConfigurationValue
Definition usb3.h:212
uint16_t idVendor
Definition usb3.h:168
uint8_t bDescriptorType
Definition usb3.h:162
uint16_t idProduct
Definition usb3.h:169
uint8_t bDeviceSubClass
Definition usb3.h:165
uint8_t bLength
Definition usb3.h:161
uint8_t iManufacturer
Definition usb3.h:171
uint8_t bMaxPacketSize0
Definition usb3.h:167
uint8_t iSerialNumber
Definition usb3.h:173
uint16_t bcdDevice
Definition usb3.h:170
uint8_t bDeviceClass
Definition usb3.h:164
uint8_t iProduct
Definition usb3.h:172
uint8_t bDeviceProtocol
Definition usb3.h:166
uint8_t bNumConfigurations
Definition usb3.h:174
uint16_t bcdUSB
Definition usb3.h:163
uint8_t bEndpointAddress
Definition usb3.h:231
uint8_t bmAttributes
Definition usb3.h:232
uint8_t bLength
Definition usb3.h:229
uint16_t wMaxPacketSize
Definition usb3.h:233
uint8_t bInterval
Definition usb3.h:234
uint8_t bDescriptorType
Definition usb3.h:230
uint8_t bInterfaceSubClass
Definition usb3.h:186
uint8_t bAlternateSetting
Definition usb3.h:183
uint8_t iInterface
Definition usb3.h:188
uint8_t bLength
Definition usb3.h:180
uint8_t bDescriptorType
Definition usb3.h:181
uint8_t bNumEndpoints
Definition usb3.h:184
uint8_t bInterfaceClass
Definition usb3.h:185
uint8_t bInterfaceProtocol
Definition usb3.h:187
uint8_t bInterfaceNumber
Definition usb3.h:182
uint8_t bMaxPacketSize0
Definition usb3.h:200
uint16_t bcdUSB
Definition usb3.h:196
uint8_t bNumConfigurations
Definition usb3.h:201
uint8_t bDeviceProtocol
Definition usb3.h:199
uint8_t bDeviceSubClass
Definition usb3.h:198
uint8_t bLength
Definition usb3.h:194
uint8_t bDeviceClass
Definition usb3.h:197
uint8_t bDescriptorType
Definition usb3.h:195
uint8_t bReserved
Definition usb3.h:202
uint8_t bDescriptorType
Definition usb3.h:222
uint8_t bLength
Definition usb3.h:221
uint8_t bDescriptorType
Definition usb3.h:241
uint8_t bLength
Definition usb3.h:240
int numInterfaces
Definition usb.h:202
usb_drv_unload ClassUnload
Definition usb.h:220
void(* get_device_desc)(_usb_dev_ *dev, uint64_t buffer, uint16_t len)
Definition usb.h:208
void(* get_string_desc)(_usb_dev_ *dev, uint64_t buffer, uint16_t id)
Definition usb.h:209
void(* bulk_transfer)(_usb_dev_ *usbdev, uint64_t buffer, uint16_t data_len, void *ep)
Definition usb.h:207
uint32_t subClassCode
Definition usb.h:194
void * descriptor
Definition usb.h:201
int numEndpoint
Definition usb.h:203
void(* control_transfer)(_usb_dev_ *usbdev, const USB_REQUEST_PACKET *request, uint64_t buffer_addr, const size_t len)
Definition usb.h:206
uint32_t classCode
Definition usb.h:193
uint16_t vendorID
Definition usb.h:195
int configValue
Definition usb.h:197
usb_drv_entry ClassEntry
Definition usb.h:219
void * data
Definition usb.h:192
uint8_t(* get_endpoint_attrib)(_usb_dev_ *dev, void *ep)
Definition usb.h:216
int(* poll_wait)(_usb_dev_ *dev, int wait_type)
Definition usb.h:218
void(* get_config_desc)(_usb_dev_ *dev, uint64_t buffer, uint16_t len, uint8_t id)
Definition usb.h:210
void(* schedule_interrupt)(_usb_dev_ *dev, void *ep, uint64_t buffer, void(*callback)(void *dev, void *slot, void *Endp))
Definition usb.h:205
uint16_t deviceID
Definition usb.h:196
void(* set_config_val)(_usb_dev_ *dev, uint8_t config_val)
Definition usb.h:217
uint8_t(* get_endpoint_address)(_usb_dev_ *dev, void *ep)
Definition usb.h:215
uint8_t address
Definition usb.h:199
uint8_t protocol
Definition usb.h:200
bool driverInitialized
Definition usb.h:204
uint16_t usbVersion
Definition usb.h:198
int(* get_max_pack_sz)(_usb_dev_ *dev, void *ep)
Definition usb.h:214