class DeviceImplInfo

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

Static device information.

`DeviceImplInfo` must not change for the entire lifetime of a device.

Public Methods

void DeviceImplInfo ()

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

void DeviceImplInfo (const DeviceImplInfo & other)

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

bool has_tx_tail_length ()
DeviceImplInfo & operator= (const DeviceImplInfo & other)

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

void DeviceImplInfo (DeviceImplInfo && other)

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

bool IsEmpty ()

Returns whether no field is set.

bool HasUnknownData ()

Returns whether the table references unknown fields.

::fidl::WireTableBuilder< ::fuchsia_hardware_network_driver::wire::DeviceImplInfo> Builder (::fidl::AnyArena & arena)

Return a builder that by defaults allocates of an arena.

::fidl::WireTableExternalBuilder< ::fuchsia_hardware_network_driver::wire::DeviceImplInfo> ExternalBuilder (::fidl::ObjectView< ::fidl::WireTableFrame< ::fuchsia_hardware_network_driver::wire::DeviceImplInfo>> frame)

Return a builder that relies on explicitly allocating |fidl::ObjectView|s.

uint32_t & device_features ()

Device features

Required.

bool has_device_features ()
DeviceImplInfo & operator= (DeviceImplInfo && other)

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

uint16_t & tx_depth ()

Maximum depth of tx frames in device's outgoing queue.

Required.

bool has_tx_depth ()
uint16_t & rx_depth ()

Maximum number of rx frames in a device's incoming queue.

Required.

bool has_rx_depth ()
uint16_t & rx_threshold ()

Rx depth threshold at which the device should be fed new rx buffers.

New buffer notifications from [`NetworkDeviceIfc`] may be skipped while

the number of rx buffers held by the implementation is larger than

`rx_threshold`. It is invalid to provide a value larger than `rx_depth`.

`rx_threshold = rx_depth` is functionally equivalent to `rx_threshold =

rx_depth - 1`.

A large value (close to `rx_depth`) may cause considerable CPU thrash

for small rx completion transaction sizes, while a small value may cause

the implementation to be starved of buffers. The typical choice of value

is `rx_depth / 2`.

Required.

bool has_rx_threshold ()
uint8_t & max_buffer_parts ()

Maximum virtual discontiguous buffer parts accepted by the device.

Devices that can't perform scatter-gather operations must set

`max_buffer_parts` to 1.

Must be in the range [1, `MAX_BUFFER_PARTS`].

Required.

bool has_max_buffer_parts ()
uint32_t & max_buffer_length ()

Maximum total length of buffers. May be set to zero for no maximum.

Devices that do not support scatter-gather DMA may set this to a value

smaller than a page size to guarantee compatibility.

Required.

bool has_max_buffer_length ()
uint32_t & buffer_alignment ()

Alignment requirement for buffers relative to the start of VMOs.

Must be greater than zero.

Required.

bool has_buffer_alignment ()
uint32_t & min_rx_buffer_length ()

The minimum rx buffer length for correct operation, in bytes.

Required.

bool has_min_rx_buffer_length ()
uint32_t & min_tx_buffer_length ()

The minimum tx buffer length for correct operation, in bytes.

This length accounts only for the buffer's body, and should not account

for `tx_head_length` or `tx_tail_length`.

Required.

bool has_min_tx_buffer_length ()
uint16_t & tx_head_length ()

Number of bytes requested as header bytes on tx buffers.

If set to zero, tx buffers will never contain header space. Otherwise,

tx buffers will start at the beginning of the header space, and the

header region will be informed.

Required.

bool has_tx_head_length ()
uint16_t & tx_tail_length ()

Number of bytes requested as tail bytes on tx buffers.

If set to zero, tx buffers will never contain tail space. Otherwise, tx

buffers will end at the end of the tail space, and the tail region will

be informed.

Required.

::fidl::VectorView< ::fuchsia_hardware_network::wire::RxAcceleration> & rx_accel ()

Available Rx acceleration flags for this device, as defined in

[`fuchsia.hardware.network/RxAcceleration`].

`rx_accel` maps the `RX_ACCEL_*` flags in the frame descriptors with

semantic acceleration features described by `RxAcceleration`. Position

`n` of `rx_accel` conveys the meaning of the `RX_ACCEL_n` flag.

Required.

bool has_rx_accel ()
::fidl::VectorView< ::fuchsia_hardware_network::wire::TxAcceleration> & tx_accel ()

Available tx acceleration flags for this device, as defined in

[`fuchsia.hardware.network/TxAcceleration`].

`tx_accel` maps the `TX_ACCEL_*` flags in the frame descriptors with

semantic acceleration features described by `TxAcceleration`. Position

`n` of `tx_accel` conveys the meaning of the `TX_ACCEL_n` flag.

Required.

bool has_tx_accel ()
DeviceImplInfo & set_device_features (uint32_t elem)
DeviceImplInfo & clear_device_features ()
DeviceImplInfo & set_tx_depth (uint16_t elem)
DeviceImplInfo & clear_tx_depth ()
DeviceImplInfo & set_rx_depth (uint16_t elem)
DeviceImplInfo & clear_rx_depth ()
DeviceImplInfo & set_rx_threshold (uint16_t elem)
DeviceImplInfo & clear_rx_threshold ()
DeviceImplInfo & set_max_buffer_parts (uint8_t elem)
DeviceImplInfo & clear_max_buffer_parts ()
DeviceImplInfo & set_max_buffer_length (uint32_t elem)
DeviceImplInfo & clear_max_buffer_length ()
DeviceImplInfo & set_buffer_alignment (uint32_t elem)
DeviceImplInfo & clear_buffer_alignment ()
DeviceImplInfo & set_min_rx_buffer_length (uint32_t elem)
DeviceImplInfo & clear_min_rx_buffer_length ()
DeviceImplInfo & set_min_tx_buffer_length (uint32_t elem)
DeviceImplInfo & clear_min_tx_buffer_length ()
DeviceImplInfo & set_tx_head_length (uint16_t elem)
DeviceImplInfo & clear_tx_head_length ()
DeviceImplInfo & set_tx_tail_length (uint16_t elem)
DeviceImplInfo & clear_tx_tail_length ()
DeviceImplInfo & set_rx_accel (::fidl::ObjectView< ::fidl::VectorView< ::fuchsia_hardware_network::wire::RxAcceleration>> elem)
DeviceImplInfo & set_rx_accel (std::nullptr_t )
DeviceImplInfo & clear_rx_accel ()
DeviceImplInfo & set_tx_accel (::fidl::ObjectView< ::fidl::VectorView< ::fuchsia_hardware_network::wire::TxAcceleration>> elem)
DeviceImplInfo & set_tx_accel (std::nullptr_t )
DeviceImplInfo & clear_tx_accel ()
void DeviceImplInfo (::fidl::AnyArena & allocator)
void DeviceImplInfo (::fidl::ObjectView< ::fidl::WireTableFrame< ::fuchsia_hardware_network_driver::wire::DeviceImplInfo>> && frame)

This constructor allows a user controlled allocation (not using a Arena).

It should only be used when performance is key.

As soon as the frame is given to the table, it must not be used directly or for another table.

void Allocate (::fidl::AnyArena & allocator)
void Init (::fidl::ObjectView< ::fidl::WireTableFrame< ::fuchsia_hardware_network_driver::wire::DeviceImplInfo>> && frame_ptr)
void ~DeviceImplInfo ()

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

Friends

class WireTableBaseBuilder
class WireTableBaseBuilder