class Control
Defined at line 428 of file fidling/gen/sdk/fidl/fuchsia.hardware.usb.dci/fuchsia.hardware.usb.dci/cpp/fidl/fuchsia.hardware.usb.dci/cpp/markers.h
Dispatch a control transaction (EP0 SETUP transfer).
See usb20 8.5.3 (Control Transfers) and 9.6 (Standard Device Requests).
Only called by DCI while the controller is running, after a SETUP packet is received on EP0.
This method replies after the peripheral controller or the target function driver has
processed the request.
To comply with USB 2.0 Section 9.2.6 (Request Processing Timing), the peripheral driver must
process and reply to requests without a data stage (and `SET_ADDRESS`) within 50 ms. For
requests with a data stage, it must reply (beginning the data stage) within 500 ms. Both
drivers must process these requests within these limits to prevent host-side timeouts and
enumeration failures.
* error:
* `ZX_ERR_NOT_SUPPORTED` if the request is not recognized.
* `ZX_ERR_BAD_STATE` if called while the controller is stopped or interface is not
bound.
Note: For any error returned by this method, the DCI driver stalls EP0 with a `STALL`
handshake to signal the failure to the USB host.
Public Members
static const bool kHasClientToServer
static const bool kHasClientToServerBody
static const bool kHasServerToClient
static const bool kHasServerToClientBody
static const bool kHasNonEmptyUserFacingResponse
static const bool kHasDomainError
static const bool kHasFrameworkError
static const uint64_t kOrdinal