template <>

class WireWeakAsyncBufferClientImpl

Defined at line 4723 of file fidling/gen/sdk/fidl/fuchsia.hardware.network.driver/fuchsia.hardware.network.driver/cpp/fidl/fuchsia.hardware.network.driver/cpp/driver/wire_messaging.h

Public Methods

::fidl::internal::WireBufferThenable< ::fuchsia_hardware_network_driver::NetworkDeviceImpl::Init> Init (::fdf::ClientEnd< ::fuchsia_hardware_network_driver::NetworkDeviceIfc> && iface)

Initializes the network device.

`Init` is only called once during the lifetime of the device to register

`iface` as the callback target for the Network Device implementation.

Upon initialization, the device is expected to be in the "Stopped"

state, the `Start` method will be called once the data path needs to be

opened.

+ request `iface` handle to the device interface.

- response `s` initialization status. A value other than `ZX_OK` will

cause the device to unbind.

Caller provides the backing storage for FIDL message.

::fidl::internal::WireBufferThenable< ::fuchsia_hardware_network_driver::NetworkDeviceImpl::Start> Start ()

Starts the device's data path.

`start` signals to the device implementation that it should bring up its

data path and be ready to receive tx frames and `iface` will start

accepting rx frames.

The device is only considered started once `Start` returns successfully.

Until then, the contract guarantees that no other data-path calls will

be made to the device (`QueueTx`, `RxAvailable`, `Stop`, or a second

call to `Start`), so implementers can safely assume or assert that this

contract is upheld.

- response `s` start status. `ZX_OK` indicates a successful start.

`ZX_ERR_ALREADY_BOUND` indicates that the device has already been

successfully started. Any other status value indicates an implementation

specific error.

Caller provides the backing storage for FIDL message.

::fidl::internal::WireBufferThenable< ::fuchsia_hardware_network_driver::NetworkDeviceImpl::Stop> Stop ()

Stops the network device.

The device implementation must return all outstanding Tx and Rx buffers

upon receiving this call. Any new buffers received in the stopped state

must be returned with an appropriate error (tx) or unfulfilled (rx). See

[`NetworkDeviceIfc.CompleteTx`] and [`NetworkDeviceIfc.CompleteRx`] for

details.

The device implementation may perform any power saving measures after

observing stop.

Caller provides the backing storage for FIDL message.

::fidl::internal::WireBufferThenable< ::fuchsia_hardware_network_driver::NetworkDeviceImpl::GetInfo> GetInfo ()

Gets information about the device.

Device information must not change over the course of the lifetime of

the device.

- response `info` device information.

Caller provides the backing storage for FIDL message.

::fidl::internal::WireBufferThenable< ::fuchsia_hardware_network_driver::NetworkDeviceImpl::PrepareVmo> PrepareVmo (uint8_t id, ::zx::vmo && vmo)

Informs device that a new VMO is being used to store frame data.

Implementers must store the VMO handle referenced by `id` until

[`NetworkDeviceImpl.ReleaseVmo`] is called with the same `id`.

+ request `id` identifier used to reference this VMO.

+ request `vmo` VMO where frame data will be stored.

- response `s` vmo registration status. `ZX_OK` indicates a successful

VMO preparation. Any other status value indicates an implementation

specific error and causes the client session which owns the VMO to be

closed.

Caller provides the backing storage for FIDL message.

::fidl::internal::WireBufferThenable< ::fuchsia_hardware_network_driver::NetworkDeviceImpl::ReleaseVmo> ReleaseVmo (uint8_t id)

Device may dispose of all references to the VMO referenced by `id`.

No more buffers will be sent with this `id`.

`ReleaseVmo` is guaranteed to only be called when the implementation

holds no buffers that reference that `id`.

+ request `id` VMO identifier.

Caller provides the backing storage for FIDL message.