TABLES
BufferRegion resource
Defined in fuchsia.hardware.usb.request/request.fidl
Buffer region containing data.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
buffer |
Buffer
|
Buffer for data |
2 |
offset |
uint64
|
Offset into the VMO to start reading or writing. This is relative to the offset passed to RegisterVmos if using vmo_id. |
3 |
size |
uint64
|
Number of bytes to read/write from/to this buffer region. |
BulkRequestInfo
Defined in fuchsia.hardware.usb.request/request.fidl
Bulk Request Information
Ordinal | Field | Type | Description |
---|
ControlRequestInfo
Defined in fuchsia.hardware.usb.request/request.fidl
Control Request Information
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
setup |
fuchsia.hardware.usb.descriptor/UsbSetup
|
Control Transfer required Setup packet |
InterruptRequestInfo
Defined in fuchsia.hardware.usb.request/request.fidl
Interrupt Request Information
Ordinal | Field | Type | Description |
---|
IsochronousRequestInfo
Defined in fuchsia.hardware.usb.request/request.fidl
Isochronous Request Information.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
frame_id |
uint64
|
Frame ID |
Request resource
Defined in fuchsia.hardware.usb.request/request.fidl
Requests passed over fuchsia.hardware.usb.endpoint.Endpoint. See fuchsia.hardware.usb.endpoint.Endpoint::QueueRequests for more details.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
data |
vector<BufferRegion>
|
Data. This array is consumed in-order, and allows for scatter/gather semantics across physically non-contiguous regions of a large buffer. |
2 |
defer_completion |
bool
|
Indicates not to complete this Request when done unless it failed. All Requests up to the next defer_completion == false are responded to as one unit. |
3 |
information |
RequestInfo
|
Extra information needed for Request. |
UNIONS
Buffer flexible resource
Defined in fuchsia.hardware.usb.request/request.fidl
Data buffer. There are two supported ways data may be conveyed, corresponding to the two members of the Buffer union:
- vmo_id: Pre-registered VMO. A driver may preregister VMOs using the fuchsia.hardware.usb.endpoint.Endpoint::RegisterVmos method. These VMOs are saved by the underlying USB driver in correspondence to the given vmo_id. Future Requests may refer to this by the unique vmo_id. Because VMOs are reused across Requests and saved by the underlying driver, each VMO only needs to be pinned/unpinned once.
- data: A data buffer for data that is not associated with a VMO. The underlying USB driver should allocate its own VMO, copy the data from the buffer, and pin the VMO. This should not be used often and not for large amounts of data.
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
vmo_id |
VmoId
|
The ID of a VMO that was previously registered. |
2 |
data |
vector<uint8>:300
|
Embedded data buffer to copy data to/from. |
RequestInfo flexible
Defined in fuchsia.hardware.usb.request/request.fidl
Extra information needed for different types of Requests.
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
control |
ControlRequestInfo
|
Control Request Information |
2 |
bulk |
BulkRequestInfo
|
Bulk Request Information |
3 |
isochronous |
IsochronousRequestInfo
|
Isochronous Request Information |
4 |
interrupt |
InterruptRequestInfo
|
Interrupt Request Information |
CONSTANTS
Name | Value | Type | Description |
---|---|---|---|
MAX_TRANSFER_SIZE |
300
|
uint32 |
Arbitrary limit on the max transfer size of Requests by embedding data (see Buffer::data). |
ALIASES
Name | Value | Description |
---|---|---|
VmoId |
uint64 |