summaryrefslogtreecommitdiffstats
path: root/include/hw/watchdog
diff options
context:
space:
mode:
authorXu Wang2015-02-05 11:28:32 +0100
committerChristian Borntraeger2015-06-11 17:45:49 +0200
commit188f24c2c149bcb0088c6317e99e09afc007de34 (patch)
tree6d6e9ad12085b657dcf72647f1cafa528e21a03d /include/hw/watchdog
parentwatchdog: change option wording to allow for more watchdogs (diff)
downloadqemu-188f24c2c149bcb0088c6317e99e09afc007de34.tar.gz
qemu-188f24c2c149bcb0088c6317e99e09afc007de34.tar.xz
qemu-188f24c2c149bcb0088c6317e99e09afc007de34.zip
s390x/watchdog: introduce diag288 watchdog device
This patch introduces a new diag288 watchdog device that will, just like other watchdogs, monitor a guest and take corresponding actions when it detects that the guest is not responding. diag288 is s390x specific. The wiring to s390x KVM will be done in separate patches. Signed-off-by: Xu Wang <gesaint@linux.vnet.ibm.com> Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> [split out qemu-option.hx base changes]
Diffstat (limited to 'include/hw/watchdog')
-rw-r--r--include/hw/watchdog/wdt_diag288.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/include/hw/watchdog/wdt_diag288.h b/include/hw/watchdog/wdt_diag288.h
new file mode 100644
index 0000000000..7f3fd450dc
--- /dev/null
+++ b/include/hw/watchdog/wdt_diag288.h
@@ -0,0 +1,36 @@
+#ifndef WDT_DIAG288_H
+#define WDT_DIAG288_H
+
+#include "hw/qdev.h"
+
+#define TYPE_WDT_DIAG288 "diag288"
+#define DIAG288(obj) \
+ OBJECT_CHECK(DIAG288State, (obj), TYPE_WDT_DIAG288)
+#define DIAG288_CLASS(klass) \
+ OBJECT_CLASS_CHECK(DIAG288Class, (klass), TYPE_WDT_DIAG288)
+#define DIAG288_GET_CLASS(obj) \
+ OBJECT_GET_CLASS(DIAG288Class, (obj), TYPE_WDT_DIAG288)
+
+#define WDT_DIAG288_INIT 0
+#define WDT_DIAG288_CHANGE 1
+#define WDT_DIAG288_CANCEL 2
+
+typedef struct DIAG288State {
+ /*< private >*/
+ DeviceState parent_obj;
+ QEMUTimer *timer;
+ bool enabled;
+
+ /*< public >*/
+} DIAG288State;
+
+typedef struct DIAG288Class {
+ /*< private >*/
+ DeviceClass parent_class;
+
+ /*< public >*/
+ int (*handle_timer)(DIAG288State *dev,
+ uint64_t func, uint64_t timeout);
+} DIAG288Class;
+
+#endif /* WDT_DIAG288_H */