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

usb_dev_descr - USB device descriptor

#include <sys/usb/usba.h>

illumos DDI specific (illumos DDI)

The usb_dev_descr_t device descriptor defines device-wide attributes. Please refer to Section 9.6.1 of the USB 2.0 specification. The USB 2.0 specification is available at www.usb.org.

The device descriptor is retrieved from a USB device during device enumeration and can be accessed via usb_get_dev_data(9F).

A device descriptor contains the following fields:



uint8_t bLength Size of this descriptor,
in bytes.
uint8_t bDescriptorType Set to USB_DESCR_TYPE_DEV.
uint16_t bcdUSB USB specification release
number supported, in bcd.
uint8_t bDeviceClass Class code (see below).
uint8_t bDeviceSubClass Subclass code (see USB 2.0
specification of applicable
device class for information.)
uint8_t bDeviceProtocol Protocol code (see USB 2.0
specification of applicable
device class for information.)
uint8_t bMaxPacketSize0 Maximum packet size of
endpoint 0.
uint16_t idVendor vendor ID value.
uint16_t idProduct product ID value.
uint16_t bcdDevice Device release number in
binary coded decimal.
uint8_t iManufacturer Index of optional manufacturer
description string.
Valid if > 0.
uint8_t iProduct Index of optional product
description string.
Valid if > 0.
uint8_t iSerialNumber Index of optional serial
number string.
Valid if > 0.
uint8_t bNumConfigurations Number of available
configurations.
Device descriptors bDeviceClass values:
USB_CLASS_PER_INTERFACE Class information is at
interface level.
USB_CLASS_COMM CDC control device class.
USB_CLASS_DIAG Diagnostic device class.
USB_CLASS_HUB HUB device class.
USB_CLASS_MISC MISC device class.
USB_CLASS_VENDOR_SPEC Vendor-specific class.
USB_CLASS_WIRELESS Wireless controller
device class.

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

ATTRIBUTE TYPE ATTRIBUTE VALUE
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_qlf_descr(9S), usb_ep_descr(9S), usb_if_descr(9S), usb_other_speed_cfg_descr(9S), usb_string_descr(9S)

January 5, 2004 OmniOS