class UsbCdcFunction
Defined at line 58 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 70 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
const std::shared_ptr<fdf::Namespace> & incoming ()
Defined at line 89 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
bool online ()
Defined at line 141 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
bool configured ()
Defined at line 142 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
bool IntrEpRequestsFull ()
Defined at line 143 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
const std::array<uint8_t, 6> & mac_addr ()
Defined at line 144 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
size_t GetInFlightInterruptCountForTesting ()
Defined at line 145 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
uint8_t BulkInAddress ()
Defined at line 147 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
uint8_t BulkOutAddress ()
Defined at line 148 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
uint8_t InterruptAddress ()
Defined at line 149 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
inspect::ComponentInspector & inspector ()
Defined at line 151 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.h
usb_inspect::ThroughputTracker & GetThroughputTrackerForTesting ()
Defined at line 152 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 1169 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void Stop (fdf::StopCompleter completer)
Defined at line 1374 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 1533 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void Start (fdf::Arena & arena, StartCompleter::Sync & completer)
Defined at line 1558 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void Stop (fdf::Arena & arena, StopCompleter::Sync & completer)
Defined at line 1563 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 1569 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 1586 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 1697 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 1741 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 1750 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 1759 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void GetStatus (fdf::Arena & arena, GetStatusCompleter::Sync & completer)
Defined at line 1781 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 1785 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void GetMac (fdf::Arena & arena, GetMacCompleter::Sync & completer)
Defined at line 1788 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void Removed (fdf::Arena & arena, RemovedCompleter::Sync & completer)
Defined at line 1794 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 1796 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void GetFeatures (fdf::Arena & arena, GetFeaturesCompleter::Sync & completer)
Defined at line 1802 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 1811 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 485 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void SetConfigured (SetConfiguredRequest & request, SetConfiguredCompleter::Sync & completer)
Defined at line 655 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void SetInterface (SetInterfaceRequest & request, SetInterfaceCompleter::Sync & completer)
Defined at line 1084 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 1162 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
zx_status_t cdc_generate_mac_address ()
Defined at line 92 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 190 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
void CdcSendNotifications ()
Defined at line 204 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 313 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 442 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 326 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc
bool HasPendingRxCompletions ()
test helpers.
Defined at line 1839 of file ../../src/connectivity/ethernet/drivers/usb-cdc-function/usb-cdc-function.cc