aboutsummaryrefslogtreecommitdiff
path: root/hw/sun4c_intctl.c
diff options
context:
space:
mode:
authorBlue Swirl <blauwirbel@gmail.com>2009-10-24 19:49:15 +0000
committerBlue Swirl <blauwirbel@gmail.com>2009-10-24 19:49:15 +0000
commit9a2070d3c09b796fac8fd4f0500c2da925e7c3f6 (patch)
treeaa7151809e0200e1cfe423b99e83ddeedddcac92 /hw/sun4c_intctl.c
parent78971d57bb7395101d11cf72171ae35fdbbbe382 (diff)
sparc32: convert Sun4c interrupt controller to reset + vmsd
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Diffstat (limited to 'hw/sun4c_intctl.c')
-rw-r--r--hw/sun4c_intctl.c12
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)