It will be used by following code to enable ACPI watchdog.
Initial support will bring it to Q35 and arm/virt machines using
respective iTCO and GWDT watchdogs as hardware backend.

Signed-off-by: Igor Mammedov <[email protected]>
---
 include/hw/core/boards.h |  1 +
 hw/core/machine.c        | 20 ++++++++++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/include/hw/core/boards.h b/include/hw/core/boards.h
index 07f8938752..25577c3aac 100644
--- a/include/hw/core/boards.h
+++ b/include/hw/core/boards.h
@@ -447,6 +447,7 @@ struct MachineState {
     struct NVDIMMState *nvdimms_state;
     struct NumaState *numa_state;
     bool acpi_spcr_enabled;
+    bool acpi_watchdog;
 };
 
 /*
diff --git a/hw/core/machine.c b/hw/core/machine.c
index 6411e68856..4ca808fb73 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -499,6 +499,20 @@ static void machine_set_usb(Object *obj, bool value, Error 
**errp)
     ms->usb_disabled = !value;
 }
 
+static bool machine_get_acpi_watchdog(Object *obj, Error **errp)
+{
+    MachineState *ms = MACHINE(obj);
+
+    return ms->acpi_watchdog;
+}
+
+static void machine_set_acpi_watchdog(Object *obj, bool value, Error **errp)
+{
+    MachineState *ms = MACHINE(obj);
+
+    ms->acpi_watchdog = value;
+}
+
 static bool machine_get_graphics(Object *obj, Error **errp)
 {
     MachineState *ms = MACHINE(obj);
@@ -1257,6 +1271,12 @@ static void machine_class_init(ObjectClass *oc, const 
void *data)
         NULL, NULL);
     object_class_property_set_description(oc, "memory",
         "Memory size configuration");
+
+    object_class_property_add_bool(oc, "acpi-watchdog",
+        machine_get_acpi_watchdog, machine_set_acpi_watchdog);
+     object_class_property_set_description(oc, "acpi-watchdog",
+        "Set on/off to enable/disable ACPI watchdog."
+        " Default: off (ACPI watchdog is disabled).");
 }
 
 static void machine_class_base_init(ObjectClass *oc, const void *data)
-- 
2.47.3


Reply via email to