From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34862) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aH8qk-0001kd-IH for qemu-devel@nongnu.org; Thu, 07 Jan 2016 06:35:27 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aH8qh-00085k-BG for qemu-devel@nongnu.org; Thu, 07 Jan 2016 06:35:26 -0500 Received: from mx1.redhat.com ([209.132.183.28]:38665) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aH8qh-00085e-43 for qemu-devel@nongnu.org; Thu, 07 Jan 2016 06:35:23 -0500 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (Postfix) with ESMTPS id 9A631C0AA549 for ; Thu, 7 Jan 2016 11:35:22 +0000 (UTC) Date: Thu, 7 Jan 2016 13:35:20 +0200 From: "Michael S. Tsirkin" Message-ID: <20160107133509-mutt-send-email-mst@redhat.com> References: <1452083019-15141-1-git-send-email-dgilbert@redhat.com> <1452083019-15141-2-git-send-email-dgilbert@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1452083019-15141-2-git-send-email-dgilbert@redhat.com> Subject: Re: [Qemu-devel] [PATCH 2/2] migration/virtio: Remove simple .get/.put use List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Dr. David Alan Gilbert (git)" Cc: amit.shah@redhat.com, qemu-devel@nongnu.org, quintela@redhat.com On Wed, Jan 06, 2016 at 12:23:39PM +0000, Dr. David Alan Gilbert (git) wrote: > From: "Dr. David Alan Gilbert" > > The 'virtqueue_state' and 'ringsize' can be saved using VMSTATE > macros rather than hand coded .get/.put > > Signed-off-by: Dr. David Alan Gilbert I queued this, thanks! > --- > hw/virtio/virtio.c | 87 ++++++++++++------------------------------------------ > 1 file changed, 19 insertions(+), 68 deletions(-) > > diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c > index 1edef59..28300cd 100644 > --- a/hw/virtio/virtio.c > +++ b/hw/virtio/virtio.c > @@ -1126,33 +1126,15 @@ static bool virtio_extra_state_needed(void *opaque) > k->has_extra_state(qbus->parent); > } > > -static void put_virtqueue_state(QEMUFile *f, void *pv, size_t size) > -{ > - VirtIODevice *vdev = pv; > - int i; > - > - for (i = 0; i < VIRTIO_QUEUE_MAX; i++) { > - qemu_put_be64(f, vdev->vq[i].vring.avail); > - qemu_put_be64(f, vdev->vq[i].vring.used); > - } > -} > - > -static int get_virtqueue_state(QEMUFile *f, void *pv, size_t size) > -{ > - VirtIODevice *vdev = pv; > - int i; > - > - for (i = 0; i < VIRTIO_QUEUE_MAX; i++) { > - vdev->vq[i].vring.avail = qemu_get_be64(f); > - vdev->vq[i].vring.used = qemu_get_be64(f); > - } > - return 0; > -} > - > -static VMStateInfo vmstate_info_virtqueue = { > +static const VMStateDescription vmstate_virtqueue = { > .name = "virtqueue_state", > - .get = get_virtqueue_state, > - .put = put_virtqueue_state, > + .version_id = 1, > + .minimum_version_id = 1, > + .fields = (VMStateField[]) { > + VMSTATE_UINT64(vring.avail, struct VirtQueue), > + VMSTATE_UINT64(vring.used, struct VirtQueue), > + VMSTATE_END_OF_LIST() > + } > }; > > static const VMStateDescription vmstate_virtio_virtqueues = { > @@ -1161,44 +1143,20 @@ static const VMStateDescription vmstate_virtio_virtqueues = { > .minimum_version_id = 1, > .needed = &virtio_virtqueue_needed, > .fields = (VMStateField[]) { > - { > - .name = "virtqueues", > - .version_id = 0, > - .field_exists = NULL, > - .size = 0, > - .info = &vmstate_info_virtqueue, > - .flags = VMS_SINGLE, > - .offset = 0, > - }, > + VMSTATE_STRUCT_VARRAY_KNOWN(vq, struct VirtIODevice, VIRTIO_QUEUE_MAX, > + 0, vmstate_virtqueue, VirtQueue), > VMSTATE_END_OF_LIST() > } > }; > > -static void put_ringsize_state(QEMUFile *f, void *pv, size_t size) > -{ > - VirtIODevice *vdev = pv; > - int i; > - > - for (i = 0; i < VIRTIO_QUEUE_MAX; i++) { > - qemu_put_be32(f, vdev->vq[i].vring.num_default); > - } > -} > - > -static int get_ringsize_state(QEMUFile *f, void *pv, size_t size) > -{ > - VirtIODevice *vdev = pv; > - int i; > - > - for (i = 0; i < VIRTIO_QUEUE_MAX; i++) { > - vdev->vq[i].vring.num_default = qemu_get_be32(f); > - } > - return 0; > -} > - > -static VMStateInfo vmstate_info_ringsize = { > +static const VMStateDescription vmstate_ringsize = { > .name = "ringsize_state", > - .get = get_ringsize_state, > - .put = put_ringsize_state, > + .version_id = 1, > + .minimum_version_id = 1, > + .fields = (VMStateField[]) { > + VMSTATE_UINT32(vring.num_default, struct VirtQueue), > + VMSTATE_END_OF_LIST() > + } > }; > > static const VMStateDescription vmstate_virtio_ringsize = { > @@ -1207,15 +1165,8 @@ static const VMStateDescription vmstate_virtio_ringsize = { > .minimum_version_id = 1, > .needed = &virtio_ringsize_needed, > .fields = (VMStateField[]) { > - { > - .name = "ringsize", > - .version_id = 0, > - .field_exists = NULL, > - .size = 0, > - .info = &vmstate_info_ringsize, > - .flags = VMS_SINGLE, > - .offset = 0, > - }, > + VMSTATE_STRUCT_VARRAY_KNOWN(vq, struct VirtIODevice, VIRTIO_QUEUE_MAX, > + 0, vmstate_ringsize, VirtQueue), > VMSTATE_END_OF_LIST() > } > }; > -- > 2.5.0