aboutsummaryrefslogtreecommitdiff
path: root/hw/watchdog.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/watchdog.c')
-rw-r--r--hw/watchdog.c26
1 files changed, 6 insertions, 20 deletions
diff --git a/hw/watchdog.c b/hw/watchdog.c
index 359c3185e3..adba872533 100644
--- a/hw/watchdog.c
+++ b/hw/watchdog.c
@@ -20,6 +20,8 @@
*/
#include "qemu-common.h"
+#include "qemu-option.h"
+#include "qemu-config.h"
#include "sys-queue.h"
#include "sysemu.h"
#include "hw/watchdog.h"
@@ -32,7 +34,6 @@
#define WDT_DEBUG 5 /* Prints a message and continues running. */
#define WDT_NONE 6 /* Do nothing. */
-static WatchdogTimerModel *watchdog;
static int watchdog_action = WDT_RESET;
static LIST_HEAD(watchdog_list, WatchdogTimerModel) watchdog_list;
@@ -49,12 +50,7 @@ void watchdog_add_model(WatchdogTimerModel *model)
int select_watchdog(const char *p)
{
WatchdogTimerModel *model;
-
- if (watchdog) {
- fprintf(stderr,
- "qemu: only one watchdog option may be given\n");
- return 1;
- }
+ QemuOpts *opts;
/* -watchdog ? lists available devices and exits cleanly. */
if (strcmp(p, "?") == 0) {
@@ -67,7 +63,9 @@ int select_watchdog(const char *p)
LIST_FOREACH(model, &watchdog_list, entry) {
if (strcasecmp(model->wdt_name, p) == 0) {
- watchdog = model;
+ /* add the device */
+ opts = qemu_opts_create(&qemu_device_opts, NULL, 0);
+ qemu_opt_set(opts, "driver", p);
return 0;
}
}
@@ -130,15 +128,3 @@ void watchdog_perform_action(void)
break;
}
}
-
-void watchdog_pc_init(PCIBus *pci_bus)
-{
- if (watchdog)
- watchdog->wdt_pc_init(pci_bus);
-}
-
-void register_watchdogs(void)
-{
- wdt_ib700_init();
- wdt_i6300esb_init();
-}