From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51405) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WS8Lr-0003qr-4o for qemu-devel@nongnu.org; Mon, 24 Mar 2014 13:08:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WS8Ll-00008i-50 for qemu-devel@nongnu.org; Mon, 24 Mar 2014 13:07:55 -0400 Received: from mx1.redhat.com ([209.132.183.28]:14348) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WS8Lk-00006O-TQ for qemu-devel@nongnu.org; Mon, 24 Mar 2014 13:07:49 -0400 Date: Mon, 24 Mar 2014 17:07:39 +0000 From: "Dr. David Alan Gilbert" Message-ID: <20140324170738.GH3829@work-vm> References: <1395671853-2685-1-git-send-email-mst@redhat.com> <1395671853-2685-3-git-send-email-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1395671853-2685-3-git-send-email-mst@redhat.com> Subject: Re: [Qemu-devel] [RFC v2 2/5] vmstate: add VMS_NONE List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Michael S. Tsirkin" Cc: Peter Maydell , qemu-devel@nongnu.org * Michael S. Tsirkin (mst@redhat.com) wrote: > The element with this flags value is skipped. > > Signed-off-by: Michael S. Tsirkin > --- > include/migration/vmstate.h | 1 + > vmstate.c | 4 +++- > 2 files changed, 4 insertions(+), 1 deletion(-) > > diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h > index e7e1705..3a1587e 100644 > --- a/include/migration/vmstate.h > +++ b/include/migration/vmstate.h > @@ -88,6 +88,7 @@ struct VMStateInfo { > }; > > enum VMStateFlags { > + VMS_NONE = 0x000, > VMS_SINGLE = 0x001, > VMS_POINTER = 0x002, > VMS_ARRAY = 0x004, I think this would be simpler if you just gave it it's own bit, the next patch already makes the mask more complicated. However, do you need it? Why not just declare a VMS_ARRAY with field->num=0 ? Dave > diff --git a/vmstate.c b/vmstate.c > index 18b3732..fe53735 100644 > --- a/vmstate.c > +++ b/vmstate.c > @@ -13,7 +13,9 @@ static int vmstate_n_elems(void *opaque, VMStateField *field) > { > int n_elems = 1; > > - if (field->flags & VMS_ARRAY) { > + if (!(field->flags & ~VMS_NONE)) { > + n_elems = 0; > + } else if (field->flags & VMS_ARRAY) { > n_elems = field->num; > } else if (field->flags & VMS_VARRAY_INT32) { > n_elems = *(int32_t *)(opaque+field->num_offset); > -- > MST > > -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK