浏览代码

pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices

Add INTERFACE_CONVENTIONAL_PCI_DEVICE to all direct subtypes of
TYPE_PCI_DEVICE, except:

1) The ones that already have INTERFACE_PCIE_DEVICE set:

* base-xhci
* e1000e
* nvme
* pvscsi
* vfio-pci
* virtio-pci
* vmxnet3

2) base-pci-bridge

Not all PCI bridges are Conventional PCI devices, so
INTERFACE_CONVENTIONAL_PCI_DEVICE is added only to the subtypes
that are actually Conventional PCI:

* dec-21154-p2p-bridge
* i82801b11-bridge
* pbm-bridge
* pci-bridge

The direct subtypes of base-pci-bridge not touched by this patch
are:

* xilinx-pcie-root: Already marked as PCIe-only.
* pcie-pci-bridge: Already marked as PCIe-only.
* pcie-port: all non-abstract subtypes of pcie-port are already
  marked as PCIe-only devices.

3) megasas-base

Not all megasas devices are Conventional PCI devices, so the
interface names are added to the subclasses registered by
megasas_register_types(), according to information in the
megasas_devices[] array.

"megasas-gen2" already implements INTERFACE_PCIE_DEVICE, so add
INTERFACE_CONVENTIONAL_PCI_DEVICE only to "megasas".

Acked-by: Alberto Garcia <berto@igalia.com>
Acked-by: John Snow <jsnow@redhat.com>
Acked-by: Anthony PERARD <anthony.perard@citrix.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Acked-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Eduardo Habkost 8 年之前
父节点
当前提交
fd3b02c889
共有 64 个文件被更改,包括 296 次插入0 次删除
  1. 1 0
      hw/acpi/piix4.c
  2. 4 0
      hw/audio/ac97.c
  3. 4 0
      hw/audio/es1370.c
  4. 4 0
      hw/audio/intel-hda.c
  5. 12 0
      hw/char/serial-pci.c
  6. 4 0
      hw/display/cirrus_vga.c
  7. 4 0
      hw/display/qxl.c
  8. 4 0
      hw/display/sm501.c
  9. 4 0
      hw/display/vga-pci.c
  10. 4 0
      hw/display/vmware_vga.c
  11. 4 0
      hw/i2c/smbus_ich9.c
  12. 4 0
      hw/i386/amd_iommu.c
  13. 4 0
      hw/i386/kvm/pci-assign.c
  14. 4 0
      hw/i386/pc_piix.c
  15. 4 0
      hw/i386/xen/xen_platform.c
  16. 4 0
      hw/i386/xen/xen_pvdevice.c
  17. 4 0
      hw/ide/ich.c
  18. 4 0
      hw/ide/pci.c
  19. 4 0
      hw/ipack/tpci200.c
  20. 4 0
      hw/isa/i82378.c
  21. 1 0
      hw/isa/lpc_ich9.c
  22. 4 0
      hw/isa/piix4.c
  23. 16 0
      hw/isa/vt82c686.c
  24. 4 0
      hw/mips/gt64xxx_pci.c
  25. 5 0
      hw/misc/edu.c
  26. 4 0
      hw/misc/ivshmem.c
  27. 4 0
      hw/misc/macio/macio.c
  28. 4 0
      hw/misc/pci-testdev.c
  29. 4 0
      hw/net/e1000.c
  30. 4 0
      hw/net/eepro100.c
  31. 4 0
      hw/net/ne2000.c
  32. 4 0
      hw/net/pcnet-pci.c
  33. 4 0
      hw/net/rocker/rocker.c
  34. 4 0
      hw/net/rtl8139.c
  35. 4 0
      hw/net/sungem.c
  36. 4 0
      hw/net/sunhme.c
  37. 8 0
      hw/pci-bridge/dec.c
  38. 4 0
      hw/pci-bridge/i82801b11.c
  39. 1 0
      hw/pci-bridge/pci_bridge_dev.c
  40. 8 0
      hw/pci-bridge/pci_expander_bridge.c
  41. 8 0
      hw/pci-host/apb.c
  42. 4 0
      hw/pci-host/bonito.c
  43. 4 0
      hw/pci-host/gpex.c
  44. 4 0
      hw/pci-host/grackle.c
  45. 8 0
      hw/pci-host/piix.c
  46. 4 0
      hw/pci-host/ppce500.c
  47. 4 0
      hw/pci-host/prep.c
  48. 4 0
      hw/pci-host/q35.c
  49. 16 0
      hw/pci-host/uninorth.c
  50. 4 0
      hw/pci-host/versatile.c
  51. 4 0
      hw/ppc/ppc4xx_pci.c
  52. 4 0
      hw/scsi/esp-pci.c
  53. 4 0
      hw/scsi/lsi53c895a.c
  54. 4 0
      hw/scsi/megasas.c
  55. 4 0
      hw/scsi/mptsas.c
  56. 4 0
      hw/sd/sdhci.c
  57. 4 0
      hw/sh4/sh_pci.c
  58. 4 0
      hw/sparc64/sun4u.c
  59. 4 0
      hw/usb/hcd-ehci-pci.c
  60. 4 0
      hw/usb/hcd-ohci.c
  61. 4 0
      hw/usb/hcd-uhci.c
  62. 4 0
      hw/vfio/pci-quirks.c
  63. 4 0
      hw/watchdog/wdt_i6300esb.c
  64. 4 0
      hw/xen/xen_pt.c

+ 1 - 0
hw/acpi/piix4.c

@@ -718,6 +718,7 @@ static const TypeInfo piix4_pm_info = {
     .interfaces = (InterfaceInfo[]) {
     .interfaces = (InterfaceInfo[]) {
         { TYPE_HOTPLUG_HANDLER },
         { TYPE_HOTPLUG_HANDLER },
         { TYPE_ACPI_DEVICE_IF },
         { TYPE_ACPI_DEVICE_IF },
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
         { }
         { }
     }
     }
 };
 };

+ 4 - 0
hw/audio/ac97.c

@@ -1431,6 +1431,10 @@ static const TypeInfo ac97_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof (AC97LinkState),
     .instance_size = sizeof (AC97LinkState),
     .class_init    = ac97_class_init,
     .class_init    = ac97_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void ac97_register_types (void)
 static void ac97_register_types (void)

+ 4 - 0
hw/audio/es1370.c

@@ -1082,6 +1082,10 @@ static const TypeInfo es1370_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof (ES1370State),
     .instance_size = sizeof (ES1370State),
     .class_init    = es1370_class_init,
     .class_init    = es1370_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void es1370_register_types (void)
 static void es1370_register_types (void)

+ 4 - 0
hw/audio/intel-hda.c

@@ -1263,6 +1263,10 @@ static const TypeInfo intel_hda_info = {
     .instance_size = sizeof(IntelHDAState),
     .instance_size = sizeof(IntelHDAState),
     .class_init    = intel_hda_class_init,
     .class_init    = intel_hda_class_init,
     .abstract      = true,
     .abstract      = true,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static const TypeInfo intel_hda_info_ich6 = {
 static const TypeInfo intel_hda_info_ich6 = {

+ 12 - 0
hw/char/serial-pci.c

@@ -250,6 +250,10 @@ static const TypeInfo serial_pci_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCISerialState),
     .instance_size = sizeof(PCISerialState),
     .class_init    = serial_pci_class_initfn,
     .class_init    = serial_pci_class_initfn,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static const TypeInfo multi_2x_serial_pci_info = {
 static const TypeInfo multi_2x_serial_pci_info = {
@@ -257,6 +261,10 @@ static const TypeInfo multi_2x_serial_pci_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCIMultiSerialState),
     .instance_size = sizeof(PCIMultiSerialState),
     .class_init    = multi_2x_serial_pci_class_initfn,
     .class_init    = multi_2x_serial_pci_class_initfn,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static const TypeInfo multi_4x_serial_pci_info = {
 static const TypeInfo multi_4x_serial_pci_info = {
@@ -264,6 +272,10 @@ static const TypeInfo multi_4x_serial_pci_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCIMultiSerialState),
     .instance_size = sizeof(PCIMultiSerialState),
     .class_init    = multi_4x_serial_pci_class_initfn,
     .class_init    = multi_4x_serial_pci_class_initfn,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void serial_pci_register_types(void)
 static void serial_pci_register_types(void)

+ 4 - 0
hw/display/cirrus_vga.c

@@ -3162,6 +3162,10 @@ static const TypeInfo cirrus_vga_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCICirrusVGAState),
     .instance_size = sizeof(PCICirrusVGAState),
     .class_init    = cirrus_vga_class_init,
     .class_init    = cirrus_vga_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void cirrus_vga_register_types(void)
 static void cirrus_vga_register_types(void)

+ 4 - 0
hw/display/qxl.c

@@ -2432,6 +2432,10 @@ static const TypeInfo qxl_pci_type_info = {
     .instance_size = sizeof(PCIQXLDevice),
     .instance_size = sizeof(PCIQXLDevice),
     .abstract = true,
     .abstract = true,
     .class_init = qxl_pci_class_init,
     .class_init = qxl_pci_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void qxl_primary_class_init(ObjectClass *klass, void *data)
 static void qxl_primary_class_init(ObjectClass *klass, void *data)

+ 4 - 0
hw/display/sm501.c

@@ -1843,6 +1843,10 @@ static const TypeInfo sm501_pci_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(SM501PCIState),
     .instance_size = sizeof(SM501PCIState),
     .class_init    = sm501_pci_class_init,
     .class_init    = sm501_pci_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void sm501_register_types(void)
 static void sm501_register_types(void)

+ 4 - 0
hw/display/vga-pci.c

@@ -338,6 +338,10 @@ static const TypeInfo vga_pci_type_info = {
     .instance_size = sizeof(PCIVGAState),
     .instance_size = sizeof(PCIVGAState),
     .abstract = true,
     .abstract = true,
     .class_init = vga_pci_class_init,
     .class_init = vga_pci_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void vga_class_init(ObjectClass *klass, void *data)
 static void vga_class_init(ObjectClass *klass, void *data)

+ 4 - 0
hw/display/vmware_vga.c

@@ -1350,6 +1350,10 @@ static const TypeInfo vmsvga_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(struct pci_vmsvga_state_s),
     .instance_size = sizeof(struct pci_vmsvga_state_s),
     .class_init    = vmsvga_class_init,
     .class_init    = vmsvga_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void vmsvga_register_types(void)
 static void vmsvga_register_types(void)

+ 4 - 0
hw/i2c/smbus_ich9.c

@@ -119,6 +119,10 @@ static const TypeInfo ich9_smb_info = {
     .parent = TYPE_PCI_DEVICE,
     .parent = TYPE_PCI_DEVICE,
     .instance_size = sizeof(ICH9SMBState),
     .instance_size = sizeof(ICH9SMBState),
     .class_init = ich9_smb_class_init,
     .class_init = ich9_smb_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void ich9_smb_register(void)
 static void ich9_smb_register(void)

+ 4 - 0
hw/i386/amd_iommu.c

@@ -1227,6 +1227,10 @@ static const TypeInfo amdviPCI = {
     .name = "AMDVI-PCI",
     .name = "AMDVI-PCI",
     .parent = TYPE_PCI_DEVICE,
     .parent = TYPE_PCI_DEVICE,
     .instance_size = sizeof(AMDVIPCIState),
     .instance_size = sizeof(AMDVIPCIState),
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void amdvi_iommu_memory_region_class_init(ObjectClass *klass, void *data)
 static void amdvi_iommu_memory_region_class_init(ObjectClass *klass, void *data)

+ 4 - 0
hw/i386/kvm/pci-assign.c

@@ -1864,6 +1864,10 @@ static const TypeInfo assign_info = {
     .instance_size      = sizeof(AssignedDevice),
     .instance_size      = sizeof(AssignedDevice),
     .class_init         = assign_class_init,
     .class_init         = assign_class_init,
     .instance_init      = assigned_dev_instance_init,
     .instance_init      = assigned_dev_instance_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void assign_register_types(void)
 static void assign_register_types(void)

+ 4 - 0
hw/i386/pc_piix.c

@@ -1055,6 +1055,10 @@ static TypeInfo isa_bridge_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCIDevice),
     .instance_size = sizeof(PCIDevice),
     .class_init = isa_bridge_class_init,
     .class_init = isa_bridge_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void pt_graphics_register_types(void)
 static void pt_graphics_register_types(void)

+ 4 - 0
hw/i386/xen/xen_platform.c

@@ -517,6 +517,10 @@ static const TypeInfo xen_platform_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCIXenPlatformState),
     .instance_size = sizeof(PCIXenPlatformState),
     .class_init    = xen_platform_class_init,
     .class_init    = xen_platform_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void xen_platform_register_types(void)
 static void xen_platform_register_types(void)

+ 4 - 0
hw/i386/xen/xen_pvdevice.c

@@ -127,6 +127,10 @@ static const TypeInfo xen_pv_type_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(XenPVDevice),
     .instance_size = sizeof(XenPVDevice),
     .class_init    = xen_pv_class_init,
     .class_init    = xen_pv_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void xen_pv_register_types(void)
 static void xen_pv_register_types(void)

+ 4 - 0
hw/ide/ich.c

@@ -184,6 +184,10 @@ static const TypeInfo ich_ahci_info = {
     .instance_size = sizeof(AHCIPCIState),
     .instance_size = sizeof(AHCIPCIState),
     .instance_init = pci_ich9_ahci_init,
     .instance_init = pci_ich9_ahci_init,
     .class_init    = ich_ahci_class_init,
     .class_init    = ich_ahci_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void ich_ahci_register_types(void)
 static void ich_ahci_register_types(void)

+ 4 - 0
hw/ide/pci.c

@@ -453,6 +453,10 @@ static const TypeInfo pci_ide_type_info = {
     .parent = TYPE_PCI_DEVICE,
     .parent = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCIIDEState),
     .instance_size = sizeof(PCIIDEState),
     .abstract = true,
     .abstract = true,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void pci_ide_register_types(void)
 static void pci_ide_register_types(void)

+ 4 - 0
hw/ipack/tpci200.c

@@ -646,6 +646,10 @@ static const TypeInfo tpci200_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(TPCI200State),
     .instance_size = sizeof(TPCI200State),
     .class_init    = tpci200_class_init,
     .class_init    = tpci200_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void tpci200_register_types(void)
 static void tpci200_register_types(void)

+ 4 - 0
hw/isa/i82378.c

@@ -138,6 +138,10 @@ static const TypeInfo i82378_type_info = {
     .instance_size = sizeof(I82378State),
     .instance_size = sizeof(I82378State),
     .instance_init = i82378_init,
     .instance_init = i82378_init,
     .class_init = i82378_class_init,
     .class_init = i82378_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void i82378_register_types(void)
 static void i82378_register_types(void)

+ 1 - 0
hw/isa/lpc_ich9.c

@@ -823,6 +823,7 @@ static const TypeInfo ich9_lpc_info = {
     .interfaces = (InterfaceInfo[]) {
     .interfaces = (InterfaceInfo[]) {
         { TYPE_HOTPLUG_HANDLER },
         { TYPE_HOTPLUG_HANDLER },
         { TYPE_ACPI_DEVICE_IF },
         { TYPE_ACPI_DEVICE_IF },
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
         { }
         { }
     }
     }
 };
 };

+ 4 - 0
hw/isa/piix4.c

@@ -132,6 +132,10 @@ static const TypeInfo piix4_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PIIX4State),
     .instance_size = sizeof(PIIX4State),
     .class_init    = piix4_class_init,
     .class_init    = piix4_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void piix4_register_types(void)
 static void piix4_register_types(void)

+ 16 - 0
hw/isa/vt82c686.c

@@ -301,6 +301,10 @@ static const TypeInfo via_ac97_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(VT686AC97State),
     .instance_size = sizeof(VT686AC97State),
     .class_init    = via_ac97_class_init,
     .class_init    = via_ac97_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void vt82c686b_mc97_realize(PCIDevice *dev, Error **errp)
 static void vt82c686b_mc97_realize(PCIDevice *dev, Error **errp)
@@ -341,6 +345,10 @@ static const TypeInfo via_mc97_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(VT686MC97State),
     .instance_size = sizeof(VT686MC97State),
     .class_init    = via_mc97_class_init,
     .class_init    = via_mc97_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 /* vt82c686 pm init */
 /* vt82c686 pm init */
@@ -419,6 +427,10 @@ static const TypeInfo via_pm_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(VT686PMState),
     .instance_size = sizeof(VT686PMState),
     .class_init    = via_pm_class_init,
     .class_init    = via_pm_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static const VMStateDescription vmstate_via = {
 static const VMStateDescription vmstate_via = {
@@ -502,6 +514,10 @@ static const TypeInfo via_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(VT82C686BState),
     .instance_size = sizeof(VT82C686BState),
     .class_init    = via_class_init,
     .class_init    = via_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void vt82c686b_register_types(void)
 static void vt82c686b_register_types(void)

+ 4 - 0
hw/mips/gt64xxx_pci.c

@@ -1232,6 +1232,10 @@ static const TypeInfo gt64120_pci_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCIDevice),
     .instance_size = sizeof(PCIDevice),
     .class_init    = gt64120_pci_class_init,
     .class_init    = gt64120_pci_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void gt64120_class_init(ObjectClass *klass, void *data)
 static void gt64120_class_init(ObjectClass *klass, void *data)

+ 5 - 0
hw/misc/edu.c

@@ -408,12 +408,17 @@ static void edu_class_init(ObjectClass *class, void *data)
 
 
 static void pci_edu_register_types(void)
 static void pci_edu_register_types(void)
 {
 {
+    static InterfaceInfo interfaces[] = {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    };
     static const TypeInfo edu_info = {
     static const TypeInfo edu_info = {
         .name          = "edu",
         .name          = "edu",
         .parent        = TYPE_PCI_DEVICE,
         .parent        = TYPE_PCI_DEVICE,
         .instance_size = sizeof(EduState),
         .instance_size = sizeof(EduState),
         .instance_init = edu_instance_init,
         .instance_init = edu_instance_init,
         .class_init    = edu_class_init,
         .class_init    = edu_class_init,
+        .interfaces = interfaces,
     };
     };
 
 
     type_register_static(&edu_info);
     type_register_static(&edu_info);

+ 4 - 0
hw/misc/ivshmem.c

@@ -1010,6 +1010,10 @@ static const TypeInfo ivshmem_common_info = {
     .instance_size = sizeof(IVShmemState),
     .instance_size = sizeof(IVShmemState),
     .abstract      = true,
     .abstract      = true,
     .class_init    = ivshmem_common_class_init,
     .class_init    = ivshmem_common_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static const VMStateDescription ivshmem_plain_vmsd = {
 static const VMStateDescription ivshmem_plain_vmsd = {

+ 4 - 0
hw/misc/macio/macio.c

@@ -426,6 +426,10 @@ static const TypeInfo macio_type_info = {
     .instance_init = macio_instance_init,
     .instance_init = macio_instance_init,
     .abstract      = true,
     .abstract      = true,
     .class_init    = macio_class_init,
     .class_init    = macio_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void macio_register_types(void)
 static void macio_register_types(void)

+ 4 - 0
hw/misc/pci-testdev.c

@@ -326,6 +326,10 @@ static const TypeInfo pci_testdev_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCITestDevState),
     .instance_size = sizeof(PCITestDevState),
     .class_init    = pci_testdev_class_init,
     .class_init    = pci_testdev_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void pci_testdev_register_types(void)
 static void pci_testdev_register_types(void)

+ 4 - 0
hw/net/e1000.c

@@ -1687,6 +1687,10 @@ static const TypeInfo e1000_base_info = {
     .instance_init = e1000_instance_init,
     .instance_init = e1000_instance_init,
     .class_size    = sizeof(E1000BaseClass),
     .class_size    = sizeof(E1000BaseClass),
     .abstract      = true,
     .abstract      = true,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static const E1000Info e1000_devices[] = {
 static const E1000Info e1000_devices[] = {

+ 4 - 0
hw/net/eepro100.c

@@ -2116,6 +2116,10 @@ static void eepro100_register_types(void)
         type_info.class_init = eepro100_class_init;
         type_info.class_init = eepro100_class_init;
         type_info.instance_size = sizeof(EEPRO100State);
         type_info.instance_size = sizeof(EEPRO100State);
         type_info.instance_init = eepro100_instance_init;
         type_info.instance_init = eepro100_instance_init;
+        type_info.interfaces = (InterfaceInfo[]) {
+            { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+            { },
+        };
 
 
         type_register(&type_info);
         type_register(&type_info);
     }
     }

+ 4 - 0
hw/net/ne2000.c

@@ -786,6 +786,10 @@ static const TypeInfo ne2000_info = {
     .instance_size = sizeof(PCINE2000State),
     .instance_size = sizeof(PCINE2000State),
     .class_init    = ne2000_class_init,
     .class_init    = ne2000_class_init,
     .instance_init = ne2000_instance_init,
     .instance_init = ne2000_instance_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void ne2000_register_types(void)
 static void ne2000_register_types(void)

+ 4 - 0
hw/net/pcnet-pci.c

@@ -365,6 +365,10 @@ static const TypeInfo pcnet_info = {
     .instance_size = sizeof(PCIPCNetState),
     .instance_size = sizeof(PCIPCNetState),
     .class_init    = pcnet_class_init,
     .class_init    = pcnet_class_init,
     .instance_init = pcnet_instance_init,
     .instance_init = pcnet_instance_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void pci_pcnet_register_types(void)
 static void pci_pcnet_register_types(void)

+ 4 - 0
hw/net/rocker/rocker.c

@@ -1525,6 +1525,10 @@ static const TypeInfo rocker_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(Rocker),
     .instance_size = sizeof(Rocker),
     .class_init    = rocker_class_init,
     .class_init    = rocker_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void rocker_register_types(void)
 static void rocker_register_types(void)

+ 4 - 0
hw/net/rtl8139.c

@@ -3444,6 +3444,10 @@ static const TypeInfo rtl8139_info = {
     .instance_size = sizeof(RTL8139State),
     .instance_size = sizeof(RTL8139State),
     .class_init    = rtl8139_class_init,
     .class_init    = rtl8139_class_init,
     .instance_init = rtl8139_instance_init,
     .instance_init = rtl8139_instance_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void rtl8139_register_types(void)
 static void rtl8139_register_types(void)

+ 4 - 0
hw/net/sungem.c

@@ -1437,6 +1437,10 @@ static const TypeInfo sungem_info = {
     .instance_size = sizeof(SunGEMState),
     .instance_size = sizeof(SunGEMState),
     .class_init    = sungem_class_init,
     .class_init    = sungem_class_init,
     .instance_init = sungem_instance_init,
     .instance_init = sungem_instance_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { }
+    }
 };
 };
 
 
 static void sungem_register_types(void)
 static void sungem_register_types(void)

+ 4 - 0
hw/net/sunhme.c

@@ -968,6 +968,10 @@ static const TypeInfo sunhme_info = {
     .class_init    = sunhme_class_init,
     .class_init    = sunhme_class_init,
     .instance_size = sizeof(SunHMEState),
     .instance_size = sizeof(SunHMEState),
     .instance_init = sunhme_instance_init,
     .instance_init = sunhme_instance_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { }
+    }
 };
 };
 
 
 static void sunhme_register_types(void)
 static void sunhme_register_types(void)

+ 8 - 0
hw/pci-bridge/dec.c

@@ -79,6 +79,10 @@ static const TypeInfo dec_21154_pci_bridge_info = {
     .parent        = TYPE_PCI_BRIDGE,
     .parent        = TYPE_PCI_BRIDGE,
     .instance_size = sizeof(PCIBridge),
     .instance_size = sizeof(PCIBridge),
     .class_init    = dec_21154_pci_bridge_class_init,
     .class_init    = dec_21154_pci_bridge_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 PCIBus *pci_dec_21154_init(PCIBus *parent_bus, int devfn)
 PCIBus *pci_dec_21154_init(PCIBus *parent_bus, int devfn)
@@ -138,6 +142,10 @@ static const TypeInfo dec_21154_pci_host_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCIDevice),
     .instance_size = sizeof(PCIDevice),
     .class_init    = dec_21154_pci_host_class_init,
     .class_init    = dec_21154_pci_host_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void pci_dec_21154_device_class_init(ObjectClass *klass, void *data)
 static void pci_dec_21154_device_class_init(ObjectClass *klass, void *data)

+ 4 - 0
hw/pci-bridge/i82801b11.c

@@ -106,6 +106,10 @@ static const TypeInfo i82801b11_bridge_info = {
     .parent        = TYPE_PCI_BRIDGE,
     .parent        = TYPE_PCI_BRIDGE,
     .instance_size = sizeof(I82801b11Bridge),
     .instance_size = sizeof(I82801b11Bridge),
     .class_init    = i82801b11_bridge_class_init,
     .class_init    = i82801b11_bridge_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void d2pbr_register(void)
 static void d2pbr_register(void)

+ 1 - 0
hw/pci-bridge/pci_bridge_dev.c

@@ -238,6 +238,7 @@ static const TypeInfo pci_bridge_dev_info = {
     .instance_finalize = pci_bridge_dev_instance_finalize,
     .instance_finalize = pci_bridge_dev_instance_finalize,
     .interfaces = (InterfaceInfo[]) {
     .interfaces = (InterfaceInfo[]) {
         { TYPE_HOTPLUG_HANDLER },
         { TYPE_HOTPLUG_HANDLER },
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
         { }
         { }
     }
     }
 };
 };

+ 8 - 0
hw/pci-bridge/pci_expander_bridge.c

@@ -316,6 +316,10 @@ static const TypeInfo pxb_dev_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PXBDev),
     .instance_size = sizeof(PXBDev),
     .class_init    = pxb_dev_class_init,
     .class_init    = pxb_dev_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void pxb_pcie_dev_realize(PCIDevice *dev, Error **errp)
 static void pxb_pcie_dev_realize(PCIDevice *dev, Error **errp)
@@ -350,6 +354,10 @@ static const TypeInfo pxb_pcie_dev_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PXBDev),
     .instance_size = sizeof(PXBDev),
     .class_init    = pxb_pcie_dev_class_init,
     .class_init    = pxb_pcie_dev_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void pxb_register_types(void)
 static void pxb_register_types(void)

+ 8 - 0
hw/pci-host/apb.c

@@ -836,6 +836,10 @@ static const TypeInfo pbm_pci_host_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCIDevice),
     .instance_size = sizeof(PCIDevice),
     .class_init    = pbm_pci_host_class_init,
     .class_init    = pbm_pci_host_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void pbm_host_class_init(ObjectClass *klass, void *data)
 static void pbm_host_class_init(ObjectClass *klass, void *data)
@@ -883,6 +887,10 @@ static const TypeInfo pbm_pci_bridge_info = {
     .parent        = TYPE_PCI_BRIDGE,
     .parent        = TYPE_PCI_BRIDGE,
     .class_init    = pbm_pci_bridge_class_init,
     .class_init    = pbm_pci_bridge_class_init,
     .instance_size = sizeof(PBMPCIBridge),
     .instance_size = sizeof(PBMPCIBridge),
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void pbm_iommu_memory_region_class_init(ObjectClass *klass, void *data)
 static void pbm_iommu_memory_region_class_init(ObjectClass *klass, void *data)

+ 4 - 0
hw/pci-host/bonito.c

@@ -833,6 +833,10 @@ static const TypeInfo bonito_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCIBonitoState),
     .instance_size = sizeof(PCIBonitoState),
     .class_init    = bonito_class_init,
     .class_init    = bonito_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void bonito_pcihost_class_init(ObjectClass *klass, void *data)
 static void bonito_pcihost_class_init(ObjectClass *klass, void *data)

+ 4 - 0
hw/pci-host/gpex.c

@@ -166,6 +166,10 @@ static const TypeInfo gpex_root_info = {
     .parent = TYPE_PCI_DEVICE,
     .parent = TYPE_PCI_DEVICE,
     .instance_size = sizeof(GPEXRootState),
     .instance_size = sizeof(GPEXRootState),
     .class_init = gpex_root_class_init,
     .class_init = gpex_root_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void gpex_register(void)
 static void gpex_register(void)

+ 4 - 0
hw/pci-host/grackle.c

@@ -142,6 +142,10 @@ static const TypeInfo grackle_pci_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCIDevice),
     .instance_size = sizeof(PCIDevice),
     .class_init = grackle_pci_class_init,
     .class_init = grackle_pci_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void pci_grackle_class_init(ObjectClass *klass, void *data)
 static void pci_grackle_class_init(ObjectClass *klass, void *data)

+ 8 - 0
hw/pci-host/piix.c

@@ -696,6 +696,10 @@ static const TypeInfo piix3_pci_type_info = {
     .instance_size = sizeof(PIIX3State),
     .instance_size = sizeof(PIIX3State),
     .abstract = true,
     .abstract = true,
     .class_init = pci_piix3_class_init,
     .class_init = pci_piix3_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void piix3_class_init(ObjectClass *klass, void *data)
 static void piix3_class_init(ObjectClass *klass, void *data)
@@ -750,6 +754,10 @@ static const TypeInfo i440fx_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCII440FXState),
     .instance_size = sizeof(PCII440FXState),
     .class_init    = i440fx_class_init,
     .class_init    = i440fx_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 /* IGD Passthrough Host Bridge. */
 /* IGD Passthrough Host Bridge. */

+ 4 - 0
hw/pci-host/ppce500.c

@@ -516,6 +516,10 @@ static const TypeInfo e500_host_bridge_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PPCE500PCIBridgeState),
     .instance_size = sizeof(PPCE500PCIBridgeState),
     .class_init    = e500_host_bridge_class_init,
     .class_init    = e500_host_bridge_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static Property pcihost_properties[] = {
 static Property pcihost_properties[] = {

+ 4 - 0
hw/pci-host/prep.c

@@ -372,6 +372,10 @@ static const TypeInfo raven_info = {
     .parent = TYPE_PCI_DEVICE,
     .parent = TYPE_PCI_DEVICE,
     .instance_size = sizeof(RavenPCIState),
     .instance_size = sizeof(RavenPCIState),
     .class_init = raven_class_init,
     .class_init = raven_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static Property raven_pcihost_properties[] = {
 static Property raven_pcihost_properties[] = {

+ 4 - 0
hw/pci-host/q35.c

@@ -591,6 +591,10 @@ static const TypeInfo mch_info = {
     .parent = TYPE_PCI_DEVICE,
     .parent = TYPE_PCI_DEVICE,
     .instance_size = sizeof(MCHPCIState),
     .instance_size = sizeof(MCHPCIState),
     .class_init = mch_class_init,
     .class_init = mch_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void q35_register(void)
 static void q35_register(void)

+ 16 - 0
hw/pci-host/uninorth.c

@@ -374,6 +374,10 @@ static const TypeInfo unin_main_pci_host_info = {
     .parent = TYPE_PCI_DEVICE,
     .parent = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCIDevice),
     .instance_size = sizeof(PCIDevice),
     .class_init = unin_main_pci_host_class_init,
     .class_init = unin_main_pci_host_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void u3_agp_pci_host_class_init(ObjectClass *klass, void *data)
 static void u3_agp_pci_host_class_init(ObjectClass *klass, void *data)
@@ -398,6 +402,10 @@ static const TypeInfo u3_agp_pci_host_info = {
     .parent = TYPE_PCI_DEVICE,
     .parent = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCIDevice),
     .instance_size = sizeof(PCIDevice),
     .class_init = u3_agp_pci_host_class_init,
     .class_init = u3_agp_pci_host_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void unin_agp_pci_host_class_init(ObjectClass *klass, void *data)
 static void unin_agp_pci_host_class_init(ObjectClass *klass, void *data)
@@ -422,6 +430,10 @@ static const TypeInfo unin_agp_pci_host_info = {
     .parent = TYPE_PCI_DEVICE,
     .parent = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCIDevice),
     .instance_size = sizeof(PCIDevice),
     .class_init = unin_agp_pci_host_class_init,
     .class_init = unin_agp_pci_host_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void unin_internal_pci_host_class_init(ObjectClass *klass, void *data)
 static void unin_internal_pci_host_class_init(ObjectClass *klass, void *data)
@@ -446,6 +458,10 @@ static const TypeInfo unin_internal_pci_host_info = {
     .parent = TYPE_PCI_DEVICE,
     .parent = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCIDevice),
     .instance_size = sizeof(PCIDevice),
     .class_init = unin_internal_pci_host_class_init,
     .class_init = unin_internal_pci_host_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void pci_unin_main_class_init(ObjectClass *klass, void *data)
 static void pci_unin_main_class_init(ObjectClass *klass, void *data)

+ 4 - 0
hw/pci-host/versatile.c

@@ -487,6 +487,10 @@ static const TypeInfo versatile_pci_host_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCIDevice),
     .instance_size = sizeof(PCIDevice),
     .class_init    = versatile_pci_host_class_init,
     .class_init    = versatile_pci_host_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static Property pci_vpb_properties[] = {
 static Property pci_vpb_properties[] = {

+ 4 - 0
hw/ppc/ppc4xx_pci.c

@@ -359,6 +359,10 @@ static const TypeInfo ppc4xx_host_bridge_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCIDevice),
     .instance_size = sizeof(PCIDevice),
     .class_init    = ppc4xx_host_bridge_class_init,
     .class_init    = ppc4xx_host_bridge_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void ppc4xx_pcihost_class_init(ObjectClass *klass, void *data)
 static void ppc4xx_pcihost_class_init(ObjectClass *klass, void *data)

+ 4 - 0
hw/scsi/esp-pci.c

@@ -398,6 +398,10 @@ static const TypeInfo esp_pci_info = {
     .parent = TYPE_PCI_DEVICE,
     .parent = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCIESPState),
     .instance_size = sizeof(PCIESPState),
     .class_init = esp_pci_class_init,
     .class_init = esp_pci_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 typedef struct {
 typedef struct {

+ 4 - 0
hw/scsi/lsi53c895a.c

@@ -2246,6 +2246,10 @@ static const TypeInfo lsi_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(LSIState),
     .instance_size = sizeof(LSIState),
     .class_init    = lsi_class_init,
     .class_init    = lsi_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void lsi53c810_class_init(ObjectClass *klass, void *data)
 static void lsi53c810_class_init(ObjectClass *klass, void *data)

+ 4 - 0
hw/scsi/megasas.c

@@ -2468,6 +2468,10 @@ static struct MegasasInfo megasas_devices[] = {
         .is_express = false,
         .is_express = false,
         .vmsd = &vmstate_megasas_gen1,
         .vmsd = &vmstate_megasas_gen1,
         .props = megasas_properties_gen1,
         .props = megasas_properties_gen1,
+        .interfaces = (InterfaceInfo[]) {
+            { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+            { },
+        },
     },{
     },{
         .name = TYPE_MEGASAS_GEN2,
         .name = TYPE_MEGASAS_GEN2,
         .desc = "LSI MegaRAID SAS 2108",
         .desc = "LSI MegaRAID SAS 2108",

+ 4 - 0
hw/scsi/mptsas.c

@@ -1439,6 +1439,10 @@ static const TypeInfo mptsas_info = {
     .parent = TYPE_PCI_DEVICE,
     .parent = TYPE_PCI_DEVICE,
     .instance_size = sizeof(MPTSASState),
     .instance_size = sizeof(MPTSASState),
     .class_init = mptsas1068_class_init,
     .class_init = mptsas1068_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void mptsas_register_types(void)
 static void mptsas_register_types(void)

+ 4 - 0
hw/sd/sdhci.c

@@ -1315,6 +1315,10 @@ static const TypeInfo sdhci_pci_info = {
     .parent = TYPE_PCI_DEVICE,
     .parent = TYPE_PCI_DEVICE,
     .instance_size = sizeof(SDHCIState),
     .instance_size = sizeof(SDHCIState),
     .class_init = sdhci_pci_class_init,
     .class_init = sdhci_pci_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static Property sdhci_sysbus_properties[] = {
 static Property sdhci_sysbus_properties[] = {

+ 4 - 0
hw/sh4/sh_pci.c

@@ -179,6 +179,10 @@ static const TypeInfo sh_pci_host_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(PCIDevice),
     .instance_size = sizeof(PCIDevice),
     .class_init    = sh_pci_host_class_init,
     .class_init    = sh_pci_host_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void sh_pci_device_class_init(ObjectClass *klass, void *data)
 static void sh_pci_device_class_init(ObjectClass *klass, void *data)

+ 4 - 0
hw/sparc64/sun4u.c

@@ -275,6 +275,10 @@ static const TypeInfo ebus_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(EbusState),
     .instance_size = sizeof(EbusState),
     .class_init    = ebus_class_init,
     .class_init    = ebus_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 #define TYPE_OPENPROM "openprom"
 #define TYPE_OPENPROM "openprom"

+ 4 - 0
hw/usb/hcd-ehci-pci.c

@@ -170,6 +170,10 @@ static const TypeInfo ehci_pci_type_info = {
     .instance_finalize = usb_ehci_pci_finalize,
     .instance_finalize = usb_ehci_pci_finalize,
     .abstract = true,
     .abstract = true,
     .class_init = ehci_class_init,
     .class_init = ehci_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void ehci_data_class_init(ObjectClass *klass, void *data)
 static void ehci_data_class_init(ObjectClass *klass, void *data)

+ 4 - 0
hw/usb/hcd-ohci.c

@@ -2146,6 +2146,10 @@ static const TypeInfo ohci_pci_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(OHCIPCIState),
     .instance_size = sizeof(OHCIPCIState),
     .class_init    = ohci_pci_class_init,
     .class_init    = ohci_pci_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static Property ohci_sysbus_properties[] = {
 static Property ohci_sysbus_properties[] = {

+ 4 - 0
hw/usb/hcd-uhci.c

@@ -1323,6 +1323,10 @@ static const TypeInfo uhci_pci_type_info = {
     .class_size    = sizeof(UHCIPCIDeviceClass),
     .class_size    = sizeof(UHCIPCIDeviceClass),
     .abstract = true,
     .abstract = true,
     .class_init = uhci_class_init,
     .class_init = uhci_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void uhci_data_class_init(ObjectClass *klass, void *data)
 static void uhci_data_class_init(ObjectClass *klass, void *data)

+ 4 - 0
hw/vfio/pci-quirks.c

@@ -1198,6 +1198,10 @@ static TypeInfo vfio_pci_igd_lpc_bridge_info = {
     .name = "vfio-pci-igd-lpc-bridge",
     .name = "vfio-pci-igd-lpc-bridge",
     .parent = TYPE_PCI_DEVICE,
     .parent = TYPE_PCI_DEVICE,
     .class_init = vfio_pci_igd_lpc_bridge_class_init,
     .class_init = vfio_pci_igd_lpc_bridge_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void vfio_pci_igd_register_types(void)
 static void vfio_pci_igd_register_types(void)

+ 4 - 0
hw/watchdog/wdt_i6300esb.c

@@ -463,6 +463,10 @@ static const TypeInfo i6300esb_info = {
     .parent        = TYPE_PCI_DEVICE,
     .parent        = TYPE_PCI_DEVICE,
     .instance_size = sizeof(I6300State),
     .instance_size = sizeof(I6300State),
     .class_init    = i6300esb_class_init,
     .class_init    = i6300esb_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void i6300esb_register_types(void)
 static void i6300esb_register_types(void)

+ 4 - 0
hw/xen/xen_pt.c

@@ -964,6 +964,10 @@ static const TypeInfo xen_pci_passthrough_info = {
     .instance_size = sizeof(XenPCIPassthroughState),
     .instance_size = sizeof(XenPCIPassthroughState),
     .instance_finalize = xen_pci_passthrough_finalize,
     .instance_finalize = xen_pci_passthrough_finalize,
     .class_init = xen_pci_passthrough_class_init,
     .class_init = xen_pci_passthrough_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { INTERFACE_CONVENTIONAL_PCI_DEVICE },
+        { },
+    },
 };
 };
 
 
 static void xen_pci_passthrough_register_types(void)
 static void xen_pci_passthrough_register_types(void)