INFO("jack device capabilty enabled with %02x\n", jack_capability);
}
-static int virtio_jack_init(VirtIODevice *vdev)
+static void virtio_jack_realize(DeviceState *dev, Error **errp)
{
INFO("initialize virtio-jack device\n");
+ VirtIODevice *vdev = VIRTIO_DEVICE(dev);
vjack = VIRTIO_JACK(vdev);
virtio_init(vdev, JACK_DEVICE_NAME, VIRTIO_ID_JACK, 0);
if (vjack == NULL) {
ERR("failed to initialize jack device\n");
- return -1;
+ return;
}
vjack->vq = virtio_add_queue(&vjack->vdev, 64, virtio_jack_vq);
if (vjack->jacks) {
parse_jack_capability(vjack->jacks);
}
-
- return 0;
}
-static int virtio_jack_exit(DeviceState *dev)
+static void virtio_jack_unrealize(DeviceState *dev, Error **errp)
{
VirtIODevice *vdev = VIRTIO_DEVICE(dev);
INFO("destroy jack device\n");
virtio_cleanup(vdev);
-
- return 0;
}
{
DeviceClass *dc = DEVICE_CLASS(klass);
VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass);
- dc->exit = virtio_jack_exit;
dc->props = virtio_jack_properties;
- vdc->init = virtio_jack_init;
+ vdc->realize = virtio_jack_realize;
+ vdc->unrealize = virtio_jack_unrealize;
vdc->get_features = virtio_jack_get_features;
vdc->reset = virtio_jack_reset;
}
}
}
-static int virtio_power_init(VirtIODevice *vdev)
+static void virtio_power_realize(DeviceState *dev, Error **errp)
{
INFO("initialize virtio-power device\n");
+ VirtIODevice *vdev = VIRTIO_DEVICE(dev);
vpower = VIRTIO_POWER(vdev);
virtio_init(vdev, POWER_DEVICE_NAME, VIRTIO_ID_POWER, 0);
if (vpower == NULL) {
ERR("failed to initialize power device\n");
- return -1;
+ return;
}
vpower->vq = virtio_add_queue(&vpower->vdev, 64, virtio_power_vq);
-
- return 0;
}
-static int virtio_power_exit(DeviceState *dev)
+static void virtio_power_unrealize(DeviceState *dev, Error **errp)
{
VirtIODevice *vdev = VIRTIO_DEVICE(dev);
INFO("destroy power device\n");
virtio_cleanup(vdev);
-
- return 0;
}
static void virtio_power_class_init(ObjectClass *klass, void *data)
{
- DeviceClass *dc = DEVICE_CLASS(klass);
VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass);
- dc->exit = virtio_power_exit;
- vdc->init = virtio_power_init;
+ vdc->realize = virtio_power_realize;
+ vdc->unrealize = virtio_power_unrealize;
vdc->get_features = virtio_power_get_features;
vdc->reset = virtio_power_reset;
}
INFO("sensor device capabilty enabled with %02x\n", sensor_capability);
}
-static int virtio_sensor_init(VirtIODevice *vdev)
+static void virtio_sensor_realize(DeviceState *dev, Error **errp)
{
INFO("initialize virtio-sensor device\n");
+ VirtIODevice *vdev = VIRTIO_DEVICE(dev);
vsensor = VIRTIO_SENSOR(vdev);
virtio_init(vdev, SENSOR_DEVICE_NAME, VIRTIO_ID_SENSOR, 0);
if (vsensor == NULL) {
ERR("failed to initialize sensor device\n");
- return -1;
+ error_set(errp, QERR_DEVICE_INIT_FAILED, SENSOR_DEVICE_NAME);
+ return;
}
vsensor->vq = virtio_add_queue(&vsensor->vdev, 64, virtio_sensor_vq);
if (vsensor->sensors) {
parse_sensor_capability(vsensor->sensors);
}
-
- return 0;
}
-static int virtio_sensor_exit(DeviceState *dev)
+static void virtio_sensor_unrealize(DeviceState *dev, Error **errp)
{
VirtIODevice *vdev = VIRTIO_DEVICE(dev);
INFO("destroy sensor device\n");
virtio_cleanup(vdev);
-
- return 0;
}
static void virtio_sensor_class_init(ObjectClass *klass, void *data)
{
DeviceClass *dc = DEVICE_CLASS(klass);
- VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass);
- dc->exit = virtio_sensor_exit;
dc->props = virtio_sensor_properties;
- vdc->init = virtio_sensor_init;
+ VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass);
+ vdc->unrealize= virtio_sensor_unrealize;
+ vdc->realize = virtio_sensor_realize;
vdc->get_features = virtio_sensor_get_features;
vdc->reset = virtio_sensor_reset;
}