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 |
|---|---|
struct usb_endpoint | *ep |
enum usb_transfer_type | type |
struct usb_setup_packet | *setup |
void | *data |
size_t | length |
bool | direction_in |
void | (*completion_cb)(void *ctx, bool success) |
void | *context |
| 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 |
bool | (*probe)(struct usb_device *dev) |
void | (*disconnect)(struct usb_device *dev) |
| Member Type | Member Name |
|---|---|
uint8_t | address |
uint8_t | speed |
uint8_t | port |
uint8_t | slot_id |
uint8_t | max_packet_size |
struct usb_device_descriptor | *descriptor |
struct usb_config_descriptor | config |
struct usb_endpoint | **endpoints |
uint8_t | num_endpoints |
struct usb_controller | *host |
struct usb_interface_descriptor | **interfaces |
uint8_t | num_interfaces |
struct usb_driver | *driver |
void | *driver_private |
bool | configured |
| 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 |
static inline const char *usb_rq_code_str(enum usb_rq_codecode)static inline const char *usb_transfer_type_str(enum usb_transfer_typetype)boolusb_get_string_descriptor(struct usb_device*dev,uint8_t string_idx,char *out,size_t max_len)voidusb_get_device_descriptor(struct usb_device*dev)boolusb_parse_config_descriptor(struct usb_device*dev)boolusb_set_configuration(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)static inline uint8_tget_ep_index(struct usb_endpoint*ep)
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