USB
| Member Type | Member Name |
|---|---|
uint8_t | bitmap_request_type |
enum usb_rq_code | request |
uint16_t | value |
union { uint16_t index; uint16_t offset; } | None |
uint16_t | length |
| Member Type | Member Name |
|---|---|
uint8_t | length |
uint8_t | type |
uint16_t | usb_num_bcd |
uint8_t | class |
uint8_t | subclass |
uint8_t | protocol |
uint8_t | max_packet_size |
uint16_t | vendor_id |
uint16_t | product_id |
uint16_t | device_num_bcd |
uint8_t | manufacturer |
uint8_t | product |
uint8_t | serial_num |
uint8_t | num_configs |
| Member Type | Member Name |
|---|---|
uint8_t | length |
uint8_t | type |
uint8_t | interface_number |
uint8_t | alternate_setting |
uint8_t | num_endpoints |
uint8_t | class |
uint8_t | subclass |
uint8_t | protocol |
uint8_t | interface |
| Member Type | Member Name |
|---|---|
uint8_t | length |
uint8_t | descriptor_type |
uint16_t | total_length |
uint8_t | num_interfaces |
uint8_t | configuration_value |
uint8_t | configuration |
uint8_t | bitmap_attributes |
uint8_t | max_power |
| Member Type | Member Name |
|---|---|
uint8_t | length |
uint8_t | type |
uint8_t | address |
uint8_t | attributes |
uint16_t | max_packet_size |
uint8_t | interval |
| Member Type | Member Name |
|---|---|
struct usb_endpoint_descriptor | *desc |
uint8_t | type |
uint8_t | number |
bool | in |
uint8_t | *transfer_buffer |
uint16_t | transfer_len |
uint16_t | max_packet_size |
uint8_t | address |
uint8_t | attributes |
uint8_t | interval |
void | *hc_data |
| Member Type | Member Name |
|---|---|
enum usb_controller_type | type |
struct usb_controller_ops | ops |
void | *driver_data |
| Member Type | Member Name |
|---|---|
char | *name |
uint8_t | class_code |
uint8_t | subclass |
uint8_t | protocol |
enum usb_status | (*bringup)(struct usb_device *dev) |
void | (*teardown)(struct usb_device *dev) |
void | (*free)(struct usb_device *dev) |
| Member Type | Member Name |
|---|---|
struct usb_device | *dev |
struct usb_endpoint | *ep |
enum usb_transfer_type | type |
struct usb_setup_packet | *setup |
void | *buffer |
size_t | length |
enum usb_status | status |
uint32_t | flags |
uint64_t | timeout_ns |
void | (*complete)(struct usb_request *) |
void | *context |
bool | direction_in |
void | *hc_priv |
| Name | Value |
|---|---|
USB_CONTROLLER_UHCI | None |
USB_CONTROLLER_EHCI | None |
USB_CONTROLLER_XHCI | None |
| Name | Value |
|---|---|
USB_TRANSFER_CONTROL | None |
USB_TRANSFER_BULK | None |
USB_TRANSFER_INTERRUPT | None |
| Name | Value |
|---|---|
USB_OK | 0 |
USB_ERR_STALL | None |
USB_ERR_TIMEOUT | None |
USB_ERR_DISCONNECT | None |
USB_ERR_OVERFLOW | None |
USB_ERR_CRC | None |
USB_ERR_IO | None |
USB_ERR_PROTO | None |
USB_ERR_NO_DEVICE | None |
USB_ERR_CANCELLED | None |
USB_ERR_OOM | None |
USB_ERR_INVALID_ARGUMENT | None |
USB_ERR_NO_ENDPOINT | None |
| Name | Value |
|---|---|
USB_DEV_UNDEF | None |
USB_DEV_DISCONNECTED | None |
USB_DEV_CONNECTED | None |
USB_DEV_ENABLED | None |
USB_DEV_RESETTING | None |
USB_DEV_ERROR | None |
voidusb_free_device(struct usb_device*dev)static inline voidusb_device_put(struct usb_device*dev)voidusb_teardown_device(struct usb_device*dev)enum usb_statususb_get_string_descriptor(struct usb_device*dev,uint8_t string_idx,char *out,size_t max_len)enum usb_statususb_get_device_descriptor(struct usb_device*dev)enum usb_statususb_parse_config_descriptor(struct usb_device*dev)enum usb_statususb_set_configuration(struct usb_device*dev)enum usb_statususb_init_device(struct usb_device*dev)voidusb_try_bind_driver(struct usb_device*dev)uint8_tusb_construct_rq_bitmap(uint8_t transfer,uint8_t type,uint8_t recip)enum usb_statususb_transfer_sync(enum usb_status(*fn)(struct usb_request *),struct usb_request*request)voidusb_print_device(struct usb_device*dev)struct usb_interface_descriptor *usb_find_interface(struct usb_device*dev,uint8_t class,uint8_t subclass,uint8_t protocol)static inline uint8_tget_ep_index(struct usb_endpoint*ep)static inline const char *usb_rq_code_str(enum usb_rq_codecode)static inline const char *usb_transfer_type_str(enum usb_transfer_typetype)
Defines
Section titled “Defines”USB_DESC_TYPE_DEVICE:1USB_DESC_TYPE_CONFIG:2USB_DESC_TYPE_STRING:3USB_DESC_TYPE_INTERFACE:4USB_DESC_TYPE_ENDPOINT:5USB_DESC_TYPE_DEV_QUALIFIER:6USB_DESC_TYPE_OTHER_SPEED_CONFIG:7USB_DESC_TYPE_INTERFACE_POWER:8USB_DESC_TYPE_SHIFT:8USB_REQUEST_TRANS_HTD:0USB_REQUEST_TRANS_DTH:1USB_REQUEST_TYPE_STANDARD:0USB_REQUEST_TYPE_CLASS:1USB_REQUEST_TYPE_VENDOR:2USB_REQUEST_RECIPIENT_DEVICE:0USB_REQUEST_RECIPIENT_INTERFACE:1USB_REQUEST_RECIPIENT_ENDPOINT:2USB_REQUEST_RECIPIENT_OTHER:3USB_REQUEST_TRANSFER_SHIFT:7USB_REQUEST_TRANSFER_MASK:1USB_REQUEST_TYPE_SHIFT:5USB_REQUEST_TYPE_MASK:3USB_REQUEST_RECIPIENT_MASK:0x1FUSB_CONFIG_SELF_POWERED:(1 << 7)USB_CONFIG_REMOTE_WAKEUP:(1 << 6)USB_ENDPOINT_ADDR_EP_DIRECTION_OUT:0USB_ENDPOINT_ADDR_EP_DIRECTION_IN:1USB_ENDPOINT_ATTR_TRANS_TYPE_CONTROL:0USB_ENDPOINT_ATTR_TRANS_TYPE_ISOCHRONOUS:1USB_ENDPOINT_ATTR_TRANS_TYPE_BULK:2USB_ENDPOINT_ATTR_TRANS_TYPE_INTERRUPT:3USB_ENDPOINT_ATTR_SYNC_TYPE_NO_SYNC:0USB_ENDPOINT_ATTR_SYNC_TYPE_ASYNC:1USB_ENDPOINT_ATTR_SYNC_TYPE_ADAPTIVE:2USB_ENDPOINT_ATTR_SYNC_TYPE_SYNC:3USB_ENDPOINT_ATTR_USAGE_TYPE_DATA:0USB_ENDPOINT_ATTR_USAGE_TYPE_FEEDBACK:1USB_ENDPOINT_ATTR_USAGE_TYPE_IMPLICIT_FEEDBACK_DATA:2USB_CLASS_AUDIO:0x1USB_CLASS_COMMS:0x2USB_CLASS_HID:0x3USB_SUBCLASS_HID_NONE:0x0USB_SUBCLASS_HID_BOOT_INTERFACE:0x1USB_PROTOCOL_HID_NONE:0x0USB_PROTOCOL_HID_KEYBOARD:0x1USB_PROTOCOL_HID_MOUSE:0x2USB_CLASS_PHYSICAL:0x5USB_CLASS_IMAGE:0x6USB_CLASS_PRINTER:0x7USB_CLASS_MASS_STORAGE:0x8USB_CLASS_HUB:0x9USB_CLASS_DATA:0xAUSB_CLASS_SMART_CARD:0xBUSB_CLASS_CONTENT_SECURITY:0xDUSB_CLASS_VIDEO:0xEUSB_CLASS_PERSONAL_HEALTHCARE:0xFUSB_CLASS_AUDIO_VIDEO:0x10USB_CLASS_BILLBOARD:0x11USB_CLASS_USB_TYPE_C:0x12USB_CLASS_BULK_DISPLAY:0x13USB_CLASS_MCTP_OVER_USB:0x14USB_CLASS_I3C_DEVICE:0x3CUSB_CLASS_DIAGNOSTIC_DEVICE:0xDCUSB_CLASS_WIRELESS:0xE0USB_CLASS_MISC:0xEFUSB_CLASS_APPLICATION_SPECIFIC:0xFEUSB_CLASS_VENDOR_SPECIFIC:0xFF