Il 02/04/2012 18:48, Peter Maydell ha scritto: > Ideally rather than having a class specific init function we > should make the 'is_spi' and 'bdrv' be object properties, and > then you do something like (syntax probably wrong but): > s->card = SD_CARD(object_new(TYPE_SD_CARD)); > if (dinfo) { > object_property_set_bdrv(s->card, dinfo->bdrv, "bdrv", errp);
Long term, this would be a link property. Short term it can be object_property_set_str(s->card, bdrv_get_device_name(dinfo->bdrv), "bdrv", errp); > } > realize(s->card); No need to realize explicitly if you instead call object_property_add_child to add s->card as a child of s. > (where the default for bdrv is NULL and the default for is_spi is false > so we don't need to set that). > > This needs realize support for QOM objects, though. And support for properties in non-device objects. Both coming tomorrow. :) Paolo