Il 29/09/2014 12:53, Cornelia Huck ha scritto:
> void virtio_instance_init_common(Object *proxydev,
>                                  DeviceState *vdev,
>                                  size_t vdevsize,
>                                  const char *vdevname)
> {
>     object_initialize(vdev, vdevsize, vdevname);
>     object_property_add_child(proxydev, "virtio-backend", OBJECT(vdev), NULL);
>     object_unref(OBJECT(vdev));
>     qdev_alias_all_properties(vdev, proxydev);
> }
> 
> and have the initializers call
> 
> virtio_instance_init_common(obj, DEVICE(&dev->vdev), sizeof(dev->vdev), 
> TYPE_WHATEVER);

You cannot use DEVICE() here because dev->vdev has not been initialized
yet.  But virtio_instance_init_common could just take a void*.

Paolo

Reply via email to