[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 29/61] virtio-scsi : cleanup : use QOM casts.
From: |
fred . konrad |
Subject: |
[Qemu-devel] [PATCH 29/61] virtio-scsi : cleanup : use QOM casts. |
Date: |
Mon, 7 Jan 2013 19:40:42 +0100 |
From: KONRAD Frederic <address@hidden>
As the virtio-scsi-pci and virtio-scsi-s390 are switched to the new API,
we can use QOM casts. This shouldn't been applyied before
virtio-scsi-pci and virtio-scsi-s390 refactoring as their VirtIODevice
were not a QOM object.
Signed-off-by: KONRAD Frederic <address@hidden>
---
hw/virtio-scsi.c | 46 ++++++++++++++++++++++++++--------------------
hw/virtio-scsi.h | 2 +-
2 files changed, 27 insertions(+), 21 deletions(-)
diff --git a/hw/virtio-scsi.c b/hw/virtio-scsi.c
index ad07a65..d81df9c 100644
--- a/hw/virtio-scsi.c
+++ b/hw/virtio-scsi.c
@@ -171,6 +171,7 @@ static void virtio_scsi_complete_req(VirtIOSCSIReq *req)
{
VirtIOSCSI *s = req->dev;
VirtQueue *vq = req->vq;
+ VirtIODevice *vdev = VIRTIO_DEVICE(s);
virtqueue_push(vq, &req->elem, req->qsgl.size +
req->elem.in_sg[0].iov_len);
qemu_sglist_destroy(&req->qsgl);
if (req->sreq) {
@@ -178,7 +179,7 @@ static void virtio_scsi_complete_req(VirtIOSCSIReq *req)
scsi_req_unref(req->sreq);
}
g_free(req);
- virtio_notify(&s->vdev, vq);
+ virtio_notify(vdev, vq);
}
static void virtio_scsi_bad_req(void)
@@ -561,16 +562,16 @@ static void virtio_scsi_reset(VirtIODevice *vdev)
*/
static void virtio_scsi_save(QEMUFile *f, void *opaque)
{
- VirtIOSCSI *s = opaque;
- virtio_save(&s->vdev, f);
+ VirtIODevice *vdev = VIRTIO_DEVICE(opaque);
+ virtio_save(vdev, f);
}
static int virtio_scsi_load(QEMUFile *f, void *opaque, int version_id)
{
- VirtIOSCSI *s = opaque;
+ VirtIODevice *vdev = VIRTIO_DEVICE(opaque);
int ret;
- ret = virtio_load(&s->vdev, f);
+ ret = virtio_load(vdev, f);
if (ret) {
return ret;
}
@@ -582,9 +583,10 @@ static void virtio_scsi_push_event(VirtIOSCSI *s,
SCSIDevice *dev,
{
VirtIOSCSIReq *req = virtio_scsi_pop_req(s, s->event_vq);
VirtIOSCSIEvent *evt;
+ VirtIODevice *vdev = VIRTIO_DEVICE(s);
int in_size;
- if (!(s->vdev.status & VIRTIO_CONFIG_S_DRIVER_OK)) {
+ if (!(vdev->status & VIRTIO_CONFIG_S_DRIVER_OK)) {
return;
}
@@ -628,7 +630,7 @@ static void virtio_scsi_push_event(VirtIOSCSI *s,
SCSIDevice *dev,
static void virtio_scsi_handle_event(VirtIODevice *vdev, VirtQueue *vq)
{
- VirtIOSCSI *s = (VirtIOSCSI *)vdev;
+ VirtIOSCSI *s = VIRTIO_SCSI(vdev);
if (s->events_dropped) {
virtio_scsi_push_event(s, NULL, VIRTIO_SCSI_T_NO_EVENT, 0);
@@ -638,8 +640,9 @@ static void virtio_scsi_handle_event(VirtIODevice *vdev,
VirtQueue *vq)
static void virtio_scsi_change(SCSIBus *bus, SCSIDevice *dev, SCSISense sense)
{
VirtIOSCSI *s = container_of(bus, VirtIOSCSI, bus);
+ VirtIODevice *vdev = VIRTIO_DEVICE(s);
- if (((s->vdev.guest_features >> VIRTIO_SCSI_F_CHANGE) & 1) &&
+ if (((vdev->guest_features >> VIRTIO_SCSI_F_CHANGE) & 1) &&
dev->type != TYPE_ROM) {
virtio_scsi_push_event(s, dev, VIRTIO_SCSI_T_PARAM_CHANGE,
sense.asc | (sense.ascq << 8));
@@ -649,8 +652,9 @@ static void virtio_scsi_change(SCSIBus *bus, SCSIDevice
*dev, SCSISense sense)
static void virtio_scsi_hotplug(SCSIBus *bus, SCSIDevice *dev)
{
VirtIOSCSI *s = container_of(bus, VirtIOSCSI, bus);
+ VirtIODevice *vdev = VIRTIO_DEVICE(s);
- if ((s->vdev.guest_features >> VIRTIO_SCSI_F_HOTPLUG) & 1) {
+ if ((vdev->guest_features >> VIRTIO_SCSI_F_HOTPLUG) & 1) {
virtio_scsi_push_event(s, dev, VIRTIO_SCSI_T_TRANSPORT_RESET,
VIRTIO_SCSI_EVT_RESET_RESCAN);
}
@@ -659,8 +663,9 @@ static void virtio_scsi_hotplug(SCSIBus *bus, SCSIDevice
*dev)
static void virtio_scsi_hot_unplug(SCSIBus *bus, SCSIDevice *dev)
{
VirtIOSCSI *s = container_of(bus, VirtIOSCSI, bus);
+ VirtIODevice *vdev = VIRTIO_DEVICE(s);
- if ((s->vdev.guest_features >> VIRTIO_SCSI_F_HOTPLUG) & 1) {
+ if ((vdev->guest_features >> VIRTIO_SCSI_F_HOTPLUG) & 1) {
virtio_scsi_push_event(s, dev, VIRTIO_SCSI_T_TRANSPORT_RESET,
VIRTIO_SCSI_EVT_RESET_REMOVED);
}
@@ -693,6 +698,7 @@ static VirtIODevice *virtio_scsi_common_init(DeviceState
*dev,
VirtIOSCSI **ps)
{
VirtIOSCSI *s = *ps;
+ VirtIODevice *vdev = VIRTIO_DEVICE(s);
static int virtio_scsi_id;
int i;
@@ -718,17 +724,17 @@ static VirtIODevice *virtio_scsi_common_init(DeviceState
*dev,
memcpy(&(s->conf), proxyconf, sizeof(struct VirtIOSCSIConf));
/* TODO set up vdev function pointers */
- s->vdev.get_config = virtio_scsi_get_config;
- s->vdev.set_config = virtio_scsi_set_config;
- s->vdev.get_features = virtio_scsi_get_features;
- s->vdev.reset = virtio_scsi_reset;
-
- s->ctrl_vq = virtio_add_queue(&s->vdev, VIRTIO_SCSI_VQ_SIZE,
- virtio_scsi_handle_ctrl);
- s->event_vq = virtio_add_queue(&s->vdev, VIRTIO_SCSI_VQ_SIZE,
+ vdev->get_config = virtio_scsi_get_config;
+ vdev->set_config = virtio_scsi_set_config;
+ vdev->get_features = virtio_scsi_get_features;
+ vdev->reset = virtio_scsi_reset;
+
+ s->ctrl_vq = virtio_add_queue(vdev, VIRTIO_SCSI_VQ_SIZE,
+ virtio_scsi_handle_ctrl);
+ s->event_vq = virtio_add_queue(vdev, VIRTIO_SCSI_VQ_SIZE,
virtio_scsi_handle_event);
for (i = 0; i < s->conf.num_queues; i++) {
- s->cmd_vqs[i] = virtio_add_queue(&s->vdev, VIRTIO_SCSI_VQ_SIZE,
+ s->cmd_vqs[i] = virtio_add_queue(vdev, VIRTIO_SCSI_VQ_SIZE,
virtio_scsi_handle_cmd);
}
@@ -740,7 +746,7 @@ static VirtIODevice *virtio_scsi_common_init(DeviceState
*dev,
register_savevm(dev, "virtio-scsi", virtio_scsi_id++, 1,
virtio_scsi_save, virtio_scsi_load, s);
- return &s->vdev;
+ return vdev;
}
VirtIODevice *virtio_scsi_init(DeviceState *dev, VirtIOSCSIConf *proxyconf)
diff --git a/hw/virtio-scsi.h b/hw/virtio-scsi.h
index 67d9067..50fa6c5 100644
--- a/hw/virtio-scsi.h
+++ b/hw/virtio-scsi.h
@@ -38,7 +38,7 @@ struct VirtIOSCSIConf {
};
typedef struct {
- VirtIODevice vdev;
+ VirtIODevice parent_obj;
DeviceState *qdev;
VirtIOSCSIConf conf;
--
1.7.11.7
- [Qemu-devel] [PATCH 39/61] virtio-rng : don't use pointer for configuration., (continued)
- [Qemu-devel] [PATCH 39/61] virtio-rng : don't use pointer for configuration., fred . konrad, 2013/01/07
- Re: [Qemu-devel] [PATCH 00/61] Virtio refactoring., Michael S. Tsirkin, 2013/01/07
- [Qemu-devel] [PATCH 52/61] virtio-serial : cleanup : remove qdev field., fred . konrad, 2013/01/07
- [Qemu-devel] [PATCH 28/61] virtio-scsi-s390 : switch to the new API., fred . konrad, 2013/01/07
- [Qemu-devel] [PATCH 38/61] virtio-rng : show the VirtIORNG structure., fred . konrad, 2013/01/07
- [Qemu-devel] [PATCH 31/61] virtio-scsi : cleanup : remove qdev field., fred . konrad, 2013/01/07
- [Qemu-devel] [PATCH 46/61] virtio-serial : show structures., fred . konrad, 2013/01/07
- [Qemu-devel] [PATCH 37/61] virtio-balloon : cleanup : remove qdev field., fred . konrad, 2013/01/07
- [Qemu-devel] [PATCH 27/61] virtio-scsi-pci : switch to new API., fred . konrad, 2013/01/07
- [Qemu-devel] [PATCH 29/61] virtio-scsi : cleanup : use QOM casts.,
fred . konrad <=
- Re: [Qemu-devel] [PATCH 00/61] Virtio refactoring., Peter Maydell, 2013/01/08