usb_completion_reason(9S) Data Structures for Driversusb_completion_reason(9S)NAMEusb_completion_reason - USB completion reason definitions
SYNOPSIS
#include <sys/usb/usba.h>
INTERFACE LEVEL
Solaris DDI specific (Solaris DDI)
DESCRIPTION
If an error occurs during execution of a USB request, the USBA frame‐
work calls a client driver's exception callback handler to relay what
happened. The host controller reports transport errors to the exception
callback handler through the handler's request argument's completion
reason (usb_cr_t) field. A completion reason of USB_CR_OK means the
transfer completed with no errors detected.
The usb_cr_t enumerated type contains the following definitions:
USB_CR_OK
The transfer completed without any errors being detected.
USB_CR_CRC
CRC error was detected.
USB_CR_BITSTUFFING
Bit stuffing violation was detected.
USB_CR_DATA_TOGGLE_MM
Data toggle packet identifier did not match expected value.
USB_CR_STALL
The device endpoint indicated that it is stalled. If autoclearing
is enabled for the request (request attributes has USB_ATTRS_AUTO‐
CLEARING set), check the callback flags (usb_cb_flags_t) in the
callback handler to determine whether the stall is a functional
stall (USB_CB_FUNCTIONAL_STALL) or a protocol stall (USB_CB_PROTO‐
COL_STALL). Please see usb_request_attributes(9S) for more infor‐
mation on autoclearing.
USB_CR_DEV_NOT_RESP
Host controller timed out while waiting for device to respond.
USB_CR_PID_CHECKFAILURE
Check bits on the packet identifier returned from the device
were not as expected.
USB_CR_UNEXP_PID
Packet identifier received was not valid.
USB_CR_DATA_OVERRUN
Amount of data returned exceeded either the maximum packet size of
the endpoint or the remaining buffer size.
USB_CR_DATA_UNDERRUN
Amount of data returned was not sufficient to fill the specified
buffer and the USB_ATTRS_SHORT_XFER_OK attribute was not set.
Please see usb_request_attributes(9S) for more information on
allowance of short transfers.
USB_CR_BUFFER_OVERRUN
A device sent data faster than the system could digest it.
USB_CR_BUFFER_UNDERRUN
The host controller could not get data from the system fast enough
to keep up with the required USB data rate.
USB_CR_TIMEOUT
A timeout specified in a control, bulk, or one-time interrupt
request has expired.
USB_CR_NOT_ACCESSED
Request was not accessed nor processed by the host controller.
USB_CR_NO_RESOURCES
No resources were available to continue servicing a periodic inter‐
rupt or isochronous request.
USB_CR_STOPPED_POLLING
Servicing of the current periodic request cannot continue because
polling on an interrupt-IN or isochronous-IN endpoint has stopped.
USB_CR_PIPE_CLOSING
Request was not started because the pipe to which it was queued was
closing or closed.
USB_CR_PIPE_RESET
Request was not started because the pipe to which it was queued was
reset.
USB_CR_NOT_SUPPORTED
Request or command is not supported.
USB_CR_FLUSHED
Request was not completed because the pipe to which it was queued
went to an error state, became stalled, was reset or was closed.
USB_CR_HC_HARDWARE_ERR
Request could not be completed due to a general host
controller hardware error.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
┌─────────────────────────────┬─────────────────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├─────────────────────────────┼─────────────────────────────┤
│Architecture │PCI-based systems │
├─────────────────────────────┼─────────────────────────────┤
│Interface stability │Evolving │
├─────────────────────────────┼─────────────────────────────┤
│Availability │SUNWusb, SUNWusbu │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSOusb_alloc_request(9F), usb_pipe_bulk_xfer(9F), usb_pipe_ctrl_xfer(9F),
usb_pipe_intr_xfer(9F), usb_pipe_isoc_xfer(9F), usb_bulk_request(9S),
usb_ctrl_request(9S), usb_intr_request(9S), usb_isoc_request(9S).
SunOS 5.10 5 Jan 2004 usb_completion_reason(9S)