fuchsia.hardware.usb.request

Added: HEAD

TABLES

BufferRegion resource

Defined in fuchsia.hardware.usb.request/request.fidl

Buffer region containing data.

OrdinalFieldTypeDescription
buffer Buffer

Buffer for data

offset uint64

Offset into the VMO to start reading or writing. This is relative to the offset passed to RegisterVmos if using vmo_id.

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

OrdinalFieldTypeDescription

ControlRequestInfo

Defined in fuchsia.hardware.usb.request/request.fidl

Control Request Information

OrdinalFieldTypeDescription
setup fuchsia.hardware.usb.descriptor/UsbSetup

Control Transfer required Setup packet

InterruptRequestInfo

Defined in fuchsia.hardware.usb.request/request.fidl

Interrupt Request Information

OrdinalFieldTypeDescription

IsochronousRequestInfo

Defined in fuchsia.hardware.usb.request/request.fidl

Isochronous Request Information.

OrdinalFieldTypeDescription
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.

OrdinalFieldTypeDescription
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.

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.

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:

  1. 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.
  2. 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.
OrdinalVariantTypeDescription
vmo_id VmoId

The ID of a VMO that was previously registered.

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.

OrdinalVariantTypeDescription
control ControlRequestInfo

Control Request Information

bulk BulkRequestInfo

Bulk Request Information

isochronous IsochronousRequestInfo

Isochronous Request Information

interrupt InterruptRequestInfo

Interrupt Request Information

CONSTANTS

NameValueTypeDescription
MAX_TRANSFER_SIZE 300 uint32

Arbitrary limit on the max transfer size of Requests by embedding data (see Buffer::data).

ALIASES

NameValueDescription
VmoId uint64