Lines Matching +full:usb +full:- +full:port +full:- +full:id

4  * USB I/O interface for Xen guest OSes.
39 * access to the physical USB device(s) being passed to the guest.
43 * event channel. As the interface between frontend and backend is at the USB
44 * host connector level, multiple (up to 31) physical USB devices can be
49 * under "backend/<guest-dom-id>/qusb".
57 * about USB device plug events (device to be added or removed). This is the
58 * "conn-ring".
60 * The other ring page is used for USB I/O communication (requests and
61 * responses). This is the "urb-ring".
80 *------------------ Backend Device Identification (PRIVATE) ------------------
82 * num-ports
85 * Number of ports for this (virtual) USB host connector.
87 * usb-ver
90 * USB version of this host connector: 1 = USB 1.1, 2 = USB 2.0.
92 * port/[1...31]
95 * Physical USB device connected to the given port, e.g. "3-1.5".
101 *----------------------- Request Transport Parameters -----------------------
103 * event-channel
109 * urb-ring-ref
116 * conn-ring-ref
133 *-------------------------- USB device plug events --------------------------
135 * USB device plug events are send via the "conn-ring" shared page. As only
140 * +----------------+----------------+----------------+----------------+
141 * | id | portnum | speed | 4
142 * +----------------+----------------+----------------+----------------+
143 * id - uint16_t, event id (taken from the actual frontend dummy request)
144 * portnum - uint8_t, port number (1 ... 31)
145 * speed - uint8_t, device USBIF_SPEED_*, USBIF_SPEED_NONE == unplug
149 * +----------------+----------------+
150 * | id | 2
151 * +----------------+----------------+
152 * id - uint16_t, guest supplied value (no need for being unique)
154 *-------------------------- USB I/O request ---------------------------------
156 * A single USB I/O request on the "urb-ring" has the following layout:
158 * +----------------+----------------+----------------+----------------+
159 * | id | nr_buffer_segs | 4
160 * +----------------+----------------+----------------+----------------+
162 * +----------------+----------------+----------------+----------------+
164 * +----------------+----------------+----------------+----------------+
167 * +----------------+----------------+----------------+----------------+
170 * +----------------+----------------+----------------+----------------+
172 * +----------------+----------------+----------------+----------------+
173 * | seg[USBIF_MAX_SEGMENTS_PER_REQUEST - 1] | 144
175 * +----------------+----------------+----------------+----------------+
178 * id - uint16_t, guest supplied value
179 * nr_buffer_segs - uint16_t, number of segment entries in seg[] array
180 * pipe - uint32_t, bit field with multiple information:
181 * bits 0-4: port request to send to
182 * bit 5: unlink request with specified id (cancel I/O) if set (see below)
184 * bits 8-14: device number on port
185 * bits 15-18: endpoint of device
186 * bits 30-31: request type: 00 = isochronous, 01 = interrupt,
188 * transfer_flags - uint16_t, bit field with processing flags:
190 * buffer_length - uint16_t, total length of data
191 * request type specific data - 8 bytes, see below
192 * seg[] - array with 8 byte elements, see below
196 * +----------------+----------------+----------------+----------------+
198 * +----------------+----------------+----------------+----------------+
200 * +----------------+----------------+----------------+----------------+
201 * interval - uint16_t, time interval in msecs between frames
202 * start_frame - uint16_t, start frame number
203 * number_of_packets - uint16_t, number of packets to transfer
204 * nr_frame_desc_segs - uint16_t number of seg[] frame descriptors elements
208 * +----------------+----------------+----------------+----------------+
210 * +----------------+----------------+----------------+----------------+
212 * +----------------+----------------+----------------+----------------+
213 * interval - uint16_t, time in msecs until interruption
217 * +----------------+----------------+----------------+----------------+
220 * +----------------+----------------+----------------+----------------+
224 * +----------------+----------------+----------------+----------------+
227 * +----------------+----------------+----------------+----------------+
231 * +----------------+----------------+----------------+----------------+
233 * +----------------+----------------+----------------+----------------+
235 * +----------------+----------------+----------------+----------------+
236 * unlink_id - uint16_t, request id of request to terminate
240 * +----------------+----------------+----------------+----------------+
242 * +----------------+----------------+----------------+----------------+
244 * +----------------+----------------+----------------+----------------+
245 * gref - uint32_t, grant reference of buffer page
246 * offset - uint16_t, offset of buffer start in page
247 * length - uint16_t, length of buffer in page
249 *-------------------------- USB I/O response --------------------------------
252 * +----------------+----------------+----------------+----------------+
253 * | id | start_frame | 4
254 * +----------------+----------------+----------------+----------------+
256 * +----------------+----------------+----------------+----------------+
258 * +----------------+----------------+----------------+----------------+
260 * +----------------+----------------+----------------+----------------+
261 * id - uint16_t, id of the request this response belongs to
262 * start_frame - uint16_t, start_frame this response (iso requests only)
263 * status - int32_t, USBIF_STATUS_* (non-iso requests)
264 * actual_length - uint32_t, actual size of data transferred
265 * error_count - uint32_t, number of errors (iso requests)
276 * USB pipe in usbif_request
278 * - port number: bits 0-4
281 * - operation flag: bit 5
285 * - direction: bit 7
286 * (0 = Host-to-Device [Out]
287 * 1 = Device-to-Host [In])
289 * - device address: bits 8-14
291 * - endpoint: bits 15-18
293 * - pipe type: bits 30-31
349 uint16_t id; /* request id */ member
350 uint16_t nr_buffer_segs; /* number of urb->transfer_buffer segments */
361 uint16_t interval; /* maximum (1024*8) in usb core */
368 uint16_t interval; /* maximum (1024*8) in usb core */
373 uint16_t unlink_id; /* unlink request id */
385 uint16_t id; /* request id */ member
387 int32_t status; /* status (non-ISO) */
389 #define USBIF_STATUS_NODEV (-19)
390 #define USBIF_STATUS_INVAL (-22)
391 #define USBIF_STATUS_STALL (-32)
392 #define USBIF_STATUS_IOERROR (-71)
393 #define USBIF_STATUS_BABBLE (-75)
394 #define USBIF_STATUS_SHUTDOWN (-108)
407 uint16_t id; member
412 uint16_t id; /* request id */ member
413 uint8_t portnum; /* port number */