class PciModernBackend

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

PciModernBackend is for v1.0+ Virtio using MMIO mapped bars and PCI capabilities.

Public Methods

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

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

zx_status_t Init ()

Defined at line 148 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

void ~PciModernBackend ()

The dtor handles cleanup of allocated bars because we cannot tear down

the mappings safely while the virtio device is being used by a driver.

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

void DriverStatusOk ()

Defined at line 478 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

void DriverStatusAck ()

Defined at line 487 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

void DeviceReset ()

Defined at line 463 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

void WaitForDeviceReset ()

Defined at line 469 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

uint32_t IsrStatus ()

Defined at line 496 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

uint64_t ReadFeatures ()

Defined at line 410 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

void SetFeatures (uint64_t bitmap)

Defined at line 426 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

zx_status_t ConfirmFeatures ()

Defined at line 446 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

zx_status_t ReadVirtioCap (uint8_t offset, virtio_pci_cap * cap)

Defined at line 101 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

zx_status_t ReadVirtioCap64 (uint8_t cap_config_offset, virtio_pci_cap & cap, virtio_pci_cap64 * cap64_out)

Defined at line 131 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

zx_status_t GetSharedMemoryVmo (zx::vmo * vmo_out)

Defined at line 514 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

void ReadDeviceConfig (uint16_t offset, uint8_t * value)

These handle writing to/from a device's device config to allow derived

virtio devices to work with fields only they know about.

Defined at line 212 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

void ReadDeviceConfig (uint16_t offset, uint16_t * value)

Defined at line 217 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

void ReadDeviceConfig (uint16_t offset, uint32_t * value)

Defined at line 222 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

void ReadDeviceConfig (uint16_t offset, uint64_t * value)

Defined at line 227 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

void WriteDeviceConfig (uint16_t offset, uint8_t value)

Defined at line 232 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

void WriteDeviceConfig (uint16_t offset, uint16_t value)

Defined at line 237 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

void WriteDeviceConfig (uint16_t offset, uint32_t value)

Defined at line 242 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

void WriteDeviceConfig (uint16_t offset, uint64_t value)

Defined at line 247 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

void CommonCfgCallbackLocked (const virtio_pci_cap_t & cap)

Callbacks called during PciBackend's parsing of capabilities in Bind()

Defined at line 286 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

void NotifyCfgCallbackLocked (const virtio_pci_cap_t & cap)

Defined at line 300 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

void IsrCfgCallbackLocked (const virtio_pci_cap_t & cap)

Defined at line 309 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

void DeviceCfgCallbackLocked (const virtio_pci_cap_t & cap)

Defined at line 320 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

void PciCfgCallbackLocked (const virtio_pci_cap_t & cap)

Defined at line 337 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

void SharedMemoryCfgCallbackLocked (const virtio_pci_cap_t & cap, uint64_t offset, uint64_t length)

Defined at line 329 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

uint16_t GetRingSize (uint16_t index)

Handle the virtio queues for the device. Due to configuration layouts changing

depending on backend this has to be handled by the backend itself.

Defined at line 343 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

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)

Set up ring descriptors with the backend.

Defined at line 354 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc

void RingKick (uint16_t ring_index)

Defined at line 394 of file ../../src/devices/bus/lib/virtio/backends/pci_modern.cc