diff options
author | Richard Henderson <rth@twiddle.net> | 2011-08-16 08:32:44 -0700 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2011-10-11 15:57:11 +0200 |
commit | 23af670e5350e3c022a5217c7d8c73de3f37abe8 (patch) | |
tree | 416a43c01d91ee8e0a5360ce73a9ed72073ac80b /hw/pc.c | |
parent | 0a039dc70096b768d3810afa50ba1d214768aaf4 (diff) | |
download | qemu-23af670e5350e3c022a5217c7d8c73de3f37abe8.zip qemu-23af670e5350e3c022a5217c7d8c73de3f37abe8.tar.gz qemu-23af670e5350e3c022a5217c7d8c73de3f37abe8.tar.bz2 |
pc: Convert port92 to isa_register_ioport
Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'hw/pc.c')
-rw-r--r-- | hw/pc.c | 16 |
1 files changed, 13 insertions, 3 deletions
@@ -428,6 +428,7 @@ void pc_cmos_init(ram_addr_t ram_size, ram_addr_t above_4g_mem_size, /* port 92 stuff: could be split off */ typedef struct Port92State { ISADevice dev; + MemoryRegion io; uint8_t outport; qemu_irq *a20_out; } Port92State; @@ -479,13 +480,22 @@ static void port92_reset(DeviceState *d) s->outport &= ~1; } +static const MemoryRegionPortio port92_portio[] = { + { 0, 1, 1, .read = port92_read, .write = port92_write }, + PORTIO_END_OF_LIST(), +}; + +static const MemoryRegionOps port92_ops = { + .old_portio = port92_portio +}; + static int port92_initfn(ISADevice *dev) { Port92State *s = DO_UPCAST(Port92State, dev, dev); - register_ioport_read(0x92, 1, 1, port92_read, s); - register_ioport_write(0x92, 1, 1, port92_write, s); - isa_init_ioport(dev, 0x92); + memory_region_init_io(&s->io, &port92_ops, s, "port92", 1); + isa_register_ioport(dev, &s->io, 0x92); + s->outport = 0; return 0; } |