Chapter 4. Host-Side Data Types and Macros

Table of Contents

struct usb_host_endpoint — host-side endpoint descriptor and queue
struct usb_interface — what usb device drivers talk to
struct usb_interface_cache — long-term representation of a device interface
struct usb_host_config — representation of a device's configuration
struct usb_device — kernel's representation of a USB device
usb_hub_for_each_child — iterate over all child devices on the hub
usb_interface_claimed — returns true iff an interface is claimed
usb_make_path — returns stable device path in the usb tree
USB_DEVICE — macro used to describe a specific usb device
USB_DEVICE_VER — describe a specific usb device with a version range
USB_DEVICE_INTERFACE_CLASS — describe a usb device with a specific interface class
USB_DEVICE_INTERFACE_PROTOCOL — describe a usb device with a specific interface protocol
USB_DEVICE_INTERFACE_NUMBER — describe a usb device with a specific interface number
USB_DEVICE_INFO — macro used to describe a class of usb devices
USB_INTERFACE_INFO — macro used to describe a class of usb interfaces
USB_DEVICE_AND_INTERFACE_INFO — describe a specific usb device with a class of usb interfaces
USB_VENDOR_AND_INTERFACE_INFO — describe a specific usb vendor with a class of usb interfaces
struct usbdrv_wrap — wrapper for driver-model structure
struct usb_driver — identifies USB interface driver to usbcore
struct usb_device_driver — identifies USB device driver to usbcore
struct usb_class_driver — identifies a USB driver that wants to use the USB major number
module_usb_driver — Helper macro for registering a USB driver
struct urb — USB Request Block
usb_fill_control_urb — initializes a control urb
usb_fill_bulk_urb — macro to help initialize a bulk urb
usb_fill_int_urb — macro to help initialize a interrupt urb
usb_urb_dir_in — check if an URB describes an IN transfer
usb_urb_dir_out — check if an URB describes an OUT transfer
struct usb_sg_request — support for scatter/gather I/O

The host side API exposes several layers to drivers, some of which are more necessary than others. These support lifecycle models for host side drivers and devices, and support passing buffers through usbcore to some HCD that performs the I/O for the device driver.