OSDN Git Service

sparc32: convert interrupt controller to reset + vmsd
authorBlue Swirl <blauwirbel@gmail.com>
Sat, 24 Oct 2009 19:44:37 +0000 (19:44 +0000)
committerBlue Swirl <blauwirbel@gmail.com>
Sat, 24 Oct 2009 19:44:37 +0000 (19:44 +0000)
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
hw/slavio_intctl.c

index ab29ee2..9680392 100644 (file)
@@ -409,9 +409,9 @@ static const VMStateDescription vmstate_intctl = {
     }
 };
 
-static void slavio_intctl_reset(void *opaque)
+static void slavio_intctl_reset(DeviceState *d)
 {
-    SLAVIO_INTCTLState *s = opaque;
+    SLAVIO_INTCTLState *s = container_of(d, SLAVIO_INTCTLState, busdev.qdev);
     int i;
 
     for (i = 0; i < MAX_CPUS; i++) {
@@ -446,9 +446,9 @@ static int slavio_intctl_init1(SysBusDevice *dev)
         s->slaves[i].cpu = i;
         s->slaves[i].master = s;
     }
-    vmstate_register(-1, &vmstate_intctl, s);
-    qemu_register_reset(slavio_intctl_reset, s);
-    slavio_intctl_reset(s);
+
+    slavio_intctl_reset(&s->busdev.qdev);
+
     return 0;
 }
 
@@ -456,6 +456,8 @@ static SysBusDeviceInfo slavio_intctl_info = {
     .init = slavio_intctl_init1,
     .qdev.name  = "slavio_intctl",
     .qdev.size  = sizeof(SLAVIO_INTCTLState),
+    .qdev.vmsd  = &vmstate_intctl,
+    .qdev.reset = slavio_intctl_reset,
 };
 
 static void slavio_intctl_register_devices(void)