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