148cefd94SWei Yang /* 248cefd94SWei Yang * Support for generating PCI related ACPI tables and passing them to Guests 348cefd94SWei Yang * 448cefd94SWei Yang * Copyright (C) 2006 Fabrice Bellard 548cefd94SWei Yang * Copyright (C) 2008-2010 Kevin O'Connor <kevin@koconnor.net> 648cefd94SWei Yang * Copyright (C) 2013-2019 Red Hat Inc 748cefd94SWei Yang * Copyright (C) 2019 Intel Corporation 848cefd94SWei Yang * 948cefd94SWei Yang * Author: Wei Yang <richardw.yang@linux.intel.com> 1048cefd94SWei Yang * Author: Michael S. Tsirkin <mst@redhat.com> 1148cefd94SWei Yang * 1248cefd94SWei Yang * This program is free software; you can redistribute it and/or modify 1348cefd94SWei Yang * it under the terms of the GNU General Public License as published by 1448cefd94SWei Yang * the Free Software Foundation; either version 2 of the License, or 1548cefd94SWei Yang * (at your option) any later version. 1648cefd94SWei Yang 1748cefd94SWei Yang * This program is distributed in the hope that it will be useful, 1848cefd94SWei Yang * but WITHOUT ANY WARRANTY; without even the implied warranty of 1948cefd94SWei Yang * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 2048cefd94SWei Yang * GNU General Public License for more details. 2148cefd94SWei Yang 2248cefd94SWei Yang * You should have received a copy of the GNU General Public License along 2348cefd94SWei Yang * with this program; if not, see <http://www.gnu.org/licenses/>. 2448cefd94SWei Yang */ 25ec150c7eSMarkus Armbruster 2648cefd94SWei Yang #ifndef HW_ACPI_PCI_H 2748cefd94SWei Yang #define HW_ACPI_PCI_H 2848cefd94SWei Yang 29ec150c7eSMarkus Armbruster #include "hw/acpi/bios-linker-loader.h" 306c36ec46SIgor Mammedov #include "hw/acpi/acpi_aml_interface.h" 31ec150c7eSMarkus Armbruster 3248cefd94SWei Yang typedef struct AcpiMcfgInfo { 3348cefd94SWei Yang uint64_t base; 3448cefd94SWei Yang uint32_t size; 3548cefd94SWei Yang } AcpiMcfgInfo; 3648cefd94SWei Yang 37602b4582SMarian Postevca void build_mcfg(GArray *table_data, BIOSLinker *linker, AcpiMcfgInfo *info, 38602b4582SMarian Postevca const char *oem_id, const char *oem_table_id); 39b7f23f62SIgor Mammedov Aml *aml_pci_device_dsm(void); 406c36ec46SIgor Mammedov 416c36ec46SIgor Mammedov void build_append_pci_bus_devices(Aml *parent_scope, PCIBus *bus); 426c36ec46SIgor Mammedov void build_pci_bridge_aml(AcpiDevAmlIf *adev, Aml *scope); 43f74e7822SJonathan Cameron 44*a82fe829SJonathan Cameron void build_srat_generic_affinity_structures(GArray *table_data); 45f74e7822SJonathan Cameron 4648cefd94SWei Yang #endif 47