USB_IF_DESCR(9S)         Data Structures for Drivers        USB_IF_DESCR(9S)
NAME
       usb_if_descr - USB interface descriptor
SYNOPSIS
       #include <sys/usb/usba.h>
INTERFACE LEVEL
       illumos DDI specific (illumos DDI)
DESCRIPTION
       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 
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  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
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_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              USB_IF_DESCR(9S)