diff mbox

[RFC,13/14] parallel: refactor parallel_reset function

Message ID 1363161681-13878-14-git-send-email-lig.fnst@cn.fujitsu.com
State New
Headers show

Commit Message

liguang March 13, 2013, 8:01 a.m. UTC
Signed-off-by: liguang <lig.fnst@cn.fujitsu.com>
---
 hw/parallel.c |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)
diff mbox

Patch

diff --git a/hw/parallel.c b/hw/parallel.c
index 3a4e06b..7dc53eb 100644
--- a/hw/parallel.c
+++ b/hw/parallel.c
@@ -427,9 +427,11 @@  static uint32_t parallel_ioport_ecp_read(void *opaque, uint32_t addr)
     return ret;
 }
 
-static void parallel_reset(void *opaque)
+static void parallel_reset(DeviceState *dev)
 {
-    ParallelState *s = opaque;
+    ISADevice *isadev = ISA_DEVICE(dev);
+    ISAParallelState *isaparal = DO_UPCAST(ISAParallelState, dev, isadev);
+    ParallelState *s = &isaparal->state;
 
     s->datar = ~0;
     s->dataw = ~0;
@@ -495,7 +497,6 @@  static int parallel_isa_initfn(ISADevice *dev)
 
     base = isa->iobase;
     isa_init_irq(dev, &s->irq, isa->isairq);
-    qemu_register_reset(parallel_reset, s);
 
     if (qemu_chr_fe_ioctl(s->chr, CHR_IOCTL_PP_READ_STATUS, &dummy) == 0) {
         s->hw_driver = 1;
@@ -575,7 +576,6 @@  bool parallel_mm_init(MemoryRegion *address_space,
     s->irq = irq;
     s->chr = chr;
     s->it_shift = it_shift;
-    qemu_register_reset(parallel_reset, s);
 
     memory_region_init_io(&s->iomem, &parallel_mm_ops, s,
                           "parallel", 8 << it_shift);
@@ -597,6 +597,8 @@  static void parallel_isa_class_initfn(ObjectClass *klass, void *data)
     ISADeviceClass *ic = ISA_DEVICE_CLASS(klass);
     ic->init = parallel_isa_initfn;
     dc->props = parallel_isa_properties;
+    dc->reset = parallel_reset;
+    dc->on = parallel_reset;
 }
 
 static const TypeInfo parallel_isa_info = {