Commit 0d035b6c authored by Bo Tu's avatar Bo Tu Committed by Cornelia Huck
Browse files

watchdog: introduction of get_watchdog_action



Add get_watchdog_action(void) to allow access to the configured action.

Reviewed-by: default avatarDavid Hildenbrand <dahi@linux.vnet.ibm.com>
Signed-off-by: default avatarBo Tu <tubo@linux.vnet.ibm.com>
Signed-off-by: default avatarCornelia Huck <cornelia.huck@de.ibm.com>
parent c81b4f89
Loading
Loading
Loading
Loading
+5 −9
Original line number Diff line number Diff line
@@ -29,15 +29,6 @@
#include "qapi-event.h"
#include "hw/nmi.h"

/* Possible values for action parameter. */
#define WDT_RESET        1	/* Hard reset. */
#define WDT_SHUTDOWN     2	/* Shutdown. */
#define WDT_POWEROFF     3	/* Quit. */
#define WDT_PAUSE        4	/* Pause. */
#define WDT_DEBUG        5	/* Prints a message and continues running. */
#define WDT_NONE         6	/* Do nothing. */
#define WDT_NMI          7	/* Inject nmi into the guest */

static int watchdog_action = WDT_RESET;
static QLIST_HEAD(watchdog_list, WatchdogTimerModel) watchdog_list;

@@ -105,6 +96,11 @@ int select_watchdog_action(const char *p)
    return 0;
}

int get_watchdog_action(void)
{
    return watchdog_action;
}

/* This actually performs the "action" once a watchdog has expired,
 * ie. reboot, shutdown, exit, etc.
 */
+10 −0
Original line number Diff line number Diff line
@@ -24,6 +24,15 @@

#include "qemu/queue.h"

/* Possible values for action parameter. */
#define WDT_RESET        1      /* Hard reset. */
#define WDT_SHUTDOWN     2      /* Shutdown. */
#define WDT_POWEROFF     3      /* Quit. */
#define WDT_PAUSE        4      /* Pause. */
#define WDT_DEBUG        5      /* Prints a message and continues running. */
#define WDT_NONE         6      /* Do nothing. */
#define WDT_NMI          7      /* Inject nmi into the guest. */

struct WatchdogTimerModel {
    QLIST_ENTRY(WatchdogTimerModel) entry;

@@ -37,6 +46,7 @@ typedef struct WatchdogTimerModel WatchdogTimerModel;
/* in hw/watchdog.c */
int select_watchdog(const char *p);
int select_watchdog_action(const char *action);
int get_watchdog_action(void);
void watchdog_add_model(WatchdogTimerModel *model);
void watchdog_perform_action(void);