pub enum UsbFunctionRequest {
ConnectToEndpoint {
ep_addr: u8,
ep: ServerEnd<EndpointMarker>,
responder: UsbFunctionConnectToEndpointResponder,
},
Configure {
configuration: Vec<u8>,
iface: ClientEnd<UsbFunctionInterfaceMarker>,
responder: UsbFunctionConfigureResponder,
},
Deconfigure {
responder: UsbFunctionDeconfigureResponder,
},
AllocResources {
interface_count: u8,
endpoints: Vec<EndpointResource>,
strings: Vec<String>,
responder: UsbFunctionAllocResourcesResponder,
},
EndpointSetStall {
endpoint_address: u8,
responder: UsbFunctionEndpointSetStallResponder,
},
EndpointClearStall {
endpoint_address: u8,
responder: UsbFunctionEndpointClearStallResponder,
},
ConfigureEndpoint {
endpoint_address: u8,
endpoint_configuration: EndpointConfiguration,
responder: UsbFunctionConfigureEndpointResponder,
},
DisableEndpoint {
endpoint_address: u8,
responder: UsbFunctionDisableEndpointResponder,
},
}Variants§
ConnectToEndpoint
Connects to endpoint. Returns
- ZX_ERR_NOT_FOUND: if endpoint address does not exist.
- ZX_ERR_ALREADY_BOUND: if the endpoint is already bound.
Configure
Configures the function with the given descriptors.
configuration is a vector of USB descriptors to configure the function
with. The descriptors are concatenated together following the USB
specification to form the configuration.
iface provides the control-plane callbacks for the function.
The function is unregistered from the USB function manager when
iface is closed.
Any resource address and numbers referenced in configuration must have
been allocated by a previous call to AllocResources.
Returns ZX_ERR_INVALID_ARGS if the configuration is invalid.
Deconfigure
Deconfigures the function.
This is the opposite of Configure. The server drops its connection to
the function upon receiving the call, if it’s bound.
Returns after the function channel has been unbound from the server.
Trivially succeeds if no function interface is bound.
Returns ZX_ERR_UNAVAILABLE if a deconfiguration is already in
progress.
Fields
responder: UsbFunctionDeconfigureResponderAllocResources
Allocates resources for the function.
This function is used to allocate resources for the function.
interface_count informs how many interfaces to create.
interface_nums returns the allocate interface numbers referencing
the requested interfaces.
endpoints is a vector of endpoints to allocate. The direction and
endpoint server end are provided.
endpoint_addrs returns a vector of the same size containing the
allocated endpoint addresses. On success the endpoint server ends are
connected to a server. Closed otherwise.
strings is a vector of strings to allocate.
string_indices returns a vector of the same size containing the
allocated string indices.
Returns the interface ids, endpoint ids, and string ids that were allocated. On error, no resources are allocated. Returns:
ZX_ERR_NO_RESOURCESif any resource namespace numbers are exhausted.
The allocated resource numbers and addresses remain allocated for the
lifetime of the connection to UsbFunction.
EndpointSetStall
Sets stall state in an endpoint.
Returns
ZX_ERR_IO_NOT_PRESENT: If device is not running, disconnected, or inactive.ZX_ERR_NOT_FOUND: If endpoint address does not exist.
EndpointClearStall
Clears stall state in an endpoint.
Returns
ZX_ERR_IO_NOT_PRESENT: If device is not running, disconnected, or inactive.ZX_ERR_NOT_FOUND: If endpoint address does not exist.
ConfigureEndpoint
Configure and enable an endpoint with the given configuration.
See usb20 9.6.6.
Returns
ZX_ERR_IO_NOT_PRESENT: If device is not running, disconnected, or inactive.ZX_ERR_NOT_FOUND: If endpoint address does not exist.ZX_ERR_INVALID_ARGS: If the configuration is invalid.
Fields
endpoint_configuration: EndpointConfigurationresponder: UsbFunctionConfigureEndpointResponderDisableEndpoint
Disable an endpoint.
Returns
ZX_ERR_IO_NOT_PRESENT: If device is not running, disconnected, or inactive.ZX_ERR_NOT_FOUND: If endpoint address does not exist.
Implementations§
Source§impl UsbFunctionRequest
impl UsbFunctionRequest
pub fn into_connect_to_endpoint( self, ) -> Option<(u8, ServerEnd<EndpointMarker>, UsbFunctionConnectToEndpointResponder)>
pub fn into_configure( self, ) -> Option<(Vec<u8>, ClientEnd<UsbFunctionInterfaceMarker>, UsbFunctionConfigureResponder)>
pub fn into_deconfigure(self) -> Option<UsbFunctionDeconfigureResponder>
pub fn into_alloc_resources( self, ) -> Option<(u8, Vec<EndpointResource>, Vec<String>, UsbFunctionAllocResourcesResponder)>
pub fn into_endpoint_set_stall( self, ) -> Option<(u8, UsbFunctionEndpointSetStallResponder)>
pub fn into_endpoint_clear_stall( self, ) -> Option<(u8, UsbFunctionEndpointClearStallResponder)>
pub fn into_configure_endpoint( self, ) -> Option<(u8, EndpointConfiguration, UsbFunctionConfigureEndpointResponder)>
pub fn into_disable_endpoint( self, ) -> Option<(u8, UsbFunctionDisableEndpointResponder)>
Sourcepub fn method_name(&self) -> &'static str
pub fn method_name(&self) -> &'static str
Name of the method defined in FIDL