mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 09:13:55 -06:00
libqos: Added MSI-X support
Added MSI-X support for qtest PCI. Added MSI-X support for virtio-pci. Added MSI-X test case in virtio-blk-test. Signed-off-by: Marc Marí <marc.mari.barcelo@gmail.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
e11199554c
commit
5836811398
7 changed files with 426 additions and 62 deletions
|
@ -28,12 +28,24 @@
|
|||
|
||||
#define QVIRTIO_PCI_ALIGN 4096
|
||||
|
||||
#define QVIRTIO_MSI_NO_VECTOR 0xFFFF
|
||||
|
||||
typedef struct QVirtioPCIDevice {
|
||||
QVirtioDevice vdev;
|
||||
QPCIDevice *pdev;
|
||||
void *addr;
|
||||
uint16_t config_msix_entry;
|
||||
uint64_t config_msix_addr;
|
||||
uint32_t config_msix_data;
|
||||
} QVirtioPCIDevice;
|
||||
|
||||
typedef struct QVirtQueuePCI {
|
||||
QVirtQueue vq;
|
||||
uint16_t msix_entry;
|
||||
uint64_t msix_addr;
|
||||
uint32_t msix_data;
|
||||
} QVirtQueuePCI;
|
||||
|
||||
extern const QVirtioBus qvirtio_pci;
|
||||
|
||||
void qvirtio_pci_foreach(QPCIBus *bus, uint16_t device_type,
|
||||
|
@ -41,4 +53,9 @@ void qvirtio_pci_foreach(QPCIBus *bus, uint16_t device_type,
|
|||
QVirtioPCIDevice *qvirtio_pci_device_find(QPCIBus *bus, uint16_t device_type);
|
||||
void qvirtio_pci_device_enable(QVirtioPCIDevice *d);
|
||||
void qvirtio_pci_device_disable(QVirtioPCIDevice *d);
|
||||
|
||||
void qvirtio_pci_set_msix_configuration_vector(QVirtioPCIDevice *d,
|
||||
QGuestAllocator *alloc, uint16_t entry);
|
||||
void qvirtqueue_pci_msix_setup(QVirtioPCIDevice *d, QVirtQueuePCI *vqpci,
|
||||
QGuestAllocator *alloc, uint16_t entry);
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue