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