yeahuh / rpms / qemu-kvm

Forked from rpms/qemu-kvm 2 years ago
Clone
9ae3a8
From c0cad7dde740ad701c4a095c607970e1f76ad720 Mon Sep 17 00:00:00 2001
9ae3a8
From: Alex Williamson <alex.williamson@redhat.com>
9ae3a8
Date: Fri, 29 Sep 2017 21:44:12 +0200
9ae3a8
Subject: [PATCH 02/27] hw/vfio/pci: Rename VFIODevice into VFIOPCIDevice
9ae3a8
9ae3a8
RH-Author: Alex Williamson <alex.williamson@redhat.com>
9ae3a8
Message-id: <20170929214412.16765.59126.stgit@gimli.home>
9ae3a8
Patchwork-id: 76760
9ae3a8
O-Subject: [RHEL-7.5 qemu-kvm PATCH 02/16] hw/vfio/pci: Rename VFIODevice into VFIOPCIDevice
9ae3a8
Bugzilla: 1494181
9ae3a8
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
9ae3a8
RH-Acked-by: Auger Eric <eric.auger@redhat.com>
9ae3a8
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
9ae3a8
9ae3a8
From: Eric Auger <eric.auger@linaro.org>
9ae3a8
9ae3a8
Upstream: 9ee27d7381c2d540ee976c7cbae941c66bb66e70
9ae3a8
RHEL: Request notifier didn't exist upstream yet, included in change.
9ae3a8
9ae3a8
This prepares for the introduction of VFIOPlatformDevice
9ae3a8
9ae3a8
Signed-off-by: Eric Auger <eric.auger@linaro.org>
9ae3a8
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
9ae3a8
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
9ae3a8
---
9ae3a8
 hw/misc/vfio.c | 209 +++++++++++++++++++++++++++++----------------------------
9ae3a8
 1 file changed, 105 insertions(+), 104 deletions(-)
9ae3a8
9ae3a8
diff --git a/hw/misc/vfio.c b/hw/misc/vfio.c
9ae3a8
index 363c646..a1ca883 100644
9ae3a8
--- a/hw/misc/vfio.c
9ae3a8
+++ b/hw/misc/vfio.c
9ae3a8
@@ -55,11 +55,11 @@
9ae3a8
 #define VFIO_ALLOW_KVM_MSI 1
9ae3a8
 #define VFIO_ALLOW_KVM_MSIX 1
9ae3a8
 
9ae3a8
-struct VFIODevice;
9ae3a8
+struct VFIOPCIDevice;
9ae3a8
 
9ae3a8
 typedef struct VFIOQuirk {
9ae3a8
     MemoryRegion mem;
9ae3a8
-    struct VFIODevice *vdev;
9ae3a8
+    struct VFIOPCIDevice *vdev;
9ae3a8
     QLIST_ENTRY(VFIOQuirk) next;
9ae3a8
     struct {
9ae3a8
         uint32_t base_offset:TARGET_PAGE_BITS;
9ae3a8
@@ -130,7 +130,7 @@ typedef struct VFIOMSIVector {
9ae3a8
      */
9ae3a8
     EventNotifier interrupt;
9ae3a8
     EventNotifier kvm_interrupt;
9ae3a8
-    struct VFIODevice *vdev; /* back pointer to device */
9ae3a8
+    struct VFIOPCIDevice *vdev; /* back pointer to device */
9ae3a8
     int virq;
9ae3a8
     bool use;
9ae3a8
 } VFIOMSIVector;
9ae3a8
@@ -174,7 +174,7 @@ typedef struct VFIOMSIXInfo {
9ae3a8
     void *mmap;
9ae3a8
 } VFIOMSIXInfo;
9ae3a8
 
9ae3a8
-typedef struct VFIODevice {
9ae3a8
+typedef struct VFIOPCIDevice {
9ae3a8
     PCIDevice pdev;
9ae3a8
     int fd;
9ae3a8
     VFIOINTx intx;
9ae3a8
@@ -192,7 +192,7 @@ typedef struct VFIODevice {
9ae3a8
     VFIOBAR bars[PCI_NUM_REGIONS - 1]; /* No ROM */
9ae3a8
     VFIOVGA vga; /* 0xa0000, 0x3b0, 0x3c0 */
9ae3a8
     PCIHostDeviceAddress host;
9ae3a8
-    QLIST_ENTRY(VFIODevice) next;
9ae3a8
+    QLIST_ENTRY(VFIOPCIDevice) next;
9ae3a8
     struct VFIOGroup *group;
9ae3a8
     EventNotifier err_notifier;
9ae3a8
     EventNotifier req_notifier;
9ae3a8
@@ -211,13 +211,13 @@ typedef struct VFIODevice {
9ae3a8
     bool has_pm_reset;
9ae3a8
     bool needs_reset;
9ae3a8
     bool rom_read_failed;
9ae3a8
-} VFIODevice;
9ae3a8
+} VFIOPCIDevice;
9ae3a8
 
9ae3a8
 typedef struct VFIOGroup {
9ae3a8
     int fd;
9ae3a8
     int groupid;
9ae3a8
     VFIOContainer *container;
9ae3a8
-    QLIST_HEAD(, VFIODevice) device_list;
9ae3a8
+    QLIST_HEAD(, VFIOPCIDevice) device_list;
9ae3a8
     QLIST_ENTRY(VFIOGroup) next;
9ae3a8
     QLIST_ENTRY(VFIOGroup) container_next;
9ae3a8
 } VFIOGroup;
9ae3a8
@@ -263,16 +263,16 @@ static QLIST_HEAD(, VFIOGroup)
9ae3a8
  */
9ae3a8
 static int vfio_kvm_device_fd = -1;
9ae3a8
 
9ae3a8
-static void vfio_disable_interrupts(VFIODevice *vdev);
9ae3a8
+static void vfio_disable_interrupts(VFIOPCIDevice *vdev);
9ae3a8
 static uint32_t vfio_pci_read_config(PCIDevice *pdev, uint32_t addr, int len);
9ae3a8
 static void vfio_pci_write_config(PCIDevice *pdev, uint32_t addr,
9ae3a8
                                   uint32_t val, int len);
9ae3a8
-static void vfio_mmap_set_enabled(VFIODevice *vdev, bool enabled);
9ae3a8
+static void vfio_mmap_set_enabled(VFIOPCIDevice *vdev, bool enabled);
9ae3a8
 
9ae3a8
 /*
9ae3a8
  * Common VFIO interrupt disable
9ae3a8
  */
9ae3a8
-static void vfio_disable_irqindex(VFIODevice *vdev, int index)
9ae3a8
+static void vfio_disable_irqindex(VFIOPCIDevice *vdev, int index)
9ae3a8
 {
9ae3a8
     struct vfio_irq_set irq_set = {
9ae3a8
         .argsz = sizeof(irq_set),
9ae3a8
@@ -288,7 +288,7 @@ static void vfio_disable_irqindex(VFIODevice *vdev, int index)
9ae3a8
 /*
9ae3a8
  * INTx
9ae3a8
  */
9ae3a8
-static void vfio_unmask_intx(VFIODevice *vdev)
9ae3a8
+static void vfio_unmask_intx(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     struct vfio_irq_set irq_set = {
9ae3a8
         .argsz = sizeof(irq_set),
9ae3a8
@@ -302,7 +302,7 @@ static void vfio_unmask_intx(VFIODevice *vdev)
9ae3a8
 }
9ae3a8
 
9ae3a8
 #ifdef CONFIG_KVM /* Unused outside of CONFIG_KVM code */
9ae3a8
-static void vfio_mask_intx(VFIODevice *vdev)
9ae3a8
+static void vfio_mask_intx(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     struct vfio_irq_set irq_set = {
9ae3a8
         .argsz = sizeof(irq_set),
9ae3a8
@@ -333,7 +333,7 @@ static void vfio_mask_intx(VFIODevice *vdev)
9ae3a8
  */
9ae3a8
 static void vfio_intx_mmap_enable(void *opaque)
9ae3a8
 {
9ae3a8
-    VFIODevice *vdev = opaque;
9ae3a8
+    VFIOPCIDevice *vdev = opaque;
9ae3a8
 
9ae3a8
     if (vdev->intx.pending) {
9ae3a8
         qemu_mod_timer(vdev->intx.mmap_timer,
9ae3a8
@@ -346,7 +346,7 @@ static void vfio_intx_mmap_enable(void *opaque)
9ae3a8
 
9ae3a8
 static void vfio_intx_interrupt(void *opaque)
9ae3a8
 {
9ae3a8
-    VFIODevice *vdev = opaque;
9ae3a8
+    VFIOPCIDevice *vdev = opaque;
9ae3a8
 
9ae3a8
     if (!event_notifier_test_and_clear(&vdev->intx.interrupt)) {
9ae3a8
         return;
9ae3a8
@@ -365,7 +365,7 @@ static void vfio_intx_interrupt(void *opaque)
9ae3a8
     }
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_eoi(VFIODevice *vdev)
9ae3a8
+static void vfio_eoi(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     if (!vdev->intx.pending) {
9ae3a8
         return;
9ae3a8
@@ -379,7 +379,7 @@ static void vfio_eoi(VFIODevice *vdev)
9ae3a8
     vfio_unmask_intx(vdev);
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_enable_intx_kvm(VFIODevice *vdev)
9ae3a8
+static void vfio_enable_intx_kvm(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
 #ifdef CONFIG_KVM
9ae3a8
     struct kvm_irqfd irqfd = {
9ae3a8
@@ -458,7 +458,7 @@ fail:
9ae3a8
 #endif
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_disable_intx_kvm(VFIODevice *vdev)
9ae3a8
+static void vfio_disable_intx_kvm(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
 #ifdef CONFIG_KVM
9ae3a8
     struct kvm_irqfd irqfd = {
9ae3a8
@@ -503,7 +503,7 @@ static void vfio_disable_intx_kvm(VFIODevice *vdev)
9ae3a8
 
9ae3a8
 static void vfio_update_irq(PCIDevice *pdev)
9ae3a8
 {
9ae3a8
-    VFIODevice *vdev = DO_UPCAST(VFIODevice, pdev, pdev);
9ae3a8
+    VFIOPCIDevice *vdev = DO_UPCAST(VFIOPCIDevice, pdev, pdev);
9ae3a8
     PCIINTxRoute route;
9ae3a8
 
9ae3a8
     if (vdev->interrupt != VFIO_INT_INTx) {
9ae3a8
@@ -534,7 +534,7 @@ static void vfio_update_irq(PCIDevice *pdev)
9ae3a8
     vfio_eoi(vdev);
9ae3a8
 }
9ae3a8
 
9ae3a8
-static int vfio_enable_intx(VFIODevice *vdev)
9ae3a8
+static int vfio_enable_intx(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     uint8_t pin = vfio_pci_read_config(&vdev->pdev, PCI_INTERRUPT_PIN, 1);
9ae3a8
     int ret, argsz;
9ae3a8
@@ -599,7 +599,7 @@ static int vfio_enable_intx(VFIODevice *vdev)
9ae3a8
     return 0;
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_disable_intx(VFIODevice *vdev)
9ae3a8
+static void vfio_disable_intx(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     int fd;
9ae3a8
 
9ae3a8
@@ -626,7 +626,7 @@ static void vfio_disable_intx(VFIODevice *vdev)
9ae3a8
 static void vfio_msi_interrupt(void *opaque)
9ae3a8
 {
9ae3a8
     VFIOMSIVector *vector = opaque;
9ae3a8
-    VFIODevice *vdev = vector->vdev;
9ae3a8
+    VFIOPCIDevice *vdev = vector->vdev;
9ae3a8
     int nr = vector - vdev->msi_vectors;
9ae3a8
 
9ae3a8
     if (!event_notifier_test_and_clear(&vector->interrupt)) {
9ae3a8
@@ -658,7 +658,7 @@ static void vfio_msi_interrupt(void *opaque)
9ae3a8
     }
9ae3a8
 }
9ae3a8
 
9ae3a8
-static int vfio_enable_vectors(VFIODevice *vdev, bool msix)
9ae3a8
+static int vfio_enable_vectors(VFIOPCIDevice *vdev, bool msix)
9ae3a8
 {
9ae3a8
     struct vfio_irq_set *irq_set;
9ae3a8
     int ret = 0, i, argsz;
9ae3a8
@@ -749,7 +749,7 @@ static void vfio_update_kvm_msi_virq(VFIOMSIVector *vector, MSIMessage msg)
9ae3a8
 static int vfio_msix_vector_do_use(PCIDevice *pdev, unsigned int nr,
9ae3a8
                                    MSIMessage *msg, IOHandler *handler)
9ae3a8
 {
9ae3a8
-    VFIODevice *vdev = DO_UPCAST(VFIODevice, pdev, pdev);
9ae3a8
+    VFIOPCIDevice *vdev = DO_UPCAST(VFIOPCIDevice, pdev, pdev);
9ae3a8
     VFIOMSIVector *vector;
9ae3a8
     int ret;
9ae3a8
 
9ae3a8
@@ -838,7 +838,7 @@ static int vfio_msix_vector_use(PCIDevice *pdev,
9ae3a8
 
9ae3a8
 static void vfio_msix_vector_release(PCIDevice *pdev, unsigned int nr)
9ae3a8
 {
9ae3a8
-    VFIODevice *vdev = DO_UPCAST(VFIODevice, pdev, pdev);
9ae3a8
+    VFIOPCIDevice *vdev = DO_UPCAST(VFIOPCIDevice, pdev, pdev);
9ae3a8
     VFIOMSIVector *vector = &vdev->msi_vectors[nr];
9ae3a8
 
9ae3a8
     DPRINTF("%s(%04x:%02x:%02x.%x) vector %d released\n", __func__,
9ae3a8
@@ -877,7 +877,7 @@ static void vfio_msix_vector_release(PCIDevice *pdev, unsigned int nr)
9ae3a8
     }
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_enable_msix(VFIODevice *vdev)
9ae3a8
+static void vfio_enable_msix(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     vfio_disable_interrupts(vdev);
9ae3a8
 
9ae3a8
@@ -910,7 +910,7 @@ static void vfio_enable_msix(VFIODevice *vdev)
9ae3a8
             vdev->host.bus, vdev->host.slot, vdev->host.function);
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_enable_msi(VFIODevice *vdev)
9ae3a8
+static void vfio_enable_msi(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     int ret, i;
9ae3a8
 
9ae3a8
@@ -988,7 +988,7 @@ retry:
9ae3a8
             vdev->host.function, vdev->nr_vectors);
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_disable_msi_common(VFIODevice *vdev)
9ae3a8
+static void vfio_disable_msi_common(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     int i;
9ae3a8
 
9ae3a8
@@ -1012,7 +1012,7 @@ static void vfio_disable_msi_common(VFIODevice *vdev)
9ae3a8
     vfio_enable_intx(vdev);
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_disable_msix(VFIODevice *vdev)
9ae3a8
+static void vfio_disable_msix(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     int i;
9ae3a8
 
9ae3a8
@@ -1039,7 +1039,7 @@ static void vfio_disable_msix(VFIODevice *vdev)
9ae3a8
             vdev->host.bus, vdev->host.slot, vdev->host.function);
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_disable_msi(VFIODevice *vdev)
9ae3a8
+static void vfio_disable_msi(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     vfio_disable_irqindex(vdev, VFIO_PCI_MSI_IRQ_INDEX);
9ae3a8
     vfio_disable_msi_common(vdev);
9ae3a8
@@ -1048,7 +1048,7 @@ static void vfio_disable_msi(VFIODevice *vdev)
9ae3a8
             vdev->host.bus, vdev->host.slot, vdev->host.function);
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_update_msi(VFIODevice *vdev)
9ae3a8
+static void vfio_update_msi(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     int i;
9ae3a8
 
9ae3a8
@@ -1101,7 +1101,7 @@ static void vfio_bar_write(void *opaque, hwaddr addr,
9ae3a8
 
9ae3a8
 #ifdef DEBUG_VFIO
9ae3a8
     {
9ae3a8
-        VFIODevice *vdev = container_of(bar, VFIODevice, bars[bar->nr]);
9ae3a8
+        VFIOPCIDevice *vdev = container_of(bar, VFIOPCIDevice, bars[bar->nr]);
9ae3a8
 
9ae3a8
         DPRINTF("%s(%04x:%02x:%02x.%x:BAR%d+0x%"HWADDR_PRIx", 0x%"PRIx64
9ae3a8
                 ", %d)\n", __func__, vdev->host.domain, vdev->host.bus,
9ae3a8
@@ -1118,7 +1118,7 @@ static void vfio_bar_write(void *opaque, hwaddr addr,
9ae3a8
      * which access will service the interrupt, so we're potentially
9ae3a8
      * getting quite a few host interrupts per guest interrupt.
9ae3a8
      */
9ae3a8
-    vfio_eoi(container_of(bar, VFIODevice, bars[bar->nr]));
9ae3a8
+    vfio_eoi(container_of(bar, VFIOPCIDevice, bars[bar->nr]));
9ae3a8
 }
9ae3a8
 
9ae3a8
 static uint64_t vfio_bar_read(void *opaque,
9ae3a8
@@ -1156,7 +1156,7 @@ static uint64_t vfio_bar_read(void *opaque,
9ae3a8
 
9ae3a8
 #ifdef DEBUG_VFIO
9ae3a8
     {
9ae3a8
-        VFIODevice *vdev = container_of(bar, VFIODevice, bars[bar->nr]);
9ae3a8
+        VFIOPCIDevice *vdev = container_of(bar, VFIOPCIDevice, bars[bar->nr]);
9ae3a8
 
9ae3a8
         DPRINTF("%s(%04x:%02x:%02x.%x:BAR%d+0x%"HWADDR_PRIx
9ae3a8
                 ", %d) = 0x%"PRIx64"\n", __func__, vdev->host.domain,
9ae3a8
@@ -1166,7 +1166,7 @@ static uint64_t vfio_bar_read(void *opaque,
9ae3a8
 #endif
9ae3a8
 
9ae3a8
     /* Same as write above */
9ae3a8
-    vfio_eoi(container_of(bar, VFIODevice, bars[bar->nr]));
9ae3a8
+    vfio_eoi(container_of(bar, VFIOPCIDevice, bars[bar->nr]));
9ae3a8
 
9ae3a8
     return data;
9ae3a8
 }
9ae3a8
@@ -1177,7 +1177,7 @@ static const MemoryRegionOps vfio_bar_ops = {
9ae3a8
     .endianness = DEVICE_LITTLE_ENDIAN,
9ae3a8
 };
9ae3a8
 
9ae3a8
-static void vfio_pci_load_rom(VFIODevice *vdev)
9ae3a8
+static void vfio_pci_load_rom(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     struct vfio_region_info reg_info = {
9ae3a8
         .argsz = sizeof(reg_info),
9ae3a8
@@ -1235,7 +1235,7 @@ static void vfio_pci_load_rom(VFIODevice *vdev)
9ae3a8
 
9ae3a8
 static uint64_t vfio_rom_read(void *opaque, hwaddr addr, unsigned size)
9ae3a8
 {
9ae3a8
-    VFIODevice *vdev = opaque;
9ae3a8
+    VFIOPCIDevice *vdev = opaque;
9ae3a8
     uint64_t val = ((uint64_t)1 << (size * 8)) - 1;
9ae3a8
 
9ae3a8
     /* Load the ROM lazily when the guest tries to read it */
9ae3a8
@@ -1264,7 +1264,7 @@ static const MemoryRegionOps vfio_rom_ops = {
9ae3a8
     .endianness = DEVICE_LITTLE_ENDIAN,
9ae3a8
 };
9ae3a8
 
9ae3a8
-static bool vfio_blacklist_opt_rom(VFIODevice *vdev)
9ae3a8
+static bool vfio_blacklist_opt_rom(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     PCIDevice *pdev = &vdev->pdev;
9ae3a8
     uint16_t vendor_id, device_id;
9ae3a8
@@ -1284,7 +1284,7 @@ static bool vfio_blacklist_opt_rom(VFIODevice *vdev)
9ae3a8
     return false;
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_pci_size_rom(VFIODevice *vdev)
9ae3a8
+static void vfio_pci_size_rom(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     uint32_t orig, size = cpu_to_le32((uint32_t)PCI_ROM_ADDRESS_MASK);
9ae3a8
     off_t offset = vdev->config_offset + PCI_ROM_ADDRESS;
9ae3a8
@@ -1463,7 +1463,7 @@ static uint64_t vfio_generic_window_quirk_read(void *opaque,
9ae3a8
                                                hwaddr addr, unsigned size)
9ae3a8
 {
9ae3a8
     VFIOQuirk *quirk = opaque;
9ae3a8
-    VFIODevice *vdev = quirk->vdev;
9ae3a8
+    VFIOPCIDevice *vdev = quirk->vdev;
9ae3a8
     uint64_t data;
9ae3a8
 
9ae3a8
     if (vfio_flags_enabled(quirk->data.flags, quirk->data.read_flags) &&
9ae3a8
@@ -1496,7 +1496,7 @@ static void vfio_generic_window_quirk_write(void *opaque, hwaddr addr,
9ae3a8
                                             uint64_t data, unsigned size)
9ae3a8
 {
9ae3a8
     VFIOQuirk *quirk = opaque;
9ae3a8
-    VFIODevice *vdev = quirk->vdev;
9ae3a8
+    VFIOPCIDevice *vdev = quirk->vdev;
9ae3a8
 
9ae3a8
     if (ranges_overlap(addr, size,
9ae3a8
                        quirk->data.address_offset, quirk->data.address_size)) {
9ae3a8
@@ -1550,7 +1550,7 @@ static uint64_t vfio_generic_quirk_read(void *opaque,
9ae3a8
                                         hwaddr addr, unsigned size)
9ae3a8
 {
9ae3a8
     VFIOQuirk *quirk = opaque;
9ae3a8
-    VFIODevice *vdev = quirk->vdev;
9ae3a8
+    VFIOPCIDevice *vdev = quirk->vdev;
9ae3a8
     hwaddr base = quirk->data.address_match & TARGET_PAGE_MASK;
9ae3a8
     hwaddr offset = quirk->data.address_match & ~TARGET_PAGE_MASK;
9ae3a8
     uint64_t data;
9ae3a8
@@ -1580,7 +1580,7 @@ static void vfio_generic_quirk_write(void *opaque, hwaddr addr,
9ae3a8
                                      uint64_t data, unsigned size)
9ae3a8
 {
9ae3a8
     VFIOQuirk *quirk = opaque;
9ae3a8
-    VFIODevice *vdev = quirk->vdev;
9ae3a8
+    VFIOPCIDevice *vdev = quirk->vdev;
9ae3a8
     hwaddr base = quirk->data.address_match & TARGET_PAGE_MASK;
9ae3a8
     hwaddr offset = quirk->data.address_match & ~TARGET_PAGE_MASK;
9ae3a8
 
9ae3a8
@@ -1625,7 +1625,7 @@ static uint64_t vfio_ati_3c3_quirk_read(void *opaque,
9ae3a8
                                         hwaddr addr, unsigned size)
9ae3a8
 {
9ae3a8
     VFIOQuirk *quirk = opaque;
9ae3a8
-    VFIODevice *vdev = quirk->vdev;
9ae3a8
+    VFIOPCIDevice *vdev = quirk->vdev;
9ae3a8
     uint64_t data = vfio_pci_read_config(&vdev->pdev,
9ae3a8
                                          PCI_BASE_ADDRESS_0 + (4 * 4) + 1,
9ae3a8
                                          size);
9ae3a8
@@ -1639,7 +1639,7 @@ static const MemoryRegionOps vfio_ati_3c3_quirk = {
9ae3a8
     .endianness = DEVICE_LITTLE_ENDIAN,
9ae3a8
 };
9ae3a8
 
9ae3a8
-static void vfio_vga_probe_ati_3c3_quirk(VFIODevice *vdev)
9ae3a8
+static void vfio_vga_probe_ati_3c3_quirk(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     PCIDevice *pdev = &vdev->pdev;
9ae3a8
     VFIOQuirk *quirk;
9ae3a8
@@ -1682,7 +1682,7 @@ static void vfio_vga_probe_ati_3c3_quirk(VFIODevice *vdev)
9ae3a8
  * that only read-only access is provided, but we drop writes when the window
9ae3a8
  * is enabled to config space nonetheless.
9ae3a8
  */
9ae3a8
-static void vfio_probe_ati_bar4_window_quirk(VFIODevice *vdev, int nr)
9ae3a8
+static void vfio_probe_ati_bar4_window_quirk(VFIOPCIDevice *vdev, int nr)
9ae3a8
 {
9ae3a8
     PCIDevice *pdev = &vdev->pdev;
9ae3a8
     VFIOQuirk *quirk;
9ae3a8
@@ -1718,7 +1718,7 @@ static void vfio_probe_ati_bar4_window_quirk(VFIODevice *vdev, int nr)
9ae3a8
 /*
9ae3a8
  * Trap the BAR2 MMIO window to config space as well.
9ae3a8
  */
9ae3a8
-static void vfio_probe_ati_bar2_4000_quirk(VFIODevice *vdev, int nr)
9ae3a8
+static void vfio_probe_ati_bar2_4000_quirk(VFIOPCIDevice *vdev, int nr)
9ae3a8
 {
9ae3a8
     PCIDevice *pdev = &vdev->pdev;
9ae3a8
     VFIOQuirk *quirk;
9ae3a8
@@ -1786,7 +1786,7 @@ static uint64_t vfio_nvidia_3d0_quirk_read(void *opaque,
9ae3a8
                                            hwaddr addr, unsigned size)
9ae3a8
 {
9ae3a8
     VFIOQuirk *quirk = opaque;
9ae3a8
-    VFIODevice *vdev = quirk->vdev;
9ae3a8
+    VFIOPCIDevice *vdev = quirk->vdev;
9ae3a8
     PCIDevice *pdev = &vdev->pdev;
9ae3a8
     uint64_t data = vfio_vga_read(&vdev->vga.region[QEMU_PCI_VGA_IO_HI],
9ae3a8
                                   addr + quirk->data.base_offset, size);
9ae3a8
@@ -1805,7 +1805,7 @@ static void vfio_nvidia_3d0_quirk_write(void *opaque, hwaddr addr,
9ae3a8
                                         uint64_t data, unsigned size)
9ae3a8
 {
9ae3a8
     VFIOQuirk *quirk = opaque;
9ae3a8
-    VFIODevice *vdev = quirk->vdev;
9ae3a8
+    VFIOPCIDevice *vdev = quirk->vdev;
9ae3a8
     PCIDevice *pdev = &vdev->pdev;
9ae3a8
 
9ae3a8
     switch (quirk->data.flags) {
9ae3a8
@@ -1852,7 +1852,7 @@ static const MemoryRegionOps vfio_nvidia_3d0_quirk = {
9ae3a8
     .endianness = DEVICE_LITTLE_ENDIAN,
9ae3a8
 };
9ae3a8
 
9ae3a8
-static void vfio_vga_probe_nvidia_3d0_quirk(VFIODevice *vdev)
9ae3a8
+static void vfio_vga_probe_nvidia_3d0_quirk(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     PCIDevice *pdev = &vdev->pdev;
9ae3a8
     VFIOQuirk *quirk;
9ae3a8
@@ -1944,7 +1944,7 @@ static const MemoryRegionOps vfio_nvidia_bar5_window_quirk = {
9ae3a8
     .endianness = DEVICE_LITTLE_ENDIAN,
9ae3a8
 };
9ae3a8
 
9ae3a8
-static void vfio_probe_nvidia_bar5_window_quirk(VFIODevice *vdev, int nr)
9ae3a8
+static void vfio_probe_nvidia_bar5_window_quirk(VFIOPCIDevice *vdev, int nr)
9ae3a8
 {
9ae3a8
     PCIDevice *pdev = &vdev->pdev;
9ae3a8
     VFIOQuirk *quirk;
9ae3a8
@@ -1984,7 +1984,7 @@ static void vfio_probe_nvidia_bar5_window_quirk(VFIODevice *vdev, int nr)
9ae3a8
  *
9ae3a8
  * Here's offset 0x88000...
9ae3a8
  */
9ae3a8
-static void vfio_probe_nvidia_bar0_88000_quirk(VFIODevice *vdev, int nr)
9ae3a8
+static void vfio_probe_nvidia_bar0_88000_quirk(VFIOPCIDevice *vdev, int nr)
9ae3a8
 {
9ae3a8
     PCIDevice *pdev = &vdev->pdev;
9ae3a8
     VFIOQuirk *quirk;
9ae3a8
@@ -2018,7 +2018,7 @@ static void vfio_probe_nvidia_bar0_88000_quirk(VFIODevice *vdev, int nr)
9ae3a8
 /*
9ae3a8
  * And here's the same for BAR0 offset 0x1800...
9ae3a8
  */
9ae3a8
-static void vfio_probe_nvidia_bar0_1800_quirk(VFIODevice *vdev, int nr)
9ae3a8
+static void vfio_probe_nvidia_bar0_1800_quirk(VFIOPCIDevice *vdev, int nr)
9ae3a8
 {
9ae3a8
     PCIDevice *pdev = &vdev->pdev;
9ae3a8
     VFIOQuirk *quirk;
9ae3a8
@@ -2062,13 +2062,13 @@ static void vfio_probe_nvidia_bar0_1800_quirk(VFIODevice *vdev, int nr)
9ae3a8
 /*
9ae3a8
  * Common quirk probe entry points.
9ae3a8
  */
9ae3a8
-static void vfio_vga_quirk_setup(VFIODevice *vdev)
9ae3a8
+static void vfio_vga_quirk_setup(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     vfio_vga_probe_ati_3c3_quirk(vdev);
9ae3a8
     vfio_vga_probe_nvidia_3d0_quirk(vdev);
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_vga_quirk_teardown(VFIODevice *vdev)
9ae3a8
+static void vfio_vga_quirk_teardown(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     int i;
9ae3a8
 
9ae3a8
@@ -2083,7 +2083,7 @@ static void vfio_vga_quirk_teardown(VFIODevice *vdev)
9ae3a8
     }
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_bar_quirk_setup(VFIODevice *vdev, int nr)
9ae3a8
+static void vfio_bar_quirk_setup(VFIOPCIDevice *vdev, int nr)
9ae3a8
 {
9ae3a8
     vfio_probe_ati_bar4_window_quirk(vdev, nr);
9ae3a8
     vfio_probe_ati_bar2_4000_quirk(vdev, nr);
9ae3a8
@@ -2092,7 +2092,7 @@ static void vfio_bar_quirk_setup(VFIODevice *vdev, int nr)
9ae3a8
     vfio_probe_nvidia_bar0_1800_quirk(vdev, nr);
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_bar_quirk_teardown(VFIODevice *vdev, int nr)
9ae3a8
+static void vfio_bar_quirk_teardown(VFIOPCIDevice *vdev, int nr)
9ae3a8
 {
9ae3a8
     VFIOBAR *bar = &vdev->bars[nr];
9ae3a8
 
9ae3a8
@@ -2110,7 +2110,7 @@ static void vfio_bar_quirk_teardown(VFIODevice *vdev, int nr)
9ae3a8
  */
9ae3a8
 static uint32_t vfio_pci_read_config(PCIDevice *pdev, uint32_t addr, int len)
9ae3a8
 {
9ae3a8
-    VFIODevice *vdev = DO_UPCAST(VFIODevice, pdev, pdev);
9ae3a8
+    VFIOPCIDevice *vdev = DO_UPCAST(VFIOPCIDevice, pdev, pdev);
9ae3a8
     uint32_t emu_bits = 0, emu_val = 0, phys_val = 0, val;
9ae3a8
 
9ae3a8
     memcpy(&emu_bits, vdev->emulated_config_bits + addr, len);
9ae3a8
@@ -2145,7 +2145,7 @@ static uint32_t vfio_pci_read_config(PCIDevice *pdev, uint32_t addr, int len)
9ae3a8
 static void vfio_pci_write_config(PCIDevice *pdev, uint32_t addr,
9ae3a8
                                   uint32_t val, int len)
9ae3a8
 {
9ae3a8
-    VFIODevice *vdev = DO_UPCAST(VFIODevice, pdev, pdev);
9ae3a8
+    VFIOPCIDevice *vdev = DO_UPCAST(VFIOPCIDevice, pdev, pdev);
9ae3a8
     uint32_t val_le = cpu_to_le32(val);
9ae3a8
 
9ae3a8
     DPRINTF("%s(%04x:%02x:%02x.%x, @0x%x, 0x%x, len=0x%x)\n", __func__,
9ae3a8
@@ -2365,7 +2365,7 @@ static void vfio_listener_release(VFIOContainer *container)
9ae3a8
 /*
9ae3a8
  * Interrupt setup
9ae3a8
  */
9ae3a8
-static void vfio_disable_interrupts(VFIODevice *vdev)
9ae3a8
+static void vfio_disable_interrupts(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     /*
9ae3a8
      * More complicated than it looks.  Disabling MSI/X transitions the
9ae3a8
@@ -2383,7 +2383,7 @@ static void vfio_disable_interrupts(VFIODevice *vdev)
9ae3a8
     }
9ae3a8
 }
9ae3a8
 
9ae3a8
-static int vfio_setup_msi(VFIODevice *vdev, int pos)
9ae3a8
+static int vfio_setup_msi(VFIOPCIDevice *vdev, int pos)
9ae3a8
 {
9ae3a8
     uint16_t ctrl;
9ae3a8
     bool msi_64bit, msi_maskbit;
9ae3a8
@@ -2423,7 +2423,7 @@ static int vfio_setup_msi(VFIODevice *vdev, int pos)
9ae3a8
  * need to first look for where the MSI-X table lives.  So we
9ae3a8
  * unfortunately split MSI-X setup across two functions.
9ae3a8
  */
9ae3a8
-static int vfio_early_setup_msix(VFIODevice *vdev)
9ae3a8
+static int vfio_early_setup_msix(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     uint8_t pos;
9ae3a8
     uint16_t ctrl;
9ae3a8
@@ -2496,7 +2496,7 @@ static int vfio_early_setup_msix(VFIODevice *vdev)
9ae3a8
     return 0;
9ae3a8
 }
9ae3a8
 
9ae3a8
-static int vfio_setup_msix(VFIODevice *vdev, int pos)
9ae3a8
+static int vfio_setup_msix(VFIOPCIDevice *vdev, int pos)
9ae3a8
 {
9ae3a8
     int ret;
9ae3a8
 
9ae3a8
@@ -2516,7 +2516,7 @@ static int vfio_setup_msix(VFIODevice *vdev, int pos)
9ae3a8
     return 0;
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_teardown_msi(VFIODevice *vdev)
9ae3a8
+static void vfio_teardown_msi(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     msi_uninit(&vdev->pdev);
9ae3a8
 
9ae3a8
@@ -2529,7 +2529,7 @@ static void vfio_teardown_msi(VFIODevice *vdev)
9ae3a8
 /*
9ae3a8
  * Resource setup
9ae3a8
  */
9ae3a8
-static void vfio_mmap_set_enabled(VFIODevice *vdev, bool enabled)
9ae3a8
+static void vfio_mmap_set_enabled(VFIOPCIDevice *vdev, bool enabled)
9ae3a8
 {
9ae3a8
     int i;
9ae3a8
 
9ae3a8
@@ -2547,7 +2547,7 @@ static void vfio_mmap_set_enabled(VFIODevice *vdev, bool enabled)
9ae3a8
     }
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_unmap_bar(VFIODevice *vdev, int nr)
9ae3a8
+static void vfio_unmap_bar(VFIOPCIDevice *vdev, int nr)
9ae3a8
 {
9ae3a8
     VFIOBAR *bar = &vdev->bars[nr];
9ae3a8
 
9ae3a8
@@ -2570,7 +2570,7 @@ static void vfio_unmap_bar(VFIODevice *vdev, int nr)
9ae3a8
     memory_region_destroy(&bar->mem);
9ae3a8
 }
9ae3a8
 
9ae3a8
-static int vfio_mmap_bar(VFIODevice *vdev, VFIOBAR *bar,
9ae3a8
+static int vfio_mmap_bar(VFIOPCIDevice *vdev, VFIOBAR *bar,
9ae3a8
                          MemoryRegion *mem, MemoryRegion *submem,
9ae3a8
                          void **map, size_t size, off_t offset,
9ae3a8
                          const char *name)
9ae3a8
@@ -2609,7 +2609,7 @@ empty_region:
9ae3a8
     return ret;
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_map_bar(VFIODevice *vdev, int nr)
9ae3a8
+static void vfio_map_bar(VFIOPCIDevice *vdev, int nr)
9ae3a8
 {
9ae3a8
     VFIOBAR *bar = &vdev->bars[nr];
9ae3a8
     uint64_t size = bar->size;
9ae3a8
@@ -2678,7 +2678,7 @@ static void vfio_map_bar(VFIODevice *vdev, int nr)
9ae3a8
     vfio_bar_quirk_setup(vdev, nr);
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_map_bars(VFIODevice *vdev)
9ae3a8
+static void vfio_map_bars(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     int i;
9ae3a8
 
9ae3a8
@@ -2710,7 +2710,7 @@ static void vfio_map_bars(VFIODevice *vdev)
9ae3a8
     }
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_unmap_bars(VFIODevice *vdev)
9ae3a8
+static void vfio_unmap_bars(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     int i;
9ae3a8
 
9ae3a8
@@ -2749,7 +2749,7 @@ static void vfio_set_word_bits(uint8_t *buf, uint16_t val, uint16_t mask)
9ae3a8
     pci_set_word(buf, (pci_get_word(buf) & ~mask) | val);
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_add_emulated_word(VFIODevice *vdev, int pos,
9ae3a8
+static void vfio_add_emulated_word(VFIOPCIDevice *vdev, int pos,
9ae3a8
                                    uint16_t val, uint16_t mask)
9ae3a8
 {
9ae3a8
     vfio_set_word_bits(vdev->pdev.config + pos, val, mask);
9ae3a8
@@ -2762,7 +2762,7 @@ static void vfio_set_long_bits(uint8_t *buf, uint32_t val, uint32_t mask)
9ae3a8
     pci_set_long(buf, (pci_get_long(buf) & ~mask) | val);
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_add_emulated_long(VFIODevice *vdev, int pos,
9ae3a8
+static void vfio_add_emulated_long(VFIOPCIDevice *vdev, int pos,
9ae3a8
                                    uint32_t val, uint32_t mask)
9ae3a8
 {
9ae3a8
     vfio_set_long_bits(vdev->pdev.config + pos, val, mask);
9ae3a8
@@ -2770,7 +2770,7 @@ static void vfio_add_emulated_long(VFIODevice *vdev, int pos,
9ae3a8
     vfio_set_long_bits(vdev->emulated_config_bits + pos, mask, mask);
9ae3a8
 }
9ae3a8
 
9ae3a8
-static int vfio_setup_pcie_cap(VFIODevice *vdev, int pos, uint8_t size)
9ae3a8
+static int vfio_setup_pcie_cap(VFIOPCIDevice *vdev, int pos, uint8_t size)
9ae3a8
 {
9ae3a8
     uint16_t flags;
9ae3a8
     uint8_t type;
9ae3a8
@@ -2862,7 +2862,7 @@ static int vfio_setup_pcie_cap(VFIODevice *vdev, int pos, uint8_t size)
9ae3a8
     return pos;
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_check_pcie_flr(VFIODevice *vdev, uint8_t pos)
9ae3a8
+static void vfio_check_pcie_flr(VFIOPCIDevice *vdev, uint8_t pos)
9ae3a8
 {
9ae3a8
     uint32_t cap = pci_get_long(vdev->pdev.config + pos + PCI_EXP_DEVCAP);
9ae3a8
 
9ae3a8
@@ -2874,7 +2874,7 @@ static void vfio_check_pcie_flr(VFIODevice *vdev, uint8_t pos)
9ae3a8
     }
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_check_pm_reset(VFIODevice *vdev, uint8_t pos)
9ae3a8
+static void vfio_check_pm_reset(VFIOPCIDevice *vdev, uint8_t pos)
9ae3a8
 {
9ae3a8
     uint16_t csr = pci_get_word(vdev->pdev.config + pos + PCI_PM_CTRL);
9ae3a8
 
9ae3a8
@@ -2886,7 +2886,7 @@ static void vfio_check_pm_reset(VFIODevice *vdev, uint8_t pos)
9ae3a8
     }
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_check_af_flr(VFIODevice *vdev, uint8_t pos)
9ae3a8
+static void vfio_check_af_flr(VFIOPCIDevice *vdev, uint8_t pos)
9ae3a8
 {
9ae3a8
     uint8_t cap = pci_get_byte(vdev->pdev.config + pos + PCI_AF_CAP);
9ae3a8
 
9ae3a8
@@ -2898,7 +2898,7 @@ static void vfio_check_af_flr(VFIODevice *vdev, uint8_t pos)
9ae3a8
     }
9ae3a8
 }
9ae3a8
 
9ae3a8
-static int vfio_add_std_cap(VFIODevice *vdev, uint8_t pos)
9ae3a8
+static int vfio_add_std_cap(VFIOPCIDevice *vdev, uint8_t pos)
9ae3a8
 {
9ae3a8
     PCIDevice *pdev = &vdev->pdev;
9ae3a8
     uint8_t cap_id, next, size;
9ae3a8
@@ -2973,7 +2973,7 @@ static int vfio_add_std_cap(VFIODevice *vdev, uint8_t pos)
9ae3a8
     return 0;
9ae3a8
 }
9ae3a8
 
9ae3a8
-static int vfio_add_capabilities(VFIODevice *vdev)
9ae3a8
+static int vfio_add_capabilities(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     PCIDevice *pdev = &vdev->pdev;
9ae3a8
 
9ae3a8
@@ -2985,7 +2985,7 @@ static int vfio_add_capabilities(VFIODevice *vdev)
9ae3a8
     return vfio_add_std_cap(vdev, pdev->config[PCI_CAPABILITY_LIST]);
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_pci_pre_reset(VFIODevice *vdev)
9ae3a8
+static void vfio_pci_pre_reset(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     PCIDevice *pdev = &vdev->pdev;
9ae3a8
     uint16_t cmd;
9ae3a8
@@ -3022,7 +3022,7 @@ static void vfio_pci_pre_reset(VFIODevice *vdev)
9ae3a8
     vfio_pci_write_config(pdev, PCI_COMMAND, cmd, 2);
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_pci_post_reset(VFIODevice *vdev)
9ae3a8
+static void vfio_pci_post_reset(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     vfio_enable_intx(vdev);
9ae3a8
 }
9ae3a8
@@ -3034,7 +3034,7 @@ static bool vfio_pci_host_match(PCIHostDeviceAddress *host1,
9ae3a8
             host1->slot == host2->slot && host1->function == host2->function);
9ae3a8
 }
9ae3a8
 
9ae3a8
-static int vfio_pci_hot_reset(VFIODevice *vdev, bool single)
9ae3a8
+static int vfio_pci_hot_reset(VFIOPCIDevice *vdev, bool single)
9ae3a8
 {
9ae3a8
     VFIOGroup *group;
9ae3a8
     struct vfio_pci_hot_reset_info *info;
9ae3a8
@@ -3084,7 +3084,7 @@ static int vfio_pci_hot_reset(VFIODevice *vdev, bool single)
9ae3a8
     /* Verify that we have all the groups required */
9ae3a8
     for (i = 0; i < info->count; i++) {
9ae3a8
         PCIHostDeviceAddress host;
9ae3a8
-        VFIODevice *tmp;
9ae3a8
+        VFIOPCIDevice *tmp;
9ae3a8
 
9ae3a8
         host.domain = devices[i].segment;
9ae3a8
         host.bus = devices[i].bus;
9ae3a8
@@ -3176,7 +3176,7 @@ out:
9ae3a8
     /* Re-enable INTx on affected devices */
9ae3a8
     for (i = 0; i < info->count; i++) {
9ae3a8
         PCIHostDeviceAddress host;
9ae3a8
-        VFIODevice *tmp;
9ae3a8
+        VFIOPCIDevice *tmp;
9ae3a8
 
9ae3a8
         host.domain = devices[i].segment;
9ae3a8
         host.bus = devices[i].bus;
9ae3a8
@@ -3226,12 +3226,12 @@ out_single:
9ae3a8
  * _one() will only do a hot reset for the one in-use devices case, calling
9ae3a8
  * _multi() will do nothing if a _one() would have been sufficient.
9ae3a8
  */
9ae3a8
-static int vfio_pci_hot_reset_one(VFIODevice *vdev)
9ae3a8
+static int vfio_pci_hot_reset_one(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     return vfio_pci_hot_reset(vdev, true);
9ae3a8
 }
9ae3a8
 
9ae3a8
-static int vfio_pci_hot_reset_multi(VFIODevice *vdev)
9ae3a8
+static int vfio_pci_hot_reset_multi(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     return vfio_pci_hot_reset(vdev, false);
9ae3a8
 }
9ae3a8
@@ -3239,7 +3239,7 @@ static int vfio_pci_hot_reset_multi(VFIODevice *vdev)
9ae3a8
 static void vfio_pci_reset_handler(void *opaque)
9ae3a8
 {
9ae3a8
     VFIOGroup *group;
9ae3a8
-    VFIODevice *vdev;
9ae3a8
+    VFIOPCIDevice *vdev;
9ae3a8
 
9ae3a8
     QLIST_FOREACH(group, &group_list, next) {
9ae3a8
         QLIST_FOREACH(vdev, &group->device_list, next) {
9ae3a8
@@ -3499,7 +3499,8 @@ static void vfio_put_group(VFIOGroup *group)
9ae3a8
     }
9ae3a8
 }
9ae3a8
 
9ae3a8
-static int vfio_get_device(VFIOGroup *group, const char *name, VFIODevice *vdev)
9ae3a8
+static int vfio_get_device(VFIOGroup *group, const char *name,
9ae3a8
+                           VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     struct vfio_device_info dev_info = { .argsz = sizeof(dev_info) };
9ae3a8
     struct vfio_region_info reg_info = { .argsz = sizeof(reg_info) };
9ae3a8
@@ -3654,7 +3655,7 @@ error:
9ae3a8
     return ret;
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_put_device(VFIODevice *vdev)
9ae3a8
+static void vfio_put_device(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     QLIST_REMOVE(vdev, next);
9ae3a8
     vdev->group = NULL;
9ae3a8
@@ -3668,7 +3669,7 @@ static void vfio_put_device(VFIODevice *vdev)
9ae3a8
 
9ae3a8
 static void vfio_err_notifier_handler(void *opaque)
9ae3a8
 {
9ae3a8
-    VFIODevice *vdev = opaque;
9ae3a8
+    VFIOPCIDevice *vdev = opaque;
9ae3a8
 
9ae3a8
     if (!event_notifier_test_and_clear(&vdev->err_notifier)) {
9ae3a8
         return;
9ae3a8
@@ -3697,7 +3698,7 @@ static void vfio_err_notifier_handler(void *opaque)
9ae3a8
  * and continue after disabling error recovery support for the
9ae3a8
  * device.
9ae3a8
  */
9ae3a8
-static void vfio_register_err_notifier(VFIODevice *vdev)
9ae3a8
+static void vfio_register_err_notifier(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     int ret;
9ae3a8
     int argsz;
9ae3a8
@@ -3738,7 +3739,7 @@ static void vfio_register_err_notifier(VFIODevice *vdev)
9ae3a8
     g_free(irq_set);
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_unregister_err_notifier(VFIODevice *vdev)
9ae3a8
+static void vfio_unregister_err_notifier(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     int argsz;
9ae3a8
     struct vfio_irq_set *irq_set;
9ae3a8
@@ -3773,7 +3774,7 @@ static void vfio_unregister_err_notifier(VFIODevice *vdev)
9ae3a8
 
9ae3a8
 static void vfio_req_notifier_handler(void *opaque)
9ae3a8
 {
9ae3a8
-    VFIODevice *vdev = opaque;
9ae3a8
+    VFIOPCIDevice *vdev = opaque;
9ae3a8
 
9ae3a8
     if (!event_notifier_test_and_clear(&vdev->req_notifier)) {
9ae3a8
         return;
9ae3a8
@@ -3782,7 +3783,7 @@ static void vfio_req_notifier_handler(void *opaque)
9ae3a8
     qdev_unplug(&vdev->pdev.qdev, NULL);
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_register_req_notifier(VFIODevice *vdev)
9ae3a8
+static void vfio_register_req_notifier(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     struct vfio_irq_info irq_info = { .argsz = sizeof(irq_info),
9ae3a8
                                       .index = VFIO_PCI_REQ_IRQ_INDEX };
9ae3a8
@@ -3829,7 +3830,7 @@ static void vfio_register_req_notifier(VFIODevice *vdev)
9ae3a8
     g_free(irq_set);
9ae3a8
 }
9ae3a8
 
9ae3a8
-static void vfio_unregister_req_notifier(VFIODevice *vdev)
9ae3a8
+static void vfio_unregister_req_notifier(VFIOPCIDevice *vdev)
9ae3a8
 {
9ae3a8
     int argsz;
9ae3a8
     struct vfio_irq_set *irq_set;
9ae3a8
@@ -3864,7 +3865,7 @@ static void vfio_unregister_req_notifier(VFIODevice *vdev)
9ae3a8
 
9ae3a8
 static int vfio_initfn(PCIDevice *pdev)
9ae3a8
 {
9ae3a8
-    VFIODevice *pvdev, *vdev = DO_UPCAST(VFIODevice, pdev, pdev);
9ae3a8
+    VFIOPCIDevice *pvdev, *vdev = DO_UPCAST(VFIOPCIDevice, pdev, pdev);
9ae3a8
     VFIOGroup *group;
9ae3a8
     char path[PATH_MAX], iommu_group_path[PATH_MAX], *group_name;
9ae3a8
     ssize_t len;
9ae3a8
@@ -4031,7 +4032,7 @@ out_put:
9ae3a8
 
9ae3a8
 static void vfio_exitfn(PCIDevice *pdev)
9ae3a8
 {
9ae3a8
-    VFIODevice *vdev = DO_UPCAST(VFIODevice, pdev, pdev);
9ae3a8
+    VFIOPCIDevice *vdev = DO_UPCAST(VFIOPCIDevice, pdev, pdev);
9ae3a8
     VFIOGroup *group = vdev->group;
9ae3a8
 
9ae3a8
     vfio_unregister_req_notifier(vdev);
9ae3a8
@@ -4052,7 +4053,7 @@ static void vfio_exitfn(PCIDevice *pdev)
9ae3a8
 static void vfio_pci_reset(DeviceState *dev)
9ae3a8
 {
9ae3a8
     PCIDevice *pdev = DO_UPCAST(PCIDevice, qdev, dev);
9ae3a8
-    VFIODevice *vdev = DO_UPCAST(VFIODevice, pdev, pdev);
9ae3a8
+    VFIOPCIDevice *vdev = DO_UPCAST(VFIOPCIDevice, pdev, pdev);
9ae3a8
 
9ae3a8
     DPRINTF("%s(%04x:%02x:%02x.%x)\n", __func__, vdev->host.domain,
9ae3a8
             vdev->host.bus, vdev->host.slot, vdev->host.function);
9ae3a8
@@ -4084,18 +4085,18 @@ post_reset:
9ae3a8
 }
9ae3a8
 
9ae3a8
 static Property vfio_pci_dev_properties[] = {
9ae3a8
-    DEFINE_PROP_PCI_HOST_DEVADDR("host", VFIODevice, host),
9ae3a8
-    DEFINE_PROP_UINT32("x-intx-mmap-timeout-ms", VFIODevice,
9ae3a8
+    DEFINE_PROP_PCI_HOST_DEVADDR("host", VFIOPCIDevice, host),
9ae3a8
+    DEFINE_PROP_UINT32("x-intx-mmap-timeout-ms", VFIOPCIDevice,
9ae3a8
                        intx.mmap_timeout, 1100),
9ae3a8
-    DEFINE_PROP_BIT("x-vga", VFIODevice, features,
9ae3a8
+    DEFINE_PROP_BIT("x-vga", VFIOPCIDevice, features,
9ae3a8
                     VFIO_FEATURE_ENABLE_VGA_BIT, false),
9ae3a8
-    DEFINE_PROP_BIT("x-req", VFIODevice, features,
9ae3a8
+    DEFINE_PROP_BIT("x-req", VFIOPCIDevice, features,
9ae3a8
                     VFIO_FEATURE_ENABLE_REQ_BIT, true),
9ae3a8
-    DEFINE_PROP_INT32("bootindex", VFIODevice, bootindex, -1),
9ae3a8
+    DEFINE_PROP_INT32("bootindex", VFIOPCIDevice, bootindex, -1),
9ae3a8
     /*
9ae3a8
      * TODO - support passed fds... is this necessary?
9ae3a8
-     * DEFINE_PROP_STRING("vfiofd", VFIODevice, vfiofd_name),
9ae3a8
-     * DEFINE_PROP_STRING("vfiogroupfd, VFIODevice, vfiogroupfd_name),
9ae3a8
+     * DEFINE_PROP_STRING("vfiofd", VFIOPCIDevice, vfiofd_name),
9ae3a8
+     * DEFINE_PROP_STRING("vfiogroupfd, VFIOPCIDevice, vfiogroupfd_name),
9ae3a8
      */
9ae3a8
     DEFINE_PROP_END_OF_LIST(),
9ae3a8
 };
9ae3a8
@@ -4125,7 +4126,7 @@ static void vfio_pci_dev_class_init(ObjectClass *klass, void *data)
9ae3a8
 static const TypeInfo vfio_pci_dev_info = {
9ae3a8
     .name = "vfio-pci",
9ae3a8
     .parent = TYPE_PCI_DEVICE,
9ae3a8
-    .instance_size = sizeof(VFIODevice),
9ae3a8
+    .instance_size = sizeof(VFIOPCIDevice),
9ae3a8
     .class_init = vfio_pci_dev_class_init,
9ae3a8
 };
9ae3a8
 
9ae3a8
-- 
9ae3a8
1.8.3.1
9ae3a8