Browse Source

qapi: Add 'acpi' field to 'query-machines' output

Report which machine types support ACPI so that management applications
can properly use the 'acpi' property even on platforms such as ARM where
support for ACPI depends on the machine type and thus checking presence
of '-machine acpi=' in 'query-command-line-options' is insufficient.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Acked-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <537625d3e25d345052322c42ca19812b98b4f49a.1677571792.git.pkrempa@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Peter Krempa 2 years ago
parent
commit
b97f3147b0
2 changed files with 4 additions and 1 deletions
  1. 1 0
      hw/core/machine-qmp-cmds.c
  2. 3 1
      qapi/machine.json

+ 1 - 0
hw/core/machine-qmp-cmds.c

@@ -102,6 +102,7 @@ MachineInfoList *qmp_query_machines(Error **errp)
         info->hotpluggable_cpus = mc->has_hotpluggable_cpus;
         info->hotpluggable_cpus = mc->has_hotpluggable_cpus;
         info->numa_mem_supported = mc->numa_mem_supported;
         info->numa_mem_supported = mc->numa_mem_supported;
         info->deprecated = !!mc->deprecation_reason;
         info->deprecated = !!mc->deprecation_reason;
+        info->acpi = !!object_class_property_find(OBJECT_CLASS(mc), "acpi");
         if (mc->default_cpu_type) {
         if (mc->default_cpu_type) {
             info->default_cpu_type = g_strdup(mc->default_cpu_type);
             info->default_cpu_type = g_strdup(mc->default_cpu_type);
         }
         }

+ 3 - 1
qapi/machine.json

@@ -155,6 +155,8 @@
 #
 #
 # @default-ram-id: the default ID of initial RAM memory backend (since 5.2)
 # @default-ram-id: the default ID of initial RAM memory backend (since 5.2)
 #
 #
+# @acpi: machine type supports ACPI (since 8.0)
+#
 # Since: 1.2
 # Since: 1.2
 ##
 ##
 { 'struct': 'MachineInfo',
 { 'struct': 'MachineInfo',
@@ -162,7 +164,7 @@
             '*is-default': 'bool', 'cpu-max': 'int',
             '*is-default': 'bool', 'cpu-max': 'int',
             'hotpluggable-cpus': 'bool',  'numa-mem-supported': 'bool',
             'hotpluggable-cpus': 'bool',  'numa-mem-supported': 'bool',
             'deprecated': 'bool', '*default-cpu-type': 'str',
             'deprecated': 'bool', '*default-cpu-type': 'str',
-            '*default-ram-id': 'str' } }
+            '*default-ram-id': 'str', 'acpi': 'bool' } }
 
 
 ##
 ##
 # @query-machines:
 # @query-machines: