40 lines
1.6 KiB
Diff
40 lines
1.6 KiB
Diff
qemu-spoof: ACPI policy gates (WAET drop, vmgenid hide)
|
|
|
|
x86_build_acpi_tables(): skip the WAET (Windows ACPI Emulated Devices) table when
|
|
spoof_waet_drop(); skip the vmgenid SSDT when spoof_vmgenid_policy()==HIDE. Both
|
|
default to off unless a spoof-seed is set.
|
|
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
|
|
index f622b91..fece5ce 100644
|
|
--- a/hw/i386/acpi-build.c
|
|
+++ b/hw/i386/acpi-build.c
|
|
@@ -21,6 +21,7 @@
|
|
*/
|
|
|
|
#include "qemu/osdep.h"
|
|
+#include "hw/misc/spoof.h"
|
|
#include "qapi/error.h"
|
|
#include "qobject/qnum.h"
|
|
#include "acpi-build.h"
|
|
@@ -2000,7 +2001,7 @@ void acpi_build(AcpiBuildTables *tables, MachineState *machine)
|
|
#endif
|
|
|
|
vmgenid_dev = find_vmgenid_dev();
|
|
- if (vmgenid_dev) {
|
|
+ if (vmgenid_dev && spoof_vmgenid_policy() != SPOOF_VGID_HIDE) {
|
|
acpi_add_table(table_offsets, tables_blob);
|
|
vmgenid_build_acpi(VMGENID(vmgenid_dev), tables_blob,
|
|
tables->vmgenid, tables->linker, x86ms->oem_id);
|
|
@@ -2075,8 +2076,10 @@ void acpi_build(AcpiBuildTables *tables, MachineState *machine)
|
|
x86ms->oem_id, x86ms->oem_table_id, &pcms->cxl_devices_state);
|
|
}
|
|
|
|
- acpi_add_table(table_offsets, tables_blob);
|
|
- build_waet(tables_blob, tables->linker, x86ms->oem_id, x86ms->oem_table_id);
|
|
+ if (!spoof_waet_drop()) { /* qemu-spoof: WAET = emulated-devices tell */
|
|
+ acpi_add_table(table_offsets, tables_blob);
|
|
+ build_waet(tables_blob, tables->linker, x86ms->oem_id, x86ms->oem_table_id);
|
|
+ }
|
|
|
|
/* Add tables supplied by user (if any) */
|
|
for (u = acpi_table_first(); u; u = acpi_table_next(u)) {
|