Revision 6620cb3c hw/syborg_keyboard.c

b/hw/syborg_keyboard.c
51 51

  
52 52
typedef struct {
53 53
    SysBusDevice busdev;
54
    MemoryRegion iomem;
54 55
    uint32_t int_enabled;
55 56
    int extension_bit;
56 57
    uint32_t fifo_size;
......
66 67
    qemu_set_irq(s->irq, level);
67 68
}
68 69

  
69
static uint32_t syborg_keyboard_read(void *opaque, target_phys_addr_t offset)
70
static uint64_t syborg_keyboard_read(void *opaque, target_phys_addr_t offset,
71
                                    unsigned size)
70 72
{
71 73
    SyborgKeyboardState *s = (SyborgKeyboardState *)opaque;
72 74
    int c;
......
104 106
}
105 107

  
106 108
static void syborg_keyboard_write(void *opaque, target_phys_addr_t offset,
107
                                  uint32_t value)
109
                                  uint64_t value, unsigned size)
108 110
{
109 111
    SyborgKeyboardState *s = (SyborgKeyboardState *)opaque;
110 112

  
......
121 123
    }
122 124
}
123 125

  
124
static CPUReadMemoryFunc * const syborg_keyboard_readfn[] = {
125
     syborg_keyboard_read,
126
     syborg_keyboard_read,
127
     syborg_keyboard_read
128
};
129

  
130
static CPUWriteMemoryFunc * const syborg_keyboard_writefn[] = {
131
     syborg_keyboard_write,
132
     syborg_keyboard_write,
133
     syborg_keyboard_write
126
static const MemoryRegionOps syborg_keyboard_ops = {
127
    .read = syborg_keyboard_read,
128
    .write = syborg_keyboard_write,
129
    .endianness = DEVICE_NATIVE_ENDIAN,
134 130
};
135 131

  
136 132
static void syborg_keyboard_event(void *opaque, int keycode)
......
184 180
static int syborg_keyboard_init(SysBusDevice *dev)
185 181
{
186 182
    SyborgKeyboardState *s = FROM_SYSBUS(SyborgKeyboardState, dev);
187
    int iomemtype;
188 183

  
189 184
    sysbus_init_irq(dev, &s->irq);
190
    iomemtype = cpu_register_io_memory(syborg_keyboard_readfn,
191
                                       syborg_keyboard_writefn, s,
192
                                       DEVICE_NATIVE_ENDIAN);
193
    sysbus_init_mmio(dev, 0x1000, iomemtype);
185
    memory_region_init_io(&s->iomem, &syborg_keyboard_ops, s,
186
                              "keyboard", 0x1000);
187
    sysbus_init_mmio_region(dev, &s->iomem);
194 188
    if (s->fifo_size <= 0) {
195 189
        fprintf(stderr, "syborg_keyboard: fifo too small\n");
196 190
        s->fifo_size = 16;

Also available in: Unified diff