Commit 60ea6aa8 authored by Richard Henderson's avatar Richard Henderson Committed by Avi Kivity
Browse files

i8254: Convert to MemoryRegion



Signed-off-by: default avatarRichard Henderson <rth@twiddle.net>
Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
parent beae3979
Loading
Loading
Loading
Loading
+13 −3
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@ typedef struct PITChannelState {

typedef struct PITState {
    ISADevice dev;
    MemoryRegion ioports;
    uint32_t irq;
    uint32_t iobase;
    PITChannelState channels[3];
@@ -506,6 +507,16 @@ void hpet_pit_enable(void)
    pit_load_count(s, 0);
}

static const MemoryRegionPortio pit_portio[] = {
    { 0, 4, 1, .write = pit_ioport_write },
    { 0, 3, 1, .read = pit_ioport_read },
    PORTIO_END_OF_LIST()
};

static const MemoryRegionOps pit_ioport_ops = {
    .old_portio = pit_portio
};

static int pit_initfn(ISADevice *dev)
{
    PITState *pit = DO_UPCAST(PITState, dev, dev);
@@ -516,9 +527,8 @@ static int pit_initfn(ISADevice *dev)
    s->irq_timer = qemu_new_timer_ns(vm_clock, pit_irq_timer, s);
    s->irq = isa_get_irq(pit->irq);

    register_ioport_write(pit->iobase, 4, 1, pit_ioport_write, pit);
    register_ioport_read(pit->iobase, 3, 1, pit_ioport_read, pit);
    isa_init_ioport(dev, pit->iobase);
    memory_region_init_io(&pit->ioports, &pit_ioport_ops, pit, "pit", 4);
    isa_register_ioport(dev, &pit->ioports, pit->iobase);

    qdev_set_legacy_instance_id(&dev->qdev, pit->iobase, 2);