qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: fred.konrad@greensocs.com
To: qemu-devel@nongnu.org, aliguori@us.ibm.com
Cc: kwolf@redhat.com, peter.maydell@linaro.org,
	e.voevodin@samsung.com, mst@redhat.com,
	mark.burton@greensocs.com, agraf@suse.de, amit.shah@redhat.com,
	aneesh.kumar@linux.vnet.ibm.com, stefanha@redhat.com,
	cornelia.huck@de.ibm.com, pbonzini@redhat.com, afaerber@suse.de,
	fred.konrad@greensocs.com
Subject: [Qemu-devel] [PATCH 29/61] virtio-scsi : cleanup : use QOM casts.
Date: Mon,  7 Jan 2013 19:40:42 +0100	[thread overview]
Message-ID: <1357584074-10852-30-git-send-email-fred.konrad@greensocs.com> (raw)
In-Reply-To: <1357584074-10852-1-git-send-email-fred.konrad@greensocs.com>

From: KONRAD Frederic <fred.konrad@greensocs.com>

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 <fred.konrad@greensocs.com>
---
 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

  parent reply	other threads:[~2013-01-07 18:42 UTC|newest]

Thread overview: 89+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-07 18:40 [Qemu-devel] [PATCH 00/61] Virtio refactoring fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 01/61] qdev : add a maximum device allowed field for the bus fred.konrad
2013-01-08 17:05   ` Peter Maydell
2013-01-07 18:40 ` [Qemu-devel] [PATCH 02/61] virtio-bus : introduce virtio-bus fred.konrad
2013-01-08 17:09   ` Peter Maydell
2013-01-07 18:40 ` [Qemu-devel] [PATCH 03/61] virtio-pci-bus : introduce virtio-pci-bus fred.konrad
2013-01-08 18:08   ` Peter Maydell
2013-01-09  8:37     ` KONRAD Frédéric
2013-01-09  9:14       ` KONRAD Frédéric
2013-01-09 14:53         ` Peter Maydell
2013-01-09 14:55           ` KONRAD Frédéric
2013-01-07 18:40 ` [Qemu-devel] [PATCH 04/61] virtio-pci : refactor virtio-pci device fred.konrad
2013-01-08 17:54   ` Peter Maydell
2013-01-09  8:45     ` KONRAD Frédéric
2013-01-09 14:33       ` Peter Maydell
2013-01-07 18:40 ` [Qemu-devel] [PATCH 05/61] virtio-device : refactor virtio-device fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 06/61] virtio-s390-bus : add virtio-s390-bus fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 07/61] virtio-s390-device : create a virtio-s390-bus during init fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 08/61] virtio-blk : show VirtIOBlock structure fred.konrad
2013-01-08 16:18   ` Peter Maydell
2013-01-07 18:40 ` [Qemu-devel] [PATCH 09/61] virtio-blk : don't use pointer for configuration fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 10/61] virtio-blk : add the virtio-blk device fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 11/61] virtio-blk-pci : switch to new API fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 12/61] virtio-blk-s390 : switch to the " fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 13/61] virtio-blk : cleanup : use QOM cast fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 14/61] virtio-blk : cleanup : remove qdev field fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 15/61] virtio-net : show the VirtIONet structure fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 16/61] virtio-net : add the virtio-net device fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 17/61] virtio-net-pci : switch to the new API fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 18/61] virtio-net-s390 " fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 19/61] virtio-net : cleanup : use QOM cast fred.konrad
2013-01-07 21:16   ` Michael S. Tsirkin
2013-01-07 21:17     ` Anthony Liguori
2013-01-07 21:33       ` Michael S. Tsirkin
2013-01-07 21:53         ` Anthony Liguori
2013-01-07 18:40 ` [Qemu-devel] [PATCH 20/61] virtio-net : cleanup : init and exit function fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 21/61] virtio-net : cleanup : remove qdev field fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 22/61] virtio-scsi : show the VirtIOSCSI structure fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 23/61] virtio-scsi : don't use pointer for configuration fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 24/61] virtio-scsi : allocate cmd_vqs array separately fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 25/61] virtio-scsi : moving host_features from properties to transport properties fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 26/61] virtio-scsi : add the virtio-scsi device fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 27/61] virtio-scsi-pci : switch to new API fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 28/61] virtio-scsi-s390 : switch to the " fred.konrad
2013-01-07 18:40 ` fred.konrad [this message]
2013-01-07 18:40 ` [Qemu-devel] [PATCH 30/61] virtio-scsi : cleanup : init and exit functions fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 31/61] virtio-scsi : cleanup : remove qdev field fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 32/61] virtio-balloon : show the VirtIOBalloon structure fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 33/61] virtio-balloon : add the virtio-balloon device fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 34/61] virtio-balloon-pci : switch to the new API fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 35/61] virtio-balloon : cleanup : init and exit function fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 36/61] virtio-balloon : cleanup : QOM casts fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 37/61] virtio-balloon : cleanup : remove qdev field fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 38/61] virtio-rng : show the VirtIORNG structure fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 39/61] virtio-rng : don't use pointer for configuration fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 40/61] virtio-rng : add virtio-rng device fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 41/61] virtio-rng-s390 : switch to the new API fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 42/61] virtio-rng-pci " fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 43/61] virtio-rng.c : cleanup : init and exit functions fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 44/61] virtio-rng.c : cleanup : remove qdev field fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 45/61] virtio-rng.c : cleanup : use QOM casts fred.konrad
2013-01-07 18:40 ` [Qemu-devel] [PATCH 46/61] virtio-serial : show structures fred.konrad
2013-01-07 18:41 ` [Qemu-devel] [PATCH 47/61] virtio-serial : add the virtio-serial device fred.konrad
2013-01-07 18:41 ` [Qemu-devel] [PATCH 48/61] virtio-serial-pci : switch to the new API fred.konrad
2013-01-07 18:41 ` [Qemu-devel] [PATCH 49/61] virtio-serial-s390 " fred.konrad
2013-01-07 18:41 ` [Qemu-devel] [PATCH 50/61] virtio-serial : cleanup : init and exit functions fred.konrad
2013-01-07 18:41 ` [Qemu-devel] [PATCH 51/61] virtio-serial : cleanup : use QOM casts fred.konrad
2013-01-07 18:41 ` [Qemu-devel] [PATCH 52/61] virtio-serial : cleanup : remove qdev field fred.konrad
2013-01-07 18:41 ` [Qemu-devel] [PATCH 53/61] virtio-9p : add the virtio-9p device fred.konrad
2013-01-07 18:41 ` [Qemu-devel] [PATCH 54/61] virtio-9p-pci : switch to the new API fred.konrad
2013-01-07 18:41 ` [Qemu-devel] [PATCH 55/61] virtio-9p : cleanup : init function fred.konrad
2013-01-07 18:41 ` [Qemu-devel] [PATCH 56/61] virtio-9p : cleanup : QOM casts fred.konrad
2013-01-07 18:41 ` [Qemu-devel] [PATCH 57/61] virtio : remove the function pointer fred.konrad
2013-01-09 20:40   ` Blue Swirl
2013-01-09 21:44     ` KONRAD Frédéric
2013-01-12  9:50       ` Blue Swirl
2013-01-07 18:41 ` [Qemu-devel] [PATCH 58/61] virtio-pci : cleanup : init, exit and reset functions fred.konrad
2013-01-07 18:41 ` [Qemu-devel] [PATCH 59/61] s390-virtio-bus : cleanup fred.konrad
2013-01-07 18:41 ` [Qemu-devel] [PATCH 60/61] virtio : remove virtiobindings fred.konrad
2013-01-07 18:41 ` [Qemu-devel] [PATCH 61/61] virtio : cleanup : init and exit function fred.konrad
2013-01-07 19:11 ` [Qemu-devel] [PATCH 00/61] Virtio refactoring Anthony Liguori
2013-01-08 13:40   ` KONRAD Frédéric
2013-01-08 15:54   ` Peter Maydell
2013-01-08 16:22     ` Anthony Liguori
2013-01-08 16:25       ` Peter Maydell
2013-01-07 20:04 ` Michael S. Tsirkin
2013-01-07 20:15   ` Anthony Liguori
2013-01-08 14:21 ` Peter Maydell
2013-01-08 14:33   ` KONRAD Frédéric

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1357584074-10852-30-git-send-email-fred.konrad@greensocs.com \
    --to=fred.konrad@greensocs.com \
    --cc=afaerber@suse.de \
    --cc=agraf@suse.de \
    --cc=aliguori@us.ibm.com \
    --cc=amit.shah@redhat.com \
    --cc=aneesh.kumar@linux.vnet.ibm.com \
    --cc=cornelia.huck@de.ibm.com \
    --cc=e.voevodin@samsung.com \
    --cc=kwolf@redhat.com \
    --cc=mark.burton@greensocs.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).