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