Revision 5dd25f36 hw/etraxfs_pic.c

b/hw/etraxfs_pic.c
39 39
struct etrax_pic
40 40
{
41 41
    SysBusDevice busdev;
42
    MemoryRegion mmio;
42 43
    void *interrupt_vector;
43 44
    qemu_irq parent_irq;
44 45
    qemu_irq parent_nmi;
......
77 78
    qemu_set_irq(fs->parent_irq, !!vector);
78 79
}
79 80

  
80
static uint32_t pic_readl (void *opaque, target_phys_addr_t addr)
81
static uint64_t
82
pic_read(void *opaque, target_phys_addr_t addr, unsigned int size)
81 83
{
82 84
    struct etrax_pic *fs = opaque;
83 85
    uint32_t rval;
......
87 89
    return rval;
88 90
}
89 91

  
90
static void
91
pic_writel (void *opaque, target_phys_addr_t addr, uint32_t value)
92
static void pic_write(void *opaque, target_phys_addr_t addr,
93
                      uint64_t value, unsigned int size)
92 94
{
93 95
    struct etrax_pic *fs = opaque;
94 96
    D(printf("%s addr=%x val=%x\n", __func__, addr, value));
......
99 101
    }
100 102
}
101 103

  
102
static CPUReadMemoryFunc * const pic_read[] = {
103
    NULL, NULL,
104
    &pic_readl,
105
};
106

  
107
static CPUWriteMemoryFunc * const pic_write[] = {
108
    NULL, NULL,
109
    &pic_writel,
104
static const MemoryRegionOps pic_ops = {
105
    .read = pic_read,
106
    .write = pic_write,
107
    .endianness = DEVICE_NATIVE_ENDIAN,
108
    .valid = {
109
        .min_access_size = 4,
110
        .max_access_size = 4
111
    }
110 112
};
111 113

  
112 114
static void nmi_handler(void *opaque, int irq, int level)
......
139 141
static int etraxfs_pic_init(SysBusDevice *dev)
140 142
{
141 143
    struct etrax_pic *s = FROM_SYSBUS(typeof (*s), dev);
142
    int intr_vect_regs;
143 144

  
144 145
    qdev_init_gpio_in(&dev->qdev, irq_handler, 32);
145 146
    sysbus_init_irq(dev, &s->parent_irq);
146 147
    sysbus_init_irq(dev, &s->parent_nmi);
147 148

  
148
    intr_vect_regs = cpu_register_io_memory(pic_read, pic_write, s,
149
                                            DEVICE_NATIVE_ENDIAN);
150
    sysbus_init_mmio(dev, R_MAX * 4, intr_vect_regs);
149
    memory_region_init_io(&s->mmio, &pic_ops, s, "etraxfs-pic", R_MAX * 4);
150
    sysbus_init_mmio_region(dev, &s->mmio);
151 151
    return 0;
152 152
}
153 153

  

Also available in: Unified diff