diff options
Diffstat (limited to 'hw/wdt_ib700.c')
-rw-r--r-- | hw/wdt_ib700.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/hw/wdt_ib700.c b/hw/wdt_ib700.c index 7b54bde708..5fc3d83e0d 100644 --- a/hw/wdt_ib700.c +++ b/hw/wdt_ib700.c @@ -88,11 +88,10 @@ static int ib700_load(QEMUFile *f, void *vp, int version) return 0; } -/* Create and initialize a virtual IB700 during PC creation. */ -static void ib700_pc_init(PCIBus *unused) +static void wdt_ib700_init(ISADevice *dev) { + timer = qemu_new_timer(vm_clock, ib700_timer_expired, NULL); register_savevm("ib700_wdt", -1, 0, ib700_save, ib700_load, NULL); - register_ioport_write(0x441, 2, 1, ib700_write_disable_reg, NULL); register_ioport_write(0x443, 2, 1, ib700_write_enable_reg, NULL); } @@ -100,11 +99,18 @@ static void ib700_pc_init(PCIBus *unused) static WatchdogTimerModel model = { .wdt_name = "ib700", .wdt_description = "iBASE 700", - .wdt_pc_init = ib700_pc_init, }; -void wdt_ib700_init(void) +static ISADeviceInfo wdt_ib700_info = { + .qdev.name = "ib700", + .qdev.size = sizeof(ISADevice), + .init = wdt_ib700_init, +}; + +static void wdt_ib700_register_devices(void) { watchdog_add_model(&model); - timer = qemu_new_timer(vm_clock, ib700_timer_expired, NULL); + isa_qdev_register(&wdt_ib700_info); } + +device_init(wdt_ib700_register_devices); |