|  | /* | 
|  | * QEMU ACPI PCI bridge | 
|  | * | 
|  | * Copyright (c) 2023 Red Hat, Inc. | 
|  | * | 
|  | * Author: | 
|  | *   Igor Mammedov <imammedo@redhat.com> | 
|  | * | 
|  | * SPDX-License-Identifier: GPL-2.0-or-later | 
|  | * | 
|  | * This work is licensed under the terms of the GNU GPL, version 2 or later. | 
|  | * See the COPYING file in the top-level directory. | 
|  | */ | 
|  |  | 
|  | #include "qemu/osdep.h" | 
|  | #include "hw/acpi/pci.h" | 
|  | #include "hw/pci/pci_bridge.h" | 
|  | #include "hw/acpi/pcihp.h" | 
|  |  | 
|  | void build_pci_bridge_aml(AcpiDevAmlIf *adev, Aml *scope) | 
|  | { | 
|  | PCIBridge *br = PCI_BRIDGE(adev); | 
|  |  | 
|  | if (!DEVICE(br)->hotplugged) { | 
|  | PCIBus *sec_bus = pci_bridge_get_sec_bus(br); | 
|  |  | 
|  | build_append_pci_bus_devices(scope, sec_bus); | 
|  |  | 
|  | /* | 
|  | * generate hotplug slots descriptors if | 
|  | * bridge has ACPI PCI hotplug attached, | 
|  | */ | 
|  | if (object_property_find(OBJECT(sec_bus), ACPI_PCIHP_PROP_BSEL)) { | 
|  | build_append_pcihp_slots(scope, sec_bus); | 
|  | } | 
|  | } | 
|  | } |