USB_CFG_DESCR(9S) Data Structures for Drivers USB_CFG_DESCR(9S)
NAME
usb_cfg_descr - USB configuration descriptor
SYNOPSIS
#include <sys/usb/usba.h>
INTERFACE LEVEL
illumos DDI specific (illumos DDI)
DESCRIPTION
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
www.usb.org.
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.
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+--------------------+-------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-------------------+
|Architecture | PCI-based systems |
+--------------------+-------------------+
|Interface stability | Committed |
+--------------------+-------------------+
SEE ALSO
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 USB_CFG_DESCR(9S)