Revision 3509c396

b/hw/block/pflash_cfi02.c
55 55

  
56 56
#define PFLASH_LAZY_ROMD_THRESHOLD 42
57 57

  
58
#define TYPE_CFI_PFLASH02 "cfi.pflash02"
59
#define CFI_PFLASH02(obj) OBJECT_CHECK(pflash_t, (obj), TYPE_CFI_PFLASH02)
60

  
58 61
struct pflash_t {
59
    SysBusDevice busdev;
62
    /*< private >*/
63
    SysBusDevice parent_obj;
64
    /*< public >*/
65

  
60 66
    BlockDriverState *bs;
61 67
    uint32_t sector_len;
62 68
    uint32_t nb_blocs;
......
588 594

  
589 595
static int pflash_cfi02_init(SysBusDevice *dev)
590 596
{
591
    pflash_t *pfl = FROM_SYSBUS(typeof(*pfl), dev);
597
    pflash_t *pfl = CFI_PFLASH02(dev);
592 598
    uint32_t chip_len;
593 599
    int ret;
594 600

  
......
737 743
}
738 744

  
739 745
static const TypeInfo pflash_cfi02_info = {
740
    .name           = "cfi.pflash02",
746
    .name           = TYPE_CFI_PFLASH02,
741 747
    .parent         = TYPE_SYS_BUS_DEVICE,
742 748
    .instance_size  = sizeof(struct pflash_t),
743 749
    .class_init     = pflash_cfi02_class_init,
......
760 766
                                uint16_t unlock_addr0, uint16_t unlock_addr1,
761 767
                                int be)
762 768
{
763
    DeviceState *dev = qdev_create(NULL, "cfi.pflash02");
764
    SysBusDevice *busdev = SYS_BUS_DEVICE(dev);
765
    pflash_t *pfl = (pflash_t *)object_dynamic_cast(OBJECT(dev),
766
                                                    "cfi.pflash02");
769
    DeviceState *dev = qdev_create(NULL, TYPE_CFI_PFLASH02);
767 770

  
768 771
    if (bs && qdev_prop_set_drive(dev, "drive", bs)) {
769 772
        abort();
......
782 785
    qdev_prop_set_string(dev, "name", name);
783 786
    qdev_init_nofail(dev);
784 787

  
785
    sysbus_mmio_map(busdev, 0, base);
786
    return pfl;
788
    sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, base);
789
    return CFI_PFLASH02(dev);
787 790
}

Also available in: Unified diff