class UsbFunction
Defined at line 29 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.h
This class represents a USB function in the peripheral role configurations.
USB function drivers bind to this.
Public Methods
void UsbFunction (size_tindex,UsbPeripheral *peripheral,fuchsia_hardware_usb_peripheral::wire::FunctionDescriptordesc,uint8_tconfiguration,uint64_tconfig_generation,async_dispatcher_t *dispatcher)
Defined at line 32 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.h
uint64_t config_generation ()
Defined at line 43 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.h
size_t function_index ()
Defined at line 55 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.h
std::string name ()
Defined at line 56 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.h
uint8_t configuration ()
Defined at line 58 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.h
const usb_descriptor_header_t * GetDescriptors (size_t * out_length)
Defined at line 62 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.h
const fuchsia_hardware_usb_peripheral::wire::FunctionDescriptor & GetFunctionDescriptor ()
Defined at line 67 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.h
uint8_t GetNumInterfaces ()
Defined at line 72 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.h
void ~UsbFunction ()
Defined at line 146 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.cc
void SetConfigured (boolconfigured,usb_speed_tspeed,fit::callback<void (zx_status_t)>completer)
If SetConfigured(true, ...) is called from an already configured state,
then a deconfigure/reconfigure sequence is performed to reset the function
state.
Defined at line 432 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.cc
void SetInterface (uint8_tinterface,uint8_talt_setting,fit::callback<void (zx_status_t)>completer)
Defined at line 568 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.cc
zx::result<std::vector<uint8_t>> Control (const fuchsia_hardware_usb_descriptor::wire::UsbSetup & setup, cpp20::span<uint8_t> write_buffer)
TODO(https://fxbug.dev/493657863): This call should be async like
SetConfigured and SetInterface once we can guarantee a single-dispatch of
USB_RECIP_DEVICE requests to bound functions.
Defined at line 600 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.cc
void RequestRemoval ()
Defined at line 399 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.cc
void OnNodeControllerUnbound (fidl::UnbindInfo info)
Defined at line 417 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.cc
std::optional<std::vector<uint8_t>> GetEndpointsForInterface (uint8_t interface_num, uint8_t alt_setting)
Returns all endpoint addresses associated with the given interface and alternate setting
by parsing the function's descriptors. Returns std::nullopt if the function has no descriptors
(e.g. mock test functions).
Defined at line 757 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.cc
zx_status_t UsbFunctionCancelAll (uint8_t ep_address)
void ConnectToEndpoint (ConnectToEndpointRequest & request, ConnectToEndpointCompleter::Sync & completer)
fuchsia_hardware_usb_function.UsbFunction protocol implementation.
Defined at line 189 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.cc
void Configure (ConfigureRequest & request, ConfigureCompleter::Sync & completer)
Defined at line 293 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.cc
void AllocResources (AllocResourcesRequest & request, AllocResourcesCompleter::Sync & completer)
Defined at line 204 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.cc
void EndpointSetStall (EndpointSetStallRequest & request, EndpointSetStallCompleter::Sync & completer)
Defined at line 228 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.cc
void EndpointClearStall (EndpointClearStallRequest & request, EndpointClearStallCompleter::Sync & completer)
Defined at line 244 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.cc
void ConfigureEndpoint (ConfigureEndpointRequest & request, ConfigureEndpointCompleter::Sync & completer)
Defined at line 260 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.cc
void DisableEndpoint (DisableEndpointRequest & request, DisableEndpointCompleter::Sync & completer)
Defined at line 277 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.cc
void Deconfigure (DeconfigureCompleter::Sync & completer)
Defined at line 344 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.cc
zx::result<> AddChild (fidl::UnownedClientEnd<fuchsia_driver_framework::Node>parent,const std::shared_ptr<fdf::Namespace> &incoming,const std::shared_ptr<fdf::OutgoingDirectory> &outgoing)
Defined at line 25 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.cc
bool registered ()
Defined at line 101 of file ../../src/devices/usb/drivers/usb-peripheral/usb-function.h