Lines Matching +full:- +full:- +full:-
1 /* SPDX-License-Identifier: MIT */
32 * under "backend/<guest-dom-id>/qusb".
41 * "conn-ring".
44 * responses). This is the "urb-ring".
63 *------------------ Backend Device Identification (PRIVATE) ------------------
65 * num-ports
70 * usb-ver
78 * Physical USB device connected to the given port, e.g. "3-1.5".
84 *----------------------- Request Transport Parameters -----------------------
86 * event-channel
92 * urb-ring-ref
99 * conn-ring-ref
116 *-------------------------- USB device plug events --------------------------
118 * USB device plug events are send via the "conn-ring" shared page. As only
123 * +----------------+----------------+----------------+----------------+
125 * +----------------+----------------+----------------+----------------+
126 * id - uint16_t, event id (taken from the actual frontend dummy request)
127 * portnum - uint8_t, port number (1 ... 31)
128 * speed - uint8_t, device USBIF_SPEED_*, USBIF_SPEED_NONE == unplug
132 * +----------------+----------------+
134 * +----------------+----------------+
135 * id - uint16_t, guest supplied value (no need for being unique)
137 *-------------------------- USB I/O request ---------------------------------
139 * A single USB I/O request on the "urb-ring" has the following layout:
141 * +----------------+----------------+----------------+----------------+
143 * +----------------+----------------+----------------+----------------+
145 * +----------------+----------------+----------------+----------------+
147 * +----------------+----------------+----------------+----------------+
150 * +----------------+----------------+----------------+----------------+
153 * +----------------+----------------+----------------+----------------+
155 * +----------------+----------------+----------------+----------------+
156 * | seg[USBIF_MAX_SEGMENTS_PER_REQUEST - 1] | 144
158 * +----------------+----------------+----------------+----------------+
161 * id - uint16_t, guest supplied value
162 * nr_buffer_segs - uint16_t, number of segment entries in seg[] array
163 * pipe - uint32_t, bit field with multiple information:
164 * bits 0-4: port request to send to
167 * bits 8-14: device number on port
168 * bits 15-18: endpoint of device
169 * bits 30-31: request type: 00 = isochronous, 01 = interrupt,
171 * transfer_flags - uint16_t, bit field with processing flags:
173 * buffer_length - uint16_t, total length of data
174 * request type specific data - 8 bytes, see below
175 * seg[] - array with 8 byte elements, see below
179 * +----------------+----------------+----------------+----------------+
181 * +----------------+----------------+----------------+----------------+
183 * +----------------+----------------+----------------+----------------+
184 * interval - uint16_t, time interval in msecs between frames
185 * start_frame - uint16_t, start frame number
186 * number_of_packets - uint16_t, number of packets to transfer
187 * nr_frame_desc_segs - uint16_t number of seg[] frame descriptors elements
191 * +----------------+----------------+----------------+----------------+
193 * +----------------+----------------+----------------+----------------+
195 * +----------------+----------------+----------------+----------------+
196 * interval - uint16_t, time in msecs until interruption
200 * +----------------+----------------+----------------+----------------+
203 * +----------------+----------------+----------------+----------------+
207 * +----------------+----------------+----------------+----------------+
210 * +----------------+----------------+----------------+----------------+
214 * +----------------+----------------+----------------+----------------+
216 * +----------------+----------------+----------------+----------------+
218 * +----------------+----------------+----------------+----------------+
219 * unlink_id - uint16_t, request id of request to terminate
223 * +----------------+----------------+----------------+----------------+
225 * +----------------+----------------+----------------+----------------+
227 * +----------------+----------------+----------------+----------------+
228 * gref - uint32_t, grant reference of buffer page
229 * offset - uint16_t, offset of buffer start in page
230 * length - uint16_t, length of buffer in page
232 *-------------------------- USB I/O response --------------------------------
235 * +----------------+----------------+----------------+----------------+
237 * +----------------+----------------+----------------+----------------+
239 * +----------------+----------------+----------------+----------------+
241 * +----------------+----------------+----------------+----------------+
243 * +----------------+----------------+----------------+----------------+
244 * id - uint16_t, id of the request this response belongs to
245 * start_frame - uint16_t, start_frame this response (iso requests only)
246 * status - int32_t, USBIF_STATUS_* (non-iso requests)
247 * actual_length - uint32_t, actual size of data transferred
248 * error_count - uint32_t, number of errors (iso requests)
261 * - port number: bits 0-4
264 * - operation flag: bit 5
268 * - direction: bit 7
269 * (0 = Host-to-Device [Out]
270 * 1 = Device-to-Host [In])
272 * - device address: bits 8-14
274 * - endpoint: bits 15-18
276 * - pipe type: bits 30-31
333 uint16_t nr_buffer_segs; /* number of urb->transfer_buffer segments */
370 int32_t status; /* status (non-ISO) */
372 #define USBIF_STATUS_NODEV (-19)
373 #define USBIF_STATUS_INVAL (-22)
374 #define USBIF_STATUS_STALL (-32)
375 #define USBIF_STATUS_IOERROR (-71)
376 #define USBIF_STATUS_BABBLE (-75)
377 #define USBIF_STATUS_SHUTDOWN (-108)