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