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 143 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
bool configured ()
Defined at line 144 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
bool IntrEpRequestsFull ()
Defined at line 145 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
const std::array<uint8_t, 6> & mac_addr ()
Defined at line 146 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
size_t GetInFlightInterruptCountForTesting ()
Defined at line 147 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
uint8_t BulkInAddress ()
Defined at line 149 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
uint8_t BulkOutAddress ()
Defined at line 150 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
uint8_t InterruptAddress ()
Defined at line 151 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
inspect::ComponentInspector & inspector ()
Defined at line 153 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
usb_inspect::ThroughputTracker & GetThroughputTrackerForTesting ()
Defined at line 154 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 1178 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void Stop (fdf::StopCompleter completer)
Defined at line 1383 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 1543 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void Start (fdf::Arena & arena, StartCompleter::Sync & completer)
Defined at line 1568 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void Stop (fdf::Arena & arena, StopCompleter::Sync & completer)
Defined at line 1574 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 1581 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 1598 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 1709 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 1753 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 1762 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 1771 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void GetStatus (fdf::Arena & arena, GetStatusCompleter::Sync & completer)
Defined at line 1793 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 1797 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void GetMac (fdf::Arena & arena, GetMacCompleter::Sync & completer)
Defined at line 1800 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void Removed (fdf::Arena & arena, RemovedCompleter::Sync & completer)
Defined at line 1806 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 1808 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void GetFeatures (fdf::Arena & arena, GetFeaturesCompleter::Sync & completer)
Defined at line 1814 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 1823 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 497 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void SetConfigured (SetConfiguredRequest & request, SetConfiguredCompleter::Sync & completer)
Defined at line 666 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void SetInterface (SetInterfaceRequest & request, SetInterfaceCompleter::Sync & completer)
Defined at line 1093 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 1171 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 320 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 449 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 333 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
bool HasPendingRxCompletions ()
test helpers.
Defined at line 1851 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc