mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-11-05 20:35:44 +00:00
pci: Add INTERFACE_PCIE_DEVICE to all PCIe devices
Change all devices that set is_express=1 to implement INTERFACE_PCIE_DEVICE. Cc: Keith Busch <keith.busch@intel.com> Cc: Kevin Wolf <kwolf@redhat.com> Cc: Max Reitz <mreitz@redhat.com> Cc: Dmitry Fleytman <dmitry@daynix.com> Cc: Jason Wang <jasowang@redhat.com> Cc: "Michael S. Tsirkin" <mst@redhat.com> Cc: Marcel Apfelbaum <marcel@redhat.com> Cc: Paul Burton <paul.burton@imgtec.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Hannes Reinecke <hare@suse.com> Cc: qemu-block@nongnu.org Reviewed-by: Alistair Francis <alistair.francis@xilinx.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Reviewed-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>
This commit is contained in:
parent
a5fa336f11
commit
71d787677d
8 changed files with 31 additions and 0 deletions
|
@ -1110,6 +1110,10 @@ static const TypeInfo nvme_info = {
|
|||
.instance_size = sizeof(NvmeCtrl),
|
||||
.class_init = nvme_class_init,
|
||||
.instance_init = nvme_instance_init,
|
||||
.interfaces = (InterfaceInfo[]) {
|
||||
{ INTERFACE_PCIE_DEVICE },
|
||||
{ }
|
||||
},
|
||||
};
|
||||
|
||||
static void nvme_register_types(void)
|
||||
|
|
|
@ -710,6 +710,10 @@ static const TypeInfo e1000e_info = {
|
|||
.instance_size = sizeof(E1000EState),
|
||||
.class_init = e1000e_class_init,
|
||||
.instance_init = e1000e_instance_init,
|
||||
.interfaces = (InterfaceInfo[]) {
|
||||
{ INTERFACE_PCIE_DEVICE },
|
||||
{ }
|
||||
},
|
||||
};
|
||||
|
||||
static void e1000e_register_types(void)
|
||||
|
|
|
@ -192,6 +192,7 @@ static const TypeInfo pcie_pci_bridge_info = {
|
|||
.class_init = pcie_pci_bridge_class_init,
|
||||
.interfaces = (InterfaceInfo[]) {
|
||||
{ TYPE_HOTPLUG_HANDLER },
|
||||
{ INTERFACE_PCIE_DEVICE },
|
||||
{ },
|
||||
}
|
||||
};
|
||||
|
|
|
@ -161,6 +161,10 @@ static const TypeInfo rp_info = {
|
|||
.class_init = rp_class_init,
|
||||
.abstract = true,
|
||||
.class_size = sizeof(PCIERootPortClass),
|
||||
.interfaces = (InterfaceInfo[]) {
|
||||
{ INTERFACE_PCIE_DEVICE },
|
||||
{ }
|
||||
},
|
||||
};
|
||||
|
||||
static void rp_register_types(void)
|
||||
|
|
|
@ -196,6 +196,10 @@ static const TypeInfo xio3130_downstream_info = {
|
|||
.name = "xio3130-downstream",
|
||||
.parent = TYPE_PCIE_SLOT,
|
||||
.class_init = xio3130_downstream_class_init,
|
||||
.interfaces = (InterfaceInfo[]) {
|
||||
{ INTERFACE_PCIE_DEVICE },
|
||||
{ }
|
||||
},
|
||||
};
|
||||
|
||||
static void xio3130_downstream_register_types(void)
|
||||
|
|
|
@ -166,6 +166,10 @@ static const TypeInfo xio3130_upstream_info = {
|
|||
.name = "x3130-upstream",
|
||||
.parent = TYPE_PCIE_PORT,
|
||||
.class_init = xio3130_upstream_class_init,
|
||||
.interfaces = (InterfaceInfo[]) {
|
||||
{ INTERFACE_PCIE_DEVICE },
|
||||
{ }
|
||||
},
|
||||
};
|
||||
|
||||
static void xio3130_upstream_register_types(void)
|
||||
|
|
|
@ -317,6 +317,10 @@ static const TypeInfo xilinx_pcie_root_info = {
|
|||
.parent = TYPE_PCI_BRIDGE,
|
||||
.instance_size = sizeof(XilinxPCIERoot),
|
||||
.class_init = xilinx_pcie_root_class_init,
|
||||
.interfaces = (InterfaceInfo[]) {
|
||||
{ INTERFACE_PCIE_DEVICE },
|
||||
{ }
|
||||
},
|
||||
};
|
||||
|
||||
static void xilinx_pcie_register(void)
|
||||
|
|
|
@ -2451,6 +2451,7 @@ typedef struct MegasasInfo {
|
|||
int osts;
|
||||
const VMStateDescription *vmsd;
|
||||
Property *props;
|
||||
InterfaceInfo *interfaces;
|
||||
} MegasasInfo;
|
||||
|
||||
static struct MegasasInfo megasas_devices[] = {
|
||||
|
@ -2480,6 +2481,10 @@ static struct MegasasInfo megasas_devices[] = {
|
|||
.is_express = true,
|
||||
.vmsd = &vmstate_megasas_gen2,
|
||||
.props = megasas_properties_gen2,
|
||||
.interfaces = (InterfaceInfo[]) {
|
||||
{ INTERFACE_PCIE_DEVICE },
|
||||
{ }
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -2531,6 +2536,7 @@ static void megasas_register_types(void)
|
|||
type_info.parent = TYPE_MEGASAS_BASE;
|
||||
type_info.class_data = (void *)info;
|
||||
type_info.class_init = megasas_class_init;
|
||||
type_info.interfaces = info->interfaces;
|
||||
|
||||
type_register(&type_info);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue