USB_IF_DESCR(9S) Data Structures for Drivers USB_IF_DESCR(9S)

usb_if_descr - USB interface descriptor

#include <sys/usb/usba.h>

illumos DDI specific (illumos DDI)

The usb_if_descr_t interface descriptor defines attributes of an interface. A configuration contains one or more interfaces. An interface contains one or more endpoints.

Please refer to Section 9.6.5 of the USB 2.0 specification. The USB 2.0 specification is available at

One or more configuration descriptors are retrieved from a USB device during device enumeration. They can be accessed via usb_get_dev_data(9F).

A interface descriptor has the following fields:

uint8_t     bLength                 Size of this descriptor

in bytes. uint8_t bDescriptorType Set to USB_DESCR_TYPE_IF. uint8_t bInterfaceNumber Interface number (0-based). uint8_t bAlternateSetting Alternate setting number for
this interface and its
endpoints (0-based). uint8_t bNumEndpoints Number of endpoints,
excluding endpoint 0. uint8_t bInterfaceClass Interface Class code
(see below). uint8_t bInterfaceSubClass Sub class code. (See USB 2.0
specification of applicable
interface class for information.) uint8_t bInterfaceProtocol Protocol code. (See USB 2.0
specification of applicable
interface class for information.) uint8_t iInterface Index of optional string
describing this interface
Valid if > 0. Pass to
usb_get_string_descr(9F) to
retrieve string. USB 2.0 specification interface descriptor bInterfaceClass field values are as follows:
USB_CLASS_APP Application-specific interface class
USB_CLASS_AUDIO Audio interface class
USB_CLASS_CCID Chip/Smartcard interface class
USB_CLASS_CDC_CTRL CDC control interface class
USB_CLASS_CDC_DATA CDC data interface class
USB_CLASS_SECURITY Content security interface class
USB_CLASS_DIAG Diagnostic interface class
USB_CLASS_HID HID interface class
USB_CLASS_HUB HUB interface class
USB_CLASS_MASS_STORAGE Mass storage interface class
USB_CLASS_PHYSICAL Physical interface class
USB_CLASS_PRINTER Printer interface class
USB_CLASS_VENDOR_SPEC Vendor-specific interface class
USB_CLASS_WIRELESS Wireless interface class

See attributes(7) for descriptions of the following attributes:

Architecture PCI-based systems
Interface stability Committed

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_ep_descr(9S), usb_other_speed_cfg_descr(9S), usb_string_descr(9S)

January 5, 2004 OmniOS