STRUCT USB_HOST_ENDP(9) Host-Side Data Types and Macro STRUCT USB_HOST_ENDP(9)NAME
struct_usb_host_endpoint - host-side endpoint descriptor and queue
SYNOPSIS
struct usb_host_endpoint {
struct usb_endpoint_descriptor desc;
struct usb_ss_ep_comp_descriptor ss_ep_comp;
struct list_head urb_list;
void * hcpriv;
struct ep_device * ep_dev;
unsigned char * extra;
int extralen;
int enabled;
};
MEMBERS
desc
descriptor for this endpoint, wMaxPacketSize in native byteorder
ss_ep_comp
SuperSpeed companion descriptor for this endpoint
urb_list
urbs queued to this endpoint; maintained by usbcore
hcpriv
for use by HCD; typically holds hardware dma queue head (QH) with one or more transfer descriptors (TDs) per urb
ep_dev
ep_device for sysfs info
extra
descriptors following this endpoint in the configuration
extralen
how many bytes of "extra" are valid
enabled
URBs may be submitted to this endpoint
DESCRIPTION
USB requests are always queued to a given endpoint, identified by a descriptor within an active interface in a given USB configuration.
COPYRIGHT Kernel Hackers Manual 3.10 June 2014 STRUCT USB_HOST_ENDP(9)
Check Out this Related Man Page
STRUCT USB_HOST_CONF(9) Host-Side Data Types and Macro STRUCT USB_HOST_CONF(9)NAME
struct_usb_host_config - representation of a device's configuration
SYNOPSIS
struct usb_host_config {
struct usb_config_descriptor desc;
char * string;
struct usb_interface_assoc_descriptor * intf_assoc[USB_MAXIADS];
struct usb_interface * interface[USB_MAXINTERFACES];
struct usb_interface_cache * intf_cache[USB_MAXINTERFACES];
unsigned char * extra;
int extralen;
};
MEMBERS
desc
the device's configuration descriptor.
string
pointer to the cached version of the iConfiguration string, if present for this configuration.
intf_assoc[USB_MAXIADS]
list of any interface association descriptors in this config
interface[USB_MAXINTERFACES]
array of pointers to usb_interface structures, one for each interface in the configuration. The number of interfaces is stored in
desc.bNumInterfaces. These pointers are valid only while the the configuration is active.
intf_cache[USB_MAXINTERFACES]
array of pointers to usb_interface_cache structures, one for each interface in the configuration. These structures exist for the entire
life of the device.
extra
pointer to buffer containing all extra descriptors associated with this configuration (those preceding the first interface descriptor).
extralen
length of the extra descriptors buffer.
DESCRIPTION
USB devices may have multiple configurations, but only one can be active at any time. Each encapsulates a different operational
environment; for example, a dual-speed device would have separate configurations for full-speed and high-speed operation. The number of
configurations available is stored in the device descriptor as bNumConfigurations.
A configuration can contain multiple interfaces. Each corresponds to a different function of the USB device, and all are available whenever
the configuration is active. The USB standard says that interfaces are supposed to be numbered from 0 to desc.bNumInterfaces-1, but a lot
of devices get this wrong. In addition, the interface array is not guaranteed to be sorted in numerical order. Use usb_ifnum_to_if to look
up an interface entry based on its number.
Device drivers should not attempt to activate configurations. The choice of which configuration to install is a policy decision based on
such considerations as available power, functionality provided, and the user's desires (expressed through userspace tools). However,
drivers can call usb_reset_configuration to reinitialize the current configuration and all its interfaces.
COPYRIGHT Kernel Hackers Manual 2.6. July 2010 STRUCT USB_HOST_CONF(9)