USB_EP_SS_COMP_DESCR(9S) Data Structures for Drivers USB_EP_SS_COMP_DESCR(9S)
NAME
usb_ep_ss_comp_descr,
usb_ep_ss_comp_descr_t - USB endpoint SuperSpeed
Companion Descriptor
SYNOPSIS
#include <sys/usb/usba.h>INTERFACE LEVEL
illumos DDI Specific
DESCRIPTION
The
usb_ep_ss_comp_descr_t structure defines additional endpoint attributes
for USB 3.0 and newer devices. This structure is considered a
companion descriptor. On its own, it does not uniquely define an endpoint. A
standard USB descriptor is still required. See
usb_ep_descr(9S) for the
definition of the standard descriptor.
If available, the SuperSpeed companion descriptor can be accessed by
getting the endpoint data through a call to
usb_lookup_ep_data(9F). These
descriptors are required to open pipes for USB 3.0 and newer devices. They
can be assembled into the proper format for
usb_pipe_xopen(9F) by calling
usb_ep_xdescr_fill(9F).
This structure is formally defined in section 9.6.7 of the USB 3.1
specification.
STRUCTURE MEMBERS
uint8_t bLength;
uint8_t bDescriptorType;
uint8_t bMaxBurst;
uint8_t bmAttributes;
uint16_t wBytesPerInterval;
The
bLength member is always set to the size of this descriptor, which is
usually six.
The
bDescriptorType member should be set to the macro
USB_DESCR_TYPE_SS_EP_COMP whose value is 0x30.
The
bMaxBurst member indicates the maximum number of packets that the
endpoint can send in one 'burst'. Valid values range from 0 to 15 and the
values are one less than the number of packets. A value of 0 indicates
that 1 packet can be sent in a burst. A value of 15 indicates that 16
packets can be sent in a burst.
The
bmAttributes member indicates different attributes of the endpoint.
This member is reserved and should be zero for
control and
interrupt endpoints.
For a
bulk endpoint, the
bmAttributes member is used to indicate the
maximum number of streams that the device supports. The first five bits
(4:0) are used, the remaining 3 bits are reserved and should be zero.
Values range from 0 to 16. A value of zero indicates that streams are not
supported. Otherwise, it indicates that the device supports 2 raised to
the value number of streams. A value of 3, indicates 2^3 streams are
supported.
For an
isochronous endpoint, the
bmAttributes member is used to indicate
the value of the
Mult property, a value used to calculate the maximum
number of packets the device and receive in a service interval. The first
two bits (1:0) are used to determine the mult. The remaining 6 bits (7:2)
are reserved and should be set to zero.
The
wBytesPerInterval member is used to indicate the total number of bytes
that can be transferred in one service interval. Note, this is only valid
for
Isochronous and
Interrupt IN (periodic) endpoints.
SEE ALSO
usb_ep_xdescr_fill(9F),
usb_pipe_xopen(9F),
usb_ep_descr(9S),
usb_ep_xdescr(9S) Universal Serial Bus 3.1 Specification, www.usb.org.
OmniOS August 10, 2016 OmniOS