1usb_completion_reason(9S) Data Structures for Driversusb_completion_reason(9S)
2
3
4

NAME

6       usb_completion_reason - USB completion reason definitions
7

SYNOPSIS

9       #include <sys/usb/usba.h>
10
11

INTERFACE LEVEL

13       Solaris DDI specific (Solaris DDI)
14

DESCRIPTION

16       If  an  error occurs during execution of a USB request, the USBA frame‐
17       work calls a client driver's exception callback handler to  relay  what
18       happened. The host controller reports transport errors to the exception
19       callback handler through the handler's  request  argument's  completion
20       reason  (usb_cr_t)  field.  A  completion reason of USB_CR_OK means the
21       transfer completed with no errors detected.
22
23
24       The usb_cr_t enumerated type contains the following definitions:
25
26       USB_CR_OK                  The transfer completed  without  any  errors
27                                  being detected.
28
29
30       USB_CR_CRC                 CRC error was detected.
31
32
33       USB_CR_BITSTUFFING         Bit stuffing violation was detected.
34
35
36       USB_CR_DATA_TOGGLE_MM      Data  toggle packet identifier did not match
37                                  expected value.
38
39
40       USB_CR_STALL               The device endpoint  indicated  that  it  is
41                                  stalled.  If autoclearing is enabled for the
42                                  request     (request     attributes      has
43                                  USB_ATTRS_AUTOCLEARING set), check the call‐
44                                  back flags (usb_cb_flags_t) in the  callback
45                                  handler  to determine whether the stall is a
46                                  functional  stall  (USB_CB_FUNCTIONAL_STALL)
47                                  or a protocol stall (USB_CB_PROTOCOL_STALL).
48                                  Please  see  usb_request_attributes(9S)  for
49                                  more information on autoclearing.
50
51
52       USB_CR_DEV_NOT_RESP        Host  controller timed out while waiting for
53                                  device to respond.
54
55
56       USB_CR_PID_CHECKFAILURE    Check bits on the packet identifier returned
57                                  from  the  device              were  not  as
58                                  expected.
59
60
61       USB_CR_UNEXP_PID           Packet identifier received was not valid.
62
63
64       USB_CR_DATA_OVERRUN        Amount of data returned exceeded either  the
65                                  maximum  packet  size of the endpoint or the
66                                  remaining buffer size.
67
68
69       USB_CR_DATA_UNDERRUN       Amount of data returned was  not  sufficient
70                                  to   fill   the  specified  buffer  and  the
71                                  USB_ATTRS_SHORT_XFER_OK  attribute  was  not
72                                  set.  Please  see usb_request_attributes(9S)
73                                  for more information on allowance  of  short
74                                  transfers.
75
76
77       USB_CR_BUFFER_OVERRUN      A  device  sent  data faster than the system
78                                  could digest it.
79
80
81       USB_CR_BUFFER_UNDERRUN     The host controller could not get data  from
82                                  the  system  fast enough to keep up with the
83                                  required USB data rate.
84
85
86       USB_CR_TIMEOUT             A timeout specified in a control,  bulk,  or
87                                  one-time interrupt request has expired.
88
89
90       USB_CR_NOT_ACCESSED        Request  was  not  accessed nor processed by
91                                  the host controller.
92
93
94       USB_CR_NO_RESOURCES        No resources were available to continue ser‐
95                                  vicing  a  periodic interrupt or isochronous
96                                  request.
97
98
99       USB_CR_STOPPED_POLLING     Servicing of the  current  periodic  request
100                                  cannot continue because polling on an inter‐
101                                  rupt-IN  or  isochronous-IN   endpoint   has
102                                  stopped.
103
104
105       USB_CR_PIPE_CLOSING        Request  was not started because the pipe to
106                                  which it was queued was closing or closed.
107
108
109       USB_CR_PIPE_RESET          Request was not started because the pipe  to
110                                  which it was queued was reset.
111
112
113       USB_CR_NOT_SUPPORTED       Request or command is not supported.
114
115
116       USB_CR_FLUSHED             Request  was  not completed because the pipe
117                                  to which it was  queued  went  to  an  error
118                                  state,  became  stalled,  was  reset  or was
119                                  closed.
120
121
122       USB_CR_HC_HARDWARE_ERR     Request could not be completed due to a gen‐
123                                  eral  host              controller  hardware
124                                  error.
125
126

ATTRIBUTES

128       See attributes(5) for descriptions of the following attributes:
129
130
131
132
133       ┌─────────────────────────────┬─────────────────────────────┐
134       │      ATTRIBUTE TYPE         │      ATTRIBUTE VALUE        │
135       ├─────────────────────────────┼─────────────────────────────┤
136       │Architecture                 │PCI-based systems            │
137       ├─────────────────────────────┼─────────────────────────────┤
138       │Interface stability          │Committed                    │
139       ├─────────────────────────────┼─────────────────────────────┤
140       │Availability                 │SUNWusb, SUNWusbu            │
141       └─────────────────────────────┴─────────────────────────────┘
142

SEE ALSO

144       usb_alloc_request(9F), usb_pipe_bulk_xfer(9F),  usb_pipe_ctrl_xfer(9F),
145       usb_pipe_intr_xfer(9F),  usb_pipe_isoc_xfer(9F),  usb_bulk_request(9S),
146       usb_ctrl_request(9S), usb_intr_request(9S), usb_isoc_request(9S).
147
148
149
150SunOS 5.11                        5 Jan 2004         usb_completion_reason(9S)
Impressum