class SetInterface

Defined at line 134 of file fidling/gen/sdk/fidl/fuchsia.hardware.usb.function/fuchsia.hardware.usb.function/cpp/fidl/fuchsia.hardware.usb.function/cpp/markers.h

Called to set an alternate setting for an interface due to a `SET_INTERFACE` control

request.

The protocol server (of [`UsbFunctionInterface`]) must use [`UsbFunction.ConfigureEndpoint`]

and [`UsbFunction.DisableEndpoint`] to configure or disable the interface's endpoints as

appropriate for the new alternate setting.

Depending on the alternate setting definition, this transition may require configuring new

endpoints (via `ConfigureEndpoint`), disabling existing endpoints (via `DisableEndpoint`),

or doing both. If an alternate setting does not use any endpoints, no endpoint

configuration calls are required.

The protocol server must perform all endpoint configuration/disabling and wait for those

calls to complete before replying to this method. This ensures that the protocol client can

report success/failure back to the host (by ACK'ing or STALL'ing the `SET_INTERFACE`

request).

Any error returned by this method causes the peripheral controller to stall Control

Endpoint 0, signaling a failure to the host (rejecting the `SET_INTERFACE` request).

* error:

* `ZX_ERR_NOT_SUPPORTED` if the alternate setting is not supported.

* `ZX_ERR_INVALID_ARGS` if the interface or alt_setting is invalid.

* Other errors if the function driver fails to configure or disable endpoints for the

new setting.

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