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