New VIRTIO devices are Non-Transitional. This means they only expose the VIRTIO 1.0 PCI register interface.
The libqos virtio-pci.c code only supports Legacy and Transitional devices (in Legacy mode). This patch series add VIRTIO PCI 1.0 support so that tests can run against Non-Transitional devices too. Note that this does not actually add VIRTIO 1.0 support to our tests. That would require extending feature negotiation (VIRTIO_F_VERSION_1). I will look at this as a separate step but the most pressing issue is getting libqos to work with Non-Transitional virtio-pci devices. Stefan Hajnoczi (7): libqos: extract Legacy virtio-pci.c code libqos: add iteration support to qpci_find_capability() libqos: pass full QVirtQueue to set_queue_address() libqos: add MSI-X callbacks to QVirtioPCIDevice libqos: expose common virtqueue setup/cleanup functions libqos: make the virtio-pci BAR index configurable libqos: add VIRTIO PCI 1.0 support tests/Makefile.include | 1 + tests/libqos/pci.h | 2 +- tests/libqos/virtio-pci-modern.h | 17 ++ tests/libqos/virtio-pci.h | 34 ++- tests/libqos/virtio.h | 2 +- tests/libqos/pci.c | 18 +- tests/libqos/virtio-mmio.c | 6 +- tests/libqos/virtio-pci-modern.c | 405 +++++++++++++++++++++++++++++++ tests/libqos/virtio-pci.c | 91 ++++--- 9 files changed, 529 insertions(+), 47 deletions(-) create mode 100644 tests/libqos/virtio-pci-modern.h create mode 100644 tests/libqos/virtio-pci-modern.c -- 2.21.0