Example demonstrates use of QOM object for building AML objects tree and freeing it explicitly when requested.
Top level ACPI tables blob object is only partially switched to object model now but I hope it demostrates the point of absracting code and hiding parts of code that could be done without user intervention. Pathes 1/2/8 are just a convertion boiler plate which will go away on respin. Igor Mammedov (13): convert to passing AcpiAml by pointers make toplevel ACPI tables blob a pointer qom: add support for weak referenced object: aka UnownedObject acpi: make AcpiAml an OQM object acpi: use TYPE_AML_OBJECT inside of AML API acpi: use TYPE_AML_OBJECT for toplevel ACPI tables blob acpi: make toplevel ACPI tables blob a dedicated object i386: acpi: hack not yet converted tables calls to deal with table_data being a pointer acpi: add aml_blob() helper i386: acpi: add DSDT table using AML API acpi: acpi_add_table() to common cross target file acpi: prepare for API internal collection of RSDT entries i386: acpi: mark SSDT as RSDT entry so API would add entry to RSDT automatically hw/acpi/acpi-build-utils.c | 537 +++++++++++++++++++++---------------- hw/i386/acpi-build.c | 388 +++++++++++++-------------- include/hw/acpi/acpi-build-utils.h | 119 +++++--- include/qom/object.h | 20 ++ qom/object.c | 20 +- 5 files changed, 620 insertions(+), 464 deletions(-) -- 1.8.3.1