Returns the current host bus with ACPI PCI hot-plug support: q35 or i440fx.
Signed-off-by: Julia Suvorova <jus...@redhat.com> --- hw/i386/acpi-build.h | 2 ++ hw/acpi/pcihp.c | 13 +++++++++++++ hw/i386/acpi-build.c | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/hw/i386/acpi-build.h b/hw/i386/acpi-build.h index 74df5fc612..0696b4e48d 100644 --- a/hw/i386/acpi-build.h +++ b/hw/i386/acpi-build.h @@ -7,4 +7,6 @@ extern const struct AcpiGenericAddress x86_nvdimm_acpi_dsmio; void acpi_setup(void); +Object *acpi_get_i386_pci_host(void); + #endif diff --git a/hw/acpi/pcihp.c b/hw/acpi/pcihp.c index d42906ea19..3d4ee3af72 100644 --- a/hw/acpi/pcihp.c +++ b/hw/acpi/pcihp.c @@ -33,10 +33,12 @@ #include "hw/acpi/acpi.h" #include "exec/address-spaces.h" #include "hw/pci/pci_bus.h" +#include "hw/pci/pci_host.h" #include "migration/vmstate.h" #include "qapi/error.h" #include "qom/qom-qobject.h" #include "trace.h" +#include "hw/i386/acpi-build.h" #define ACPI_PCIHP_ADDR 0xae00 #define ACPI_PCIHP_SIZE 0x0014 @@ -86,6 +88,17 @@ static void *acpi_set_bsel(PCIBus *bus, void *opaque) return bsel_alloc; } +static PCIBus *find_host(void) +{ + Object *obj = acpi_get_i386_pci_host(); + + if (obj) { + return PCI_HOST_BRIDGE(obj)->bus; + } + + return NULL; +} + static void acpi_set_pci_info(void) { static bool bsel_is_set; diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 900f786d08..11c598f955 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -270,7 +270,7 @@ static void acpi_get_misc_info(AcpiMiscInfo *info) * Because of the PXB hosts we cannot simply query TYPE_PCI_HOST_BRIDGE. * On i386 arch we only have two pci hosts, so we can look only for them. */ -static Object *acpi_get_i386_pci_host(void) +Object *acpi_get_i386_pci_host(void) { PCIHostState *host; -- 2.25.4