diff options
author | KONRAD Frederic <fred.konrad@greensocs.com> | 2013-04-24 10:21:20 +0200 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2013-04-24 11:50:20 -0500 |
commit | 181103cd52710b987799ae980bb92407994243bc (patch) | |
tree | 9442542631a8ef1920719cfaddebad25a7d17c0a /hw/s390x | |
parent | a2f1078b70b6cfc98ed795f17f9d975b1dec1f65 (diff) | |
download | qemu-181103cd52710b987799ae980bb92407994243bc.tar.gz qemu-181103cd52710b987799ae980bb92407994243bc.tar.bz2 qemu-181103cd52710b987799ae980bb92407994243bc.zip |
virtio: remove the function pointer.
This remove the function pointer in VirtIODevice, and use only
VirtioDeviceClass function pointer.
Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com>
Message-id: 1366791683-5350-5-git-send-email-fred.konrad@greensocs.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'hw/s390x')
-rw-r--r-- | hw/s390x/s390-virtio-bus.c | 9 | ||||
-rw-r--r-- | hw/s390x/virtio-ccw.c | 14 |
2 files changed, 10 insertions, 13 deletions
diff --git a/hw/s390x/s390-virtio-bus.c b/hw/s390x/s390-virtio-bus.c index 0cfbff6262..f7a2f4bafe 100644 --- a/hw/s390x/s390-virtio-bus.c +++ b/hw/s390x/s390-virtio-bus.c @@ -136,12 +136,13 @@ static int s390_virtio_device_init(VirtIOS390Device *dev, VirtIODevice *vdev) dev_len = VIRTIO_DEV_OFFS_CONFIG; dev_len += s390_virtio_device_num_vq(dev) * VIRTIO_VQCONFIG_LEN; dev_len += dev->feat_len * 2; - dev_len += vdev->config_len; + dev_len += virtio_bus_get_vdev_config_len(&dev->bus); bus->dev_offs += dev_len; virtio_bind_device(vdev, &virtio_s390_bindings, DEVICE(dev)); - dev->host_features = vdev->get_features(vdev, dev->host_features); + dev->host_features = virtio_bus_get_vdev_features(&dev->bus, + dev->host_features); s390_virtio_device_sync(dev); s390_virtio_reset_idx(dev); if (dev->qdev.hotplugged) { @@ -368,9 +369,7 @@ void s390_virtio_device_sync(VirtIOS390Device *dev) cur_offs += dev->feat_len * 2; /* Sync config space */ - if (dev->vdev->get_config) { - dev->vdev->get_config(dev->vdev, dev->vdev->config); - } + virtio_bus_get_vdev_config(&dev->bus, dev->vdev->config); cpu_physical_memory_write(cur_offs, dev->vdev->config, dev->vdev->config_len); diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c index 0591dc2fb0..e14351cc4e 100644 --- a/hw/s390x/virtio-ccw.c +++ b/hw/s390x/virtio-ccw.c @@ -235,9 +235,7 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw) features.index = ldub_phys(ccw.cda + sizeof(features.features)); features.features = ldl_le_phys(ccw.cda); if (features.index < ARRAY_SIZE(dev->host_features)) { - if (dev->vdev->set_features) { - dev->vdev->set_features(dev->vdev, features.features); - } + virtio_bus_set_vdev_features(&dev->bus, features.features); dev->vdev->guest_features = features.features; } else { /* @@ -265,7 +263,7 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw) if (!ccw.cda) { ret = -EFAULT; } else { - dev->vdev->get_config(dev->vdev, dev->vdev->config); + virtio_bus_get_vdev_config(&dev->bus, dev->vdev->config); /* XXX config space endianness */ cpu_physical_memory_write(ccw.cda, dev->vdev->config, len); sch->curr_status.scsw.count = ccw.count - len; @@ -292,9 +290,7 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw) /* XXX config space endianness */ memcpy(dev->vdev->config, config, len); cpu_physical_memory_unmap(config, hw_len, 0, hw_len); - if (dev->vdev->set_config) { - dev->vdev->set_config(dev->vdev, dev->vdev->config); - } + virtio_bus_set_vdev_config(&dev->bus, dev->vdev->config); sch->curr_status.scsw.count = ccw.count - len; ret = 0; } @@ -527,7 +523,9 @@ static int virtio_ccw_device_init(VirtioCcwDevice *dev, VirtIODevice *vdev) virtio_bind_device(vdev, &virtio_ccw_bindings, DEVICE(dev)); /* Only the first 32 feature bits are used. */ - dev->host_features[0] = vdev->get_features(vdev, dev->host_features[0]); + dev->host_features[0] = virtio_bus_get_vdev_features(&dev->bus, + dev->host_features[0]); + dev->host_features[0] |= 0x1 << VIRTIO_F_NOTIFY_ON_EMPTY; dev->host_features[0] |= 0x1 << VIRTIO_F_BAD_FEATURE; |