Revision ee6847d1 hw/syborg_serial.c

b/hw/syborg_serial.c
59 59
typedef struct {
60 60
    SysBusDevice busdev;
61 61
    uint32_t int_enable;
62
    int fifo_size;
62
    uint32_t fifo_size;
63 63
    uint32_t *read_fifo;
64 64
    int read_pos;
65 65
    int read_count;
......
329 329
        qemu_chr_add_handlers(s->chr, syborg_serial_can_receive,
330 330
                              syborg_serial_receive, syborg_serial_event, s);
331 331
    }
332
    s->fifo_size = qdev_get_prop_int(&dev->qdev, "fifo-size", 16);
333 332
    if (s->fifo_size <= 0) {
334 333
        fprintf(stderr, "syborg_serial: fifo too small\n");
335 334
        s->fifo_size = 16;
......
340 339
                    syborg_serial_save, syborg_serial_load, s);
341 340
}
342 341

  
342
static SysBusDeviceInfo syborg_serial_info = {
343
    .init = syborg_serial_init,
344
    .qdev.name  = "syborg,serial",
345
    .qdev.size  = sizeof(SyborgSerialState),
346
    .qdev.props = (Property[]) {
347
        {
348
            .name   = "fifo-size",
349
            .info   = &qdev_prop_uint32,
350
            .offset = offsetof(SyborgSerialState, fifo_size),
351
            .defval = (uint32_t[]) { 16 },
352
        },
353
        {/* end of list */}
354
    }
355
};
356

  
343 357
static void syborg_serial_register_devices(void)
344 358
{
345
    sysbus_register_dev("syborg,serial", sizeof(SyborgSerialState),
346
                        syborg_serial_init);
359
    sysbus_register_withprop(&syborg_serial_info);
347 360
}
348 361

  
349 362
device_init(syborg_serial_register_devices)

Also available in: Unified diff