Revision ee6847d1 hw/syborg_interrupt.c

b/hw/syborg_interrupt.c
56 56
typedef struct {
57 57
    SysBusDevice busdev;
58 58
    int pending_count;
59
    int num_irqs;
59
    uint32_t num_irqs;
60 60
    syborg_int_flags *flags;
61 61
    qemu_irq parent_irq;
62 62
} SyborgIntState;
......
208 208
    int iomemtype;
209 209

  
210 210
    sysbus_init_irq(dev, &s->parent_irq);
211
    s->num_irqs = qdev_get_prop_int(&dev->qdev, "num-interrupts", 64);
212 211
    qdev_init_gpio_in(&dev->qdev, syborg_int_set_irq, s->num_irqs);
213 212
    iomemtype = cpu_register_io_memory(syborg_int_readfn,
214 213
                                       syborg_int_writefn, s);
......
218 217
    register_savevm("syborg_int", -1, 1, syborg_int_save, syborg_int_load, s);
219 218
}
220 219

  
220
static SysBusDeviceInfo syborg_int_info = {
221
    .init = syborg_int_init,
222
    .qdev.name  = "syborg,interrupt",
223
    .qdev.size  = sizeof(SyborgIntState),
224
    .qdev.props = (Property[]) {
225
        {
226
            .name   = "num-interrupts",
227
            .info   = &qdev_prop_uint32,
228
            .offset = offsetof(SyborgIntState, num_irqs),
229
            .defval = (uint32_t[]) { 64 },
230
        },
231
        {/* end of list */}
232
    }
233
};
234

  
221 235
static void syborg_interrupt_register_devices(void)
222 236
{
223
    sysbus_register_dev("syborg,interrupt", sizeof(SyborgIntState),
224
                        syborg_int_init);
237
    sysbus_register_withprop(&syborg_int_info);
225 238
}
226 239

  
227 240
device_init(syborg_interrupt_register_devices)

Also available in: Unified diff