class PciBackend

Defined at line 21 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/pci.h

Public Members

static const uint16_t kVirtioMsiNoVector
static const uint16_t kMsiConfigVector
static const uint16_t kMsiQueueVector

Public Methods

void PciBackend (fidl::ClientEnd<fuchsia_hardware_pci::Device> pci, fuchsia_hardware_pci::DeviceInfo info)

Defined at line 25 of file ../../src/devices/bus/lib/virtio/backends/pci.cc

zx_status_t Bind ()

Defined at line 32 of file ../../src/devices/bus/lib/virtio/backends/pci.cc

zx_status_t Init ()
const char * tag ()

Defined at line 27 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/pci.h

zx_status_t ConfigureInterruptMode ()

Virtio supports both a legacy INTx IRQ as well as MSI-X. In the former case,

a driver is required to read the ISR_STATUS register to determine what sort

of event has happened. This can be an expensive operation depending on the

hypervisor / emulation environment. For MSI-X a device 'should' support 2 or

more vector table entries, but is not required to. Since we only have one IRQ

worker in the backends at this time it's not that important that we allocate

a vector per ring, so for now the ideal is roughly two vectors, one being for

config changes and the other for rings.

Defined at line 68 of file ../../src/devices/bus/lib/virtio/backends/pci.cc

zx::result<uint32_t> WaitForInterrupt ()

Defined at line 123 of file ../../src/devices/bus/lib/virtio/backends/pci.cc

void InterruptAck (uint32_t key)

Defined at line 133 of file ../../src/devices/bus/lib/virtio/backends/pci.cc

Protected Methods

fidl::UnownedClientEnd<fuchsia_hardware_pci::Device> pci ()

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

const fuchsia_hardware_pci::DeviceInfo & info ()

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

std::mutex & lock ()

Defined at line 41 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/pci.h

zx::port & wait_port ()

Defined at line 42 of file ../../src/devices/bus/lib/virtio/include/lib/virtio/backends/pci.h