aboutsummaryrefslogtreecommitdiff
path: root/hw/sun4c_intctl.c
diff options
context:
space:
mode:
authorBlue Swirl <blauwirbel@gmail.com>2009-08-31 19:30:21 +0000
committerBlue Swirl <blauwirbel@gmail.com>2009-08-31 19:30:21 +0000
commit9902571dcd999d3c2ce739eda1b7624bd8adda8d (patch)
treedab5a46a98ddc4db4771985b797132e0549c0aa1 /hw/sun4c_intctl.c
parentf4b19cd02152652e818f072ebb40db87a78bcc73 (diff)
downloadqemu-9902571dcd999d3c2ce739eda1b7624bd8adda8d.zip
qemu-9902571dcd999d3c2ce739eda1b7624bd8adda8d.tar.gz
qemu-9902571dcd999d3c2ce739eda1b7624bd8adda8d.tar.bz2
Sparc32: port sun4c interrupt controller to VMState design
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Diffstat (limited to 'hw/sun4c_intctl.c')
-rw-r--r--hw/sun4c_intctl.c34
1 files changed, 12 insertions, 22 deletions
diff --git a/hw/sun4c_intctl.c b/hw/sun4c_intctl.c
index a0d0e97..c021137 100644
--- a/hw/sun4c_intctl.c
+++ b/hw/sun4c_intctl.c
@@ -169,26 +169,17 @@ static void sun4c_set_irq(void *opaque, int irq, int level)
}
}
-static void sun4c_intctl_save(QEMUFile *f, void *opaque)
-{
- Sun4c_INTCTLState *s = opaque;
-
- qemu_put_8s(f, &s->reg);
- qemu_put_8s(f, &s->pending);
-}
-
-static int sun4c_intctl_load(QEMUFile *f, void *opaque, int version_id)
-{
- Sun4c_INTCTLState *s = opaque;
-
- if (version_id != 1)
- return -EINVAL;
-
- qemu_get_8s(f, &s->reg);
- qemu_get_8s(f, &s->pending);
-
- return 0;
-}
+static const VMStateDescription vmstate_sun4c_intctl = {
+ .name ="sun4c_intctl",
+ .version_id = 1,
+ .minimum_version_id = 1,
+ .minimum_version_id_old = 1,
+ .fields = (VMStateField []) {
+ VMSTATE_UINT8(reg, Sun4c_INTCTLState),
+ VMSTATE_UINT8(pending, Sun4c_INTCTLState),
+ VMSTATE_END_OF_LIST()
+ }
+};
static void sun4c_intctl_reset(void *opaque)
{
@@ -212,8 +203,7 @@ static int sun4c_intctl_init1(SysBusDevice *dev)
for (i = 0; i < MAX_PILS; i++) {
sysbus_init_irq(dev, &s->cpu_irqs[i]);
}
- register_savevm("sun4c_intctl", -1, 1, sun4c_intctl_save,
- sun4c_intctl_load, s);
+ vmstate_register(-1, &vmstate_sun4c_intctl, s);
qemu_register_reset(sun4c_intctl_reset, s);
sun4c_intctl_reset(s);
return 0;