usb_ep_descr - USB endpoint descriptor
#include <sys/usb/usba.h>
Solaris DDI specific (Solaris DDI)
The usb_ep_descr_t endpoint descriptor defines endpoint attributes. An endpoint is a uniquely addressable portion of a USB device that is a source or sink of data.
Please refer to Section 9.6.6 of the USB 2.0 specification. The USB 2.0 specification is available at https://www.usb.org/ .
One or more endpoint descriptors are retrieved from a USB device during device enumeration. They can be accessed via usb_get_dev_data(9F).
A endpoint descriptor has the following fields:
uint8_t bLength Size of this descriptor in bytes. uint8_t bDescriptorType Set to USB_DESCR_TYPE_EP. uint8_t bEndpointAddress Endpoint address. uint8_t bmAttributes Endpoint attrib. (see below.) uint16_t wMaxPacketSize Maximum pkt size. uint8_t bInterval Polling interval for interrupt and isochro. endpoints. NAK rate for high-speed control and bulk endpoints. Endpoint descriptor bEndpointAddress bitmasks contain address number and direction fields as follows: USB_EP_NUM_MASK Address bits USB_EP_DIR_MASK Direction bit USB_EP_DIR_OUT OUT toward device USB_EP_DIR_IN IN toward host Endpoint descriptor transfer type bmAttributes values and mask: USB_EP_ATTR_CONTROL Endpoint supports control transfers USB_EP_ATTR_ISOCH Endpoint supports isochronous xfers USB_EP_ATTR_BULK Endpoint supports bulk transfers USB_EP_ATTR_INTR Endpoint supports interrupt transfers USB_EP_ATTR_MASK bmAttributes transfer-type bit field Endpoint descriptor synchronization type bmAttributes values and mask for isochronous endpoints: USB_EP_SYNC_NONE Endpoint supports no synchronization USB_EP_SYNC_ASYNC Endpoint supports asynchronous sync USB_EP_SYNC_ADPT Endpoint supports adaptive sync USB_EP_SYNC_SYNC Endpoint supports synchronous sync USB_EP_SYNC_MASK bmAttributes sync type bit field Endpoint descriptor feedback type bmAttributes values and mask for isochronous endpoints: USB_EP_USAGE_DATA Data endpoint USB_EP_USAGE_FEED Feedback endpoint USB_EP_USAGE_IMPL Implicit feedback data endpoint USB_EP_USAGE_MASK bmAttributes feedback type bit fld Endpoint descriptor additional-transaction-opportunities-per-microframe wMaxPacketSize values and mask for high speed isochronous and interrupt endpoints: USB_EP_MAX_PKTSZ_MASK Mask for packetsize bits USB_EP_MAX_XACTS_MASK Bits for additional transfers per microframe USB_EP_MAX_XACTS_SHIFT Left-shift this number of bits to get to additional-transfers-per- microframe bitfield Endpoint descriptor polling bInterval range values: USB_EP_MIN_HIGH_CONTROL_INTRVL Min NAK rate for highspd ctrl e/p USB_EP_MAX_HIGH_CONTROL_INTRVL Max NAK rate for highspd ctrl e/p USB_EP_MIN_HIGH_BULK_INTRVL Min NAK rate for highspd bulk e/p USB_EP_MAX_HIGH_BULK_INTRVL Max NAK rate for highspd bulk e/p USB_EP_MIN_LOW_INTR_INTRVL Min poll interval, lowspd intr e/p USB_EP_MAX_LOW_INTR_INTRVL Max poll interval, lowspd intr e/p USB_EP_MIN_FULL_INTR_INTRVL Min poll interval, fullspd intr e/p USB_EP_MAX_FULL_INTR_INTRVL Max poll interval, fullspd intr e/p Note that for the following polling bInterval range values, the interval is 2**(value-1). See Section 9.6.6 of the USB 2.0 specification. USB_EP_MIN_HIGH_INTR_INTRVL Min poll interval, highspd intr e/p USB_EP_MAX_HIGH_INTR_INTRVL Max poll interval, highspd intr e/p USB_EP_MIN_FULL_ISOCH_INTRVL Min poll interval, fullspd isoc e/p USB_EP_MAX_FULL_ISOCH_INTRVL Max poll interval, fullspd isoc e/p USB_EP_MIN_HIGH_ISOCH_INTRVL Min poll interval, highspd isoc e/p USB_EP_MAX_HIGH_ISOCH_INTRVL Max poll interval, highspd isoc e/p
See attributes(7) for descriptions of the following attributes:
|
attributes(7), usb_get_alt_if(9F), usb_get_cfg(9F), usb_get_dev_data(9F), usb_get_string_descr(9F), usb_parse_data(9F), usb_cfg_descr(9S), usb_ctrl_request(9S), usb_dev_descr(9S), usb_dev_qlf_descr(9S), usb_if_descr(9S), usb_other_speed_cfg_descr(9S), usb_string_descr(9S)