NOTE to maintainer: please update test data (ACPI blobs) in test cases changes from v3: * rename acpi_gen_utils.[ch] to acpi-build-utils.[ch] * copy GLP license block from acpi-build.c * assert on wrong Segcount earlier and extend condition to seg_count > 0 && seg_count <= 255 * drop "pc: acpi: decribe bridge device as not hotpluggable" * keep original logic of creating bridge devices as it was done in 133a2da48 "pc: acpi: generate AML only for PCI0 ..." * if bus is non hotpluggable, add child slots to bus as non hotpluggable as it was done in original code.
changes from v2: * codding style fixups * check for SegCount earlier * use hotpluggable device object instead of not hotpluggable for non present devices, and add it only when bus itself is hotpluggable changes from v1: * drop: [PATCH 7/9] acpi: replace opencoded notify codes with named values * use Michael's suggestion to improve build_append_nameseg() * drop long scope names and go back to recursion, but still significantly simplify building of PCI tree this series is an attempt to shave off a bunch of not directly related patches from already big dynamic AML series (although it's dependency for it) Tested: on XPsp3 to WS2012R2 and REHL6/7 guests. Git tree for testing: https://github.com/imammedo/qemu/commits/acpi_pci_gen_simplification_v4 previous revision: [PATCH v3 0/8] pc: acpi: various fixes and cleanups http://lists.gnu.org/archive/html/qemu-devel/2014-12/msg03057.html Igor Mammedov (7): pc: acpi: fix WindowsXP BSOD when memory hotplug is enabled pc: acpi-build: cleanup AcpiPmInfo initialization acpi: build_append_nameseg(): add padding if necessary acpi: move generic aml building helpers into dedictated file acpi: add build_append_namestring() helper acpi: drop min-bytes in build_package() pc: acpi-build: simplify PCI bus tree generation hw/acpi/Makefile.objs | 1 + hw/acpi/acpi-build-utils.c | 269 +++++++++++++++++++++ hw/i386/acpi-build.c | 464 +++++++++---------------------------- hw/i386/acpi-dsdt-cpu-hotplug.dsl | 1 + include/hw/acpi/acpi-build-utils.h | 23 ++ 5 files changed, 398 insertions(+), 360 deletions(-) create mode 100644 hw/acpi/acpi-build-utils.c create mode 100644 include/hw/acpi/acpi-build-utils.h -- 1.8.3.1