qemu-spoof: route ACPI table header identity through the spoof module acpi_table_begin(): OEM id / OEM table id / creator id now come from spoof_acpi_*(); build_fadt(): blank the "QEMU" hypervisor-vendor when spoofing. All inert (return the stock default) unless a spoof-seed is set. diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c index 4b37405..8bc3f4d 100644 --- a/hw/acpi/aml-build.c +++ b/hw/acpi/aml-build.c @@ -20,6 +20,7 @@ */ #include "qemu/osdep.h" +#include "hw/misc/spoof.h" #include #include "hw/acpi/aml-build.h" #include "hw/acpi/acpi.h" @@ -1725,11 +1726,11 @@ void acpi_table_begin(AcpiTable *desc, GArray *array) build_append_int_noprefix(array, 0, 4); /* Length */ build_append_int_noprefix(array, desc->rev, 1); /* Revision */ build_append_int_noprefix(array, 0, 1); /* Checksum */ - build_append_padded_str(array, desc->oem_id, 6, '\0'); /* OEMID */ + build_append_padded_str(array, spoof_acpi_oem_id(desc->oem_id), 6, '\0'); /* OEMID */ /* OEM Table ID */ - build_append_padded_str(array, desc->oem_table_id, 8, '\0'); + build_append_padded_str(array, spoof_acpi_oem_table_id(desc->oem_table_id), 8, '\0'); build_append_int_noprefix(array, 1, 4); /* OEM Revision */ - g_array_append_vals(array, ACPI_BUILD_APPNAME8, 4); /* Creator ID */ + g_array_append_vals(array, spoof_acpi_creator_id(ACPI_BUILD_APPNAME8), 4); /* Creator ID */ build_append_int_noprefix(array, 1, 4); /* Creator Revision */ } @@ -2370,7 +2371,7 @@ void build_fadt(GArray *tbl, BIOSLinker *linker, const AcpiFadtData *f, } /* Hypervisor Vendor Identity */ - build_append_padded_str(tbl, "QEMU", 8, '\0'); + build_append_padded_str(tbl, spoof_enabled() ? "" : "QEMU", 8, '\0'); /* TODO: extra fields need to be added to support revisions above rev6 */ assert(f->rev == 6);