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

usb_cfg_descr - USB configuration descriptor

#include <sys/usb/usba.h>

illumos DDI specific (illumos DDI)

The usb_cfg_descr_t configuration descriptor defines attributes of a configuration. A configuration contains one or more interfaces. A configuration descriptor acts as a header for the group of other descriptors describing the subcomponents (for example, interfaces and endpoints) of a configuration. Please refer to Section 9.6.3 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 configuration descriptor has the following fields:

uint8_t         bLength                 Size of this descriptor

in bytes. uint8_t bDescriptorType Set to USB_DESCR_TYPE_CFG. uint16_t wTotalLength Total length of data returned
including this and all other
descriptors in this configuration. uint8_t bNumInterfaces Number of interfaces in this
configuration. uint8_t bConfigurationValue ID of this configuration
(1-based). uint8_t iConfiguration Index of optional configuration
string. Valid if > 0. uint8_t bmAttributes Configuration characteristics
(See below). uint8_t bMaxPower Maximum power consumption, in
2mA units. Configuration descriptors define the following bmAttributes:
USB_CFG_ATTR_SELFPWR - Set if config not using bus power.
USB_CFG_ATTR_REMOTE_WAKEUP - Set if config supports rem wakeup.

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_ctrl_request(9S), usb_dev_descr(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