class FakeBackend

Defined at line 24 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

FakeBackend allows writing tests of virtio device drivers.

Tests may subclass FakeBackend and override certain functions to check device/driver

interactions. FakeBackend also provides a small amount of helper functionality itself - it

checks the device initialization state machine, tracks valid queues/sizes, and valid config

registers.

Protected Members

static const uint16_t kDeviceFeatures
static const uint16_t kGuestFeatures
static const uint16_t kQueueAddress
static const uint16_t kQueueSize
static const uint16_t kQueueSelect
static const uint16_t kQueueNotify
static const uint16_t kDeviceStatus
static const uint16_t kISRStatus

Public Methods

void ~FakeBackend ()

Defined at line 33 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

zx_status_t Bind ()

Defined at line 35 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

void Unbind ()

Defined at line 36 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

uint64_t ReadFeatures ()

Defined at line 37 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

void SetFeatures (uint64_t bitmap)

Defined at line 38 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

zx_status_t ConfirmFeatures ()

Defined at line 39 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

void DriverStatusOk ()

Defined at line 40 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

void DriverStatusAck ()

Defined at line 44 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

void DeviceReset ()

Defined at line 48 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

void WaitForDeviceReset ()

Defined at line 52 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

void ReadDeviceConfig (uint16_t offset, uint8_t * value)

Defined at line 55 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

void ReadDeviceConfig (uint16_t offset, uint16_t * value)

Defined at line 60 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

void ReadDeviceConfig (uint16_t offset, uint32_t * value)

Defined at line 65 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

void ReadDeviceConfig (uint16_t offset, uint64_t * value)

Defined at line 70 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

void WriteDeviceConfig (uint16_t offset, uint8_t value)

Defined at line 73 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

void WriteDeviceConfig (uint16_t offset, uint16_t value)

Defined at line 77 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

void WriteDeviceConfig (uint16_t offset, uint32_t value)

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

void WriteDeviceConfig (uint16_t offset, uint64_t value)

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

uint16_t GetRingSize (uint16_t index)

Defined at line 88 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

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)

Defined at line 92 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

void RingKick (uint16_t ring_index)

Defined at line 96 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

uint32_t IsrStatus ()

Defined at line 101 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

zx::result<uint32_t> WaitForInterrupt ()

Defined at line 102 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

void InterruptAck (uint32_t key)

Defined at line 103 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

State DeviceState ()

Defined at line 105 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

Protected Methods

void FakeBackend (std::initializer_list<std::pair<const uint16_t, uint16_t>> queue_sizes)

Defined at line 118 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

bool QueueKicked (uint16_t queue_index)

Returns true if a queue has been kicked (notified) and clears the notified bit.

Defined at line 136 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

template <typename T>
void AddClassRegister (uint16_t offset, T value)

Defined at line 145 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

template <typename T>
void SetRegister (uint16_t offset, T value)

Defined at line 158 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

template <typename T>
void SetClassRegister (uint16_t offset, T value)

Defined at line 171 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

template <typename T>
void ReadRegister (uint16_t offset, T * output)

Defined at line 176 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/fake.h

Enumerations

enum State
Name Value
DEVICE_VOID 0
DEVICE_RESET 1
DEVICE_STATUS_ACK 2
DRIVER_OK 3

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