class UsbCdcFunction
Defined at line 60 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
UsbCdcFunction implements the USB CDC (Ethernet Control Model) peripheral function driver.
Threading
&
Dispatcher Architecture:
All protocol servers (fuchsia.hardware.usb.function/UsbFunctionInterface,
fuchsia.hardware.network.driver/NetworkDeviceImpl), endpoint event callbacks,
and asynchronous teardown/reconfiguration tasks run on the driver's default
synchronized dispatcher (`dispatcher()`).
Internal driver state (e.g. `online_`, `configured_`, buffer queues, and endpoint
clients) is managed exclusively within this single dispatch loop, guaranteeing
serialized execution without requiring explicit mutex locking.
Public Members
static basic_string_view kDriverName
static const uint8_t kPortId
static const size_t kTxDepth
static const size_t kRxDepth
static const fdf_arena_tag_t kArenaTag
Public Methods
void UsbCdcFunction ()
Defined at line 72 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
const std::shared_ptr<fdf::Namespace> & incoming ()
Defined at line 91 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
bool online ()
Defined at line 145 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
bool configured ()
Defined at line 146 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
bool IntrEpRequestsFull ()
Defined at line 147 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
const std::array<uint8_t, 6> & mac_addr ()
Defined at line 148 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
size_t GetInFlightInterruptCountForTesting ()
Defined at line 149 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
uint8_t BulkInAddress ()
Defined at line 151 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
uint8_t BulkOutAddress ()
Defined at line 152 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
uint8_t InterruptAddress ()
Defined at line 153 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
inspect::ComponentInspector & inspector ()
Defined at line 155 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
usb_inspect::ThroughputTracker & GetThroughputTrackerForTesting ()
Defined at line 156 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
zx::result<> Start (fdf::DriverContext context)
fdf::DriverBase2 implementation.
Defined at line 1223 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void Stop (fdf::StopCompleter completer)
Defined at line 1432 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void Init (fnetdev::wire::NetworkDeviceImplInitRequest *request,fdf::Arena &arena,InitCompleter::Sync &completer)
NetworkDeviceImpl protocol:
Defined at line 1607 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void Start (fdf::Arena & arena, StartCompleter::Sync & completer)
Defined at line 1632 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void Stop (fdf::Arena & arena, StopCompleter::Sync & completer)
Defined at line 1638 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void GetInfo (fdf::Arena & arena, fdf::WireServer<fnetdev::NetworkDeviceImpl>::GetInfoCompleter::Sync & completer)
Defined at line 1645 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void QueueTx (fnetdev::wire::NetworkDeviceImplQueueTxRequest *request,fdf::Arena &arena,QueueTxCompleter::Sync &completer)
Defined at line 1662 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void QueueRxSpace (fnetdev::wire::NetworkDeviceImplQueueRxSpaceRequest *request,fdf::Arena &arena,QueueRxSpaceCompleter::Sync &completer)
Defined at line 1773 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void PrepareVmo (fnetdev::wire::NetworkDeviceImplPrepareVmoRequest *request,fdf::Arena &arena,PrepareVmoCompleter::Sync &completer)
Defined at line 1817 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void ReleaseVmo (fnetdev::wire::NetworkDeviceImplReleaseVmoRequest *request,fdf::Arena &arena,ReleaseVmoCompleter::Sync &completer)
Defined at line 1826 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void GetInfo (fdf::Arena & arena, fdf::WireServer<fnetdev::NetworkPort>::GetInfoCompleter::Sync & completer)
NetworkPort protocol:
Defined at line 1835 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void GetStatus (fdf::Arena & arena, GetStatusCompleter::Sync & completer)
Defined at line 1857 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void SetActive (fnetdev::wire::NetworkPortSetActiveRequest *request,fdf::Arena &arena,SetActiveCompleter::Sync &completer)
Defined at line 1861 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void GetMac (fdf::Arena & arena, GetMacCompleter::Sync & completer)
Defined at line 1864 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void Removed (fdf::Arena & arena, RemovedCompleter::Sync & completer)
Defined at line 1870 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void GetPowerDependencyToken (fdf::Arena & arena, GetPowerDependencyTokenCompleter::Sync & completer)
Defined at line 1872 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void GetAddress (fdf::Arena & arena, GetAddressCompleter::Sync & completer)
MacAddr protocol:
Defined at line 1877 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void GetFeatures (fdf::Arena & arena, GetFeaturesCompleter::Sync & completer)
Defined at line 1883 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void SetMode (fnetdev::wire::MacAddrSetModeRequest *request,fdf::Arena &arena,SetModeCompleter::Sync &completer)
Defined at line 1892 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void Control (ControlRequest & request, ControlCompleter::Sync & completer)
UsbFunctionInterface methods.
Defined at line 502 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void SetConfigured (SetConfiguredRequest & request, SetConfiguredCompleter::Sync & completer)
Defined at line 679 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void SetInterface (SetInterfaceRequest & request, SetInterfaceCompleter::Sync & completer)
Defined at line 1130 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void handle_unknown_method (fidl::UnknownMethodMetadata<fuchsia_hardware_usb_function::UsbFunctionInterface> metadata, fidl::UnknownMethodCompleter::Sync & completer)
Defined at line 1216 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
zx_status_t cdc_generate_mac_address ()
Defined at line 93 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void CdcIntrComplete (std::vector<fuchsia_hardware_usb_endpoint::Completion> completion)
Defined at line 196 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void CdcSendNotifications ()
Defined at line 210 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void CdcRxComplete (std::vector<fuchsia_hardware_usb_endpoint::Completion> completions)
Defined at line 325 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void CdcTxComplete (std::vector<fuchsia_hardware_usb_endpoint::Completion> completions)
Defined at line 454 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void ProcessRxCompletions (std::vector<fuchsia_hardware_usb_endpoint::Completion> completions)
Defined at line 338 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
bool HasPendingRxCompletions ()
test helpers.
Defined at line 1920 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
Friends
class UsbCdcTestHelper