188f24c2c1
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]
37 lines
868 B
C
37 lines
868 B
C
#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 */
|