Revision ee6847d1 hw/syborg_pointer.c

b/hw/syborg_pointer.c
45 45
typedef struct {
46 46
    SysBusDevice busdev;
47 47
    int int_enabled;
48
    int fifo_size;
48
    uint32_t fifo_size;
49 49
    event_data *event_fifo;
50 50
    int read_pos, read_count;
51 51
    qemu_irq irq;
52
    int absolute;
52
    uint32_t absolute;
53 53
} SyborgPointerState;
54 54

  
55 55
static void syborg_pointer_update(SyborgPointerState *s)
......
209 209
				       syborg_pointer_writefn, s);
210 210
    sysbus_init_mmio(dev, 0x1000, iomemtype);
211 211

  
212
    s->absolute = qdev_get_prop_int(&dev->qdev, "absolute", 1);
213
    s->fifo_size = qdev_get_prop_int(&dev->qdev, "fifo-size", 16);
214 212
    if (s->fifo_size <= 0) {
215 213
        fprintf(stderr, "syborg_pointer: fifo too small\n");
216 214
        s->fifo_size = 16;
......
224 222
                    syborg_pointer_save, syborg_pointer_load, s);
225 223
}
226 224

  
225
static SysBusDeviceInfo syborg_pointer_info = {
226
    .init = syborg_pointer_init,
227
    .qdev.name  = "syborg,pointer",
228
    .qdev.size  = sizeof(SyborgPointerState),
229
    .qdev.props = (Property[]) {
230
        {
231
            .name   = "fifo-size",
232
            .info   = &qdev_prop_uint32,
233
            .offset = offsetof(SyborgPointerState, fifo_size),
234
            .defval = (uint32_t[]) { 16 },
235
        },{
236
            .name   = "absolute",
237
            .info   = &qdev_prop_uint32,
238
            .offset = offsetof(SyborgPointerState, absolute),
239
            .defval = (uint32_t[]) { 1 },
240
        },
241
        {/* end of list */}
242
    }
243
};
244

  
227 245
static void syborg_pointer_register_devices(void)
228 246
{
229
    sysbus_register_dev("syborg,pointer", sizeof(SyborgPointerState),
230
                        syborg_pointer_init);
247
    sysbus_register_withprop(&syborg_pointer_info);
231 248
}
232 249

  
233 250
device_init(syborg_pointer_register_devices)

Also available in: Unified diff