On 2 April 2012 15:28, Igor Mitsyanko <i.mitsya...@samsung.com> wrote:
> +    s->card = SD_CARD(object_new(TYPE_SD_CARD));
>     dinfo = drive_get_next(IF_SD);
> -    s->card = sd_init(dinfo ? dinfo->bdrv : NULL, 0);
> +    SD_GET_CLASS(s->card)->init(s->card, dinfo ? dinfo->bdrv : NULL, false);

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);
  }
  realize(s->card);

(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.

-- PMM

Reply via email to