wdt_ib700.c (61e477f4c731c4ff3f1a44dbfc55c8a5903c8d52) | wdt_ib700.c (db895a1e6a97e919f9b86d60c969377357b05066) |
---|---|
1/* 2 * Virtual hardware watchdog. 3 * 4 * Copyright (C) 2009 Red Hat Inc. 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public License 8 * as published by the Free Software Foundation; either version 2 --- 83 unchanged lines hidden (view full) --- 92 .minimum_version_id = 0, 93 .minimum_version_id_old = 0, 94 .fields = (VMStateField []) { 95 VMSTATE_TIMER(timer, IB700State), 96 VMSTATE_END_OF_LIST() 97 } 98}; 99 | 1/* 2 * Virtual hardware watchdog. 3 * 4 * Copyright (C) 2009 Red Hat Inc. 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public License 8 * as published by the Free Software Foundation; either version 2 --- 83 unchanged lines hidden (view full) --- 92 .minimum_version_id = 0, 93 .minimum_version_id_old = 0, 94 .fields = (VMStateField []) { 95 VMSTATE_TIMER(timer, IB700State), 96 VMSTATE_END_OF_LIST() 97 } 98}; 99 |
100static int wdt_ib700_init(ISADevice *dev) | 100static void wdt_ib700_realize(DeviceState *dev, Error **errp) |
101{ 102 IB700State *s = IB700(dev); 103 104 ib700_debug("watchdog init\n"); 105 106 s->timer = qemu_new_timer_ns(vm_clock, ib700_timer_expired, s); 107 register_ioport_write(0x441, 2, 1, ib700_write_disable_reg, s); 108 register_ioport_write(0x443, 2, 1, ib700_write_enable_reg, s); | 101{ 102 IB700State *s = IB700(dev); 103 104 ib700_debug("watchdog init\n"); 105 106 s->timer = qemu_new_timer_ns(vm_clock, ib700_timer_expired, s); 107 register_ioport_write(0x441, 2, 1, ib700_write_disable_reg, s); 108 register_ioport_write(0x443, 2, 1, ib700_write_enable_reg, s); |
109 110 return 0; | |
111} 112 113static void wdt_ib700_reset(DeviceState *dev) 114{ 115 IB700State *s = IB700(dev); 116 117 ib700_debug("watchdog reset\n"); 118 119 qemu_del_timer(s->timer); 120} 121 122static WatchdogTimerModel model = { 123 .wdt_name = "ib700", 124 .wdt_description = "iBASE 700", 125}; 126 127static void wdt_ib700_class_init(ObjectClass *klass, void *data) 128{ 129 DeviceClass *dc = DEVICE_CLASS(klass); | 109} 110 111static void wdt_ib700_reset(DeviceState *dev) 112{ 113 IB700State *s = IB700(dev); 114 115 ib700_debug("watchdog reset\n"); 116 117 qemu_del_timer(s->timer); 118} 119 120static WatchdogTimerModel model = { 121 .wdt_name = "ib700", 122 .wdt_description = "iBASE 700", 123}; 124 125static void wdt_ib700_class_init(ObjectClass *klass, void *data) 126{ 127 DeviceClass *dc = DEVICE_CLASS(klass); |
130 ISADeviceClass *ic = ISA_DEVICE_CLASS(klass); 131 ic->init = wdt_ib700_init; | 128 129 dc->realize = wdt_ib700_realize; |
132 dc->reset = wdt_ib700_reset; 133 dc->vmsd = &vmstate_ib700; 134} 135 136static const TypeInfo wdt_ib700_info = { 137 .name = TYPE_IB700, 138 .parent = TYPE_ISA_DEVICE, 139 .instance_size = sizeof(IB700State), 140 .class_init = wdt_ib700_class_init, 141}; 142 143static void wdt_ib700_register_types(void) 144{ 145 watchdog_add_model(&model); 146 type_register_static(&wdt_ib700_info); 147} 148 149type_init(wdt_ib700_register_types) | 130 dc->reset = wdt_ib700_reset; 131 dc->vmsd = &vmstate_ib700; 132} 133 134static const TypeInfo wdt_ib700_info = { 135 .name = TYPE_IB700, 136 .parent = TYPE_ISA_DEVICE, 137 .instance_size = sizeof(IB700State), 138 .class_init = wdt_ib700_class_init, 139}; 140 141static void wdt_ib700_register_types(void) 142{ 143 watchdog_add_model(&model); 144 type_register_static(&wdt_ib700_info); 145} 146 147type_init(wdt_ib700_register_types) |