Revision 63858cd9 hw/parallel.c

b/hw/parallel.c
65 65
#define PARA_CTR_SIGNAL (PARA_CTR_SELECT|PARA_CTR_INIT|PARA_CTR_AUTOLF|PARA_CTR_STROBE)
66 66

  
67 67
typedef struct ParallelState {
68
    MemoryRegion iomem;
68 69
    uint8_t dataw;
69 70
    uint8_t datar;
70 71
    uint8_t status;
......
555 556
    parallel_ioport_write_sw(s, addr >> s->it_shift, value);
556 557
}
557 558

  
558
static CPUReadMemoryFunc * const parallel_mm_read_sw[] = {
559
    &parallel_mm_readb,
560
    &parallel_mm_readw,
561
    &parallel_mm_readl,
562
};
563

  
564
static CPUWriteMemoryFunc * const parallel_mm_write_sw[] = {
565
    &parallel_mm_writeb,
566
    &parallel_mm_writew,
567
    &parallel_mm_writel,
559
static const MemoryRegionOps parallel_mm_ops = {
560
    .old_mmio = {
561
        .read = { parallel_mm_readb, parallel_mm_readw, parallel_mm_readl },
562
        .write = { parallel_mm_writeb, parallel_mm_writew, parallel_mm_writel },
563
    },
564
    .endianness = DEVICE_NATIVE_ENDIAN,
568 565
};
569 566

  
570 567
/* If fd is zero, it means that the parallel device uses the console */
571
bool parallel_mm_init(target_phys_addr_t base, int it_shift, qemu_irq irq,
568
bool parallel_mm_init(MemoryRegion *address_space,
569
                      target_phys_addr_t base, int it_shift, qemu_irq irq,
572 570
                      CharDriverState *chr)
573 571
{
574 572
    ParallelState *s;
575
    int io_sw;
576 573

  
577 574
    s = g_malloc0(sizeof(ParallelState));
578 575
    s->irq = irq;
......
580 577
    s->it_shift = it_shift;
581 578
    qemu_register_reset(parallel_reset, s);
582 579

  
583
    io_sw = cpu_register_io_memory(parallel_mm_read_sw, parallel_mm_write_sw,
584
                                   s, DEVICE_NATIVE_ENDIAN);
585
    cpu_register_physical_memory(base, 8 << it_shift, io_sw);
580
    memory_region_init_io(&s->iomem, &parallel_mm_ops, s,
581
                          "parallel", 8 << it_shift);
582
    memory_region_add_subregion(address_space, base, &s->iomem);
586 583
    return true;
587 584
}
588 585

  

Also available in: Unified diff