From: Gonglei <arei.gong...@huawei.com> Remove bootindexA/B form qdev property to qom, things will continue to work just fine, and we can use qom features which are not supported by qdev property.
Signed-off-by: Gonglei <arei.gong...@huawei.com> --- hw/block/fdc.c | 47 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/hw/block/fdc.c b/hw/block/fdc.c index 8add4a1..169a8f0 100644 --- a/hw/block/fdc.c +++ b/hw/block/fdc.c @@ -2217,8 +2217,6 @@ static Property isa_fdc_properties[] = { DEFINE_PROP_UINT32("dma", FDCtrlISABus, dma, 2), DEFINE_PROP_DRIVE("driveA", FDCtrlISABus, state.drives[0].bs), DEFINE_PROP_DRIVE("driveB", FDCtrlISABus, state.drives[1].bs), - DEFINE_PROP_INT32("bootindexA", FDCtrlISABus, bootindexA, -1), - DEFINE_PROP_INT32("bootindexB", FDCtrlISABus, bootindexB, -1), DEFINE_PROP_BIT("check_media_rate", FDCtrlISABus, state.check_media_rate, 0, true), DEFINE_PROP_END_OF_LIST(), @@ -2236,11 +2234,56 @@ static void isabus_fdc_class_init(ObjectClass *klass, void *data) set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); } +static void isabus_fdc_get_bootindexA(Object *obj, Visitor *v, void *opaque, + const char *name, Error **errp) +{ + FDCtrlISABus *isa = ISA_FDC(obj); + + get_bootindex(&isa->bootindexA, v, name, errp); +} + +static void isabus_fdc_set_bootindexA(Object *obj, Visitor *v, void *opaque, + const char *name, Error **errp) +{ + FDCtrlISABus *isa = ISA_FDC(obj); + + set_bootindex(&isa->bootindexA, v, name, errp); +} + +static void isabus_fdc_get_bootindexB(Object *obj, Visitor *v, void *opaque, + const char *name, Error **errp) +{ + FDCtrlISABus *isa = ISA_FDC(obj); + + get_bootindex(&isa->bootindexB, v, name, errp); +} + +static void isabus_fdc_set_bootindexB(Object *obj, Visitor *v, void *opaque, + const char *name, Error **errp) +{ + FDCtrlISABus *isa = ISA_FDC(obj); + + set_bootindex(&isa->bootindexB, v, name, errp); +} + +static void isabus_fdc_instance_init(Object *obj) +{ + object_property_add(obj, "bootindexA", "int", + isabus_fdc_get_bootindexA, + isabus_fdc_set_bootindexA, NULL, NULL, NULL); + object_property_add(obj, "bootindexB", "int", + isabus_fdc_get_bootindexB, + isabus_fdc_set_bootindexB, NULL, NULL, NULL); + object_property_set_int(obj, -1, "bootindexA", NULL); + object_property_set_int(obj, -1, "bootindexB", NULL); +} + static const TypeInfo isa_fdc_info = { .name = TYPE_ISA_FDC, .parent = TYPE_ISA_DEVICE, .instance_size = sizeof(FDCtrlISABus), .class_init = isabus_fdc_class_init, + .instance_init = isabus_fdc_instance_init, }; static const VMStateDescription vmstate_sysbus_fdc ={ -- 1.7.12.4