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