class Backend

Defined at line 26 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/backend.h

Public Methods

void Backend ()

Defined at line 28 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/backend.h

zx_status_t InterruptValid ()

Defined at line 64 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/backend.h

void Backend (Backend && )

Defined at line 85 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/backend.h

zx_status_t Bind ()
uint64_t ReadFeatures ()

Returns the bitmap of features supported by the device

void SetFeatures (uint64_t bitmap)

Does a Driver -> Device acknowledgement of all of the feature bits

zx_status_t ConfirmFeatures ()

Does a FEATURES_OK check

void DriverStatusOk ()

Device lifecycle methods

void DriverStatusAck ()
void DeviceReset ()
void Unbind ()

Defined at line 31 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/backend.h

fuchsia_hardware_pci::InterruptMode InterruptMode ()

For Device level access to checking IRQ mode.

Defined at line 71 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/backend.h

zx_status_t GetSharedMemoryVmo (zx::vmo * vmo_out)

Defined at line 83 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/backend.h

void Backend (const Backend & )

Defined at line 85 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/backend.h

void WaitForDeviceReset ()
void ReadDeviceConfig (uint16_t offset, uint8_t * value)

/ Read/Write the device config

void ReadDeviceConfig (uint16_t offset, uint16_t * value)
void ReadDeviceConfig (uint16_t offset, uint32_t * value)
void ReadDeviceConfig (uint16_t offset, uint64_t * value)
void Terminate ()

Called when the driver is shutting down.

Defined at line 81 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/backend.h

void WriteDeviceConfig (uint16_t offset, uint8_t value)
void WriteDeviceConfig (uint16_t offset, uint16_t value)
void WriteDeviceConfig (uint16_t offset, uint32_t value)
void WriteDeviceConfig (uint16_t offset, uint64_t value)
uint16_t GetRingSize (uint16_t index)

Ring methods vary based on backend due to config offsets and field sizes.

zx_status_t SetRing (uint16_t index, uint16_t count, zx_paddr_t pa_desc, zx_paddr_t pa_avail, zx_paddr_t pa_used)
void RingKick (uint16_t ring_index)
uint32_t IsrStatus ()

Expected to read the interrupt status out of the config based on the offset/address

specified by the isr capability.

zx::result<uint32_t> WaitForInterrupt ()

Wait for the device to raise an interrupt; may return early or may time out after an

internal waiting period.

Returns ZX_OK if woken by an interrupt along with the key of the interrupt to ack.

ZX_ERR_TIMED_OUT if an internal timeout expired; there may be work from the device

void InterruptAck (uint32_t key)
void ~Backend ()

Defined at line 29 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/backend.h

Backend & operator= (const Backend & )

Defined at line 85 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/backend.h

Backend & operator= (Backend && )

Defined at line 85 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/backend.h

Protected Methods

fuchsia_hardware_pci::InterruptMode & irq_mode ()

For derived backends who want to modify the IRQ mode

Defined at line 89 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/backend.h

std::vector<zx::interrupt> & irq_handles ()

Defined at line 90 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/backend.h