diff options
author | Blue Swirl <blauwirbel@gmail.com> | 2009-10-24 19:49:15 +0000 |
---|---|---|
committer | Blue Swirl <blauwirbel@gmail.com> | 2009-10-24 19:49:15 +0000 |
commit | 9a2070d3c09b796fac8fd4f0500c2da925e7c3f6 (patch) | |
tree | aa7151809e0200e1cfe423b99e83ddeedddcac92 /hw | |
parent | 78971d57bb7395101d11cf72171ae35fdbbbe382 (diff) |
sparc32: convert Sun4c interrupt controller to reset + vmsd
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Diffstat (limited to 'hw')
-rw-r--r-- | hw/sun4c_intctl.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/hw/sun4c_intctl.c b/hw/sun4c_intctl.c index c0211370a7..dca471fbb3 100644 --- a/hw/sun4c_intctl.c +++ b/hw/sun4c_intctl.c @@ -181,9 +181,9 @@ static const VMStateDescription vmstate_sun4c_intctl = { } }; -static void sun4c_intctl_reset(void *opaque) +static void sun4c_intctl_reset(DeviceState *d) { - Sun4c_INTCTLState *s = opaque; + Sun4c_INTCTLState *s = container_of(d, Sun4c_INTCTLState, busdev.qdev); s->reg = 1; s->pending = 0; @@ -203,9 +203,9 @@ static int sun4c_intctl_init1(SysBusDevice *dev) for (i = 0; i < MAX_PILS; i++) { sysbus_init_irq(dev, &s->cpu_irqs[i]); } - vmstate_register(-1, &vmstate_sun4c_intctl, s); - qemu_register_reset(sun4c_intctl_reset, s); - sun4c_intctl_reset(s); + + sun4c_intctl_reset(&s->busdev.qdev); + return 0; } @@ -213,6 +213,8 @@ static SysBusDeviceInfo sun4c_intctl_info = { .init = sun4c_intctl_init1, .qdev.name = "sun4c_intctl", .qdev.size = sizeof(Sun4c_INTCTLState), + .qdev.vmsd = &vmstate_sun4c_intctl, + .qdev.reset = sun4c_intctl_reset, }; static void sun4c_intctl_register_devices(void) |