Revision ee6847d1 hw/m48t59.c

b/hw/m48t59.c
43 43
struct m48t59_t {
44 44
    SysBusDevice busdev;
45 45
    /* Model parameters */
46
    int type; // 2 = m48t02, 8 = m48t08, 59 = m48t59
46
    uint32_t type; // 2 = m48t02, 8 = m48t08, 59 = m48t59
47 47
    /* Hardware parameters */
48 48
    qemu_irq IRQ;
49 49
    uint32_t io_base;
50
    uint16_t size;
50
    uint32_t size;
51 51
    /* RTC management */
52 52
    time_t   time_offset;
53 53
    time_t   stop_time;
......
623 623
    m48t59_t *d;
624 624

  
625 625
    dev = qdev_create(NULL, "m48t59");
626
    qdev_set_prop_int(dev, "type", type);
627
    qdev_set_prop_int(dev, "size", size);
628
    qdev_set_prop_int(dev, "io_base", io_base);
626
    qdev_prop_set_uint32(dev, "type", type);
627
    qdev_prop_set_uint32(dev, "size", size);
628
    qdev_prop_set_uint32(dev, "io_base", io_base);
629 629
    qdev_init(dev);
630 630
    s = sysbus_from_qdev(dev);
631 631
    sysbus_connect_irq(s, 0, IRQ);
......
647 647
    m48t59_t *s = FROM_SYSBUS(m48t59_t, dev);
648 648
    int mem_index;
649 649

  
650
    s->size = qdev_get_prop_int(&dev->qdev, "size", -1);
651 650
    s->buffer = qemu_mallocz(s->size);
652 651
    sysbus_init_irq(dev, &s->IRQ);
653
    s->io_base = qdev_get_prop_int(&dev->qdev, "io_base", 0);
654
    s->type = qdev_get_prop_int(&dev->qdev, "type", -1);
655 652

  
656 653
    mem_index = cpu_register_io_memory(nvram_read, nvram_write, s);
657 654
    sysbus_init_mmio(dev, s->size, mem_index);
......
666 663
    register_savevm("m48t59", -1, 1, m48t59_save, m48t59_load, s);
667 664
}
668 665

  
666
static SysBusDeviceInfo m48t59_info = {
667
    .init = m48t59_init1,
668
    .qdev.name  = "m48t59",
669
    .qdev.size  = sizeof(m48t59_t),
670
    .qdev.props = (Property[]) {
671
        {
672
            .name   = "size",
673
            .info   = &qdev_prop_uint32,
674
            .offset = offsetof(m48t59_t, size),
675
            .defval = (uint32_t[]) { -1 },
676
        },{
677
            .name   = "type",
678
            .info   = &qdev_prop_uint32,
679
            .offset = offsetof(m48t59_t, type),
680
            .defval = (uint32_t[]) { -1 },
681
        },{
682
            .name   = "io_base",
683
            .info   = &qdev_prop_hex32,
684
            .offset = offsetof(m48t59_t, io_base),
685
        },
686
        {/* end of list */}
687
    }
688
};
689

  
669 690
static void m48t59_register_devices(void)
670 691
{
671
    sysbus_register_dev("m48t59", sizeof(m48t59_t), m48t59_init1);
692
    sysbus_register_withprop(&m48t59_info);
672 693
}
673 694

  
674 695
device_init(m48t59_register_devices)

Also available in: Unified diff