From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50246) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ayJiT-0005bI-1f for qemu-devel@nongnu.org; Thu, 05 May 2016 09:53:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ayJiG-00027p-Hb for qemu-devel@nongnu.org; Thu, 05 May 2016 09:53:15 -0400 Received: from mx1.redhat.com ([209.132.183.28]:53578) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ayJiG-00024k-0V for qemu-devel@nongnu.org; Thu, 05 May 2016 09:53:08 -0400 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C0475804 for ; Thu, 5 May 2016 13:52:55 +0000 (UTC) Date: Thu, 5 May 2016 14:52:51 +0100 From: "Dr. David Alan Gilbert" Message-ID: <20160505135251.GA11787@work-vm> References: <1462380558-2030-1-git-send-email-armbru@redhat.com> <1462380558-2030-2-git-send-email-armbru@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1462380558-2030-2-git-send-email-armbru@redhat.com> Subject: Re: [Qemu-devel] [PATCH 1/2] migration: Move qjson.[ch] to migration/ List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster Cc: qemu-devel@nongnu.org, eblake@redhat.com, quintela@redhat.com, amit.shah@redhat.com * Markus Armbruster (armbru@redhat.com) wrote: > Type QJSON lets you build JSON text. Its interface mirrors (a subset > of) abstract JSON syntax. > > QAPI output visitors also produce JSON text. They assert their > preconditions and invariants, and therefore abort on incorrect use. > > Contrastingly, QJSON does *not* detect incorrect use. It happily > produces invalid JSON then. This is what migration wants. > > QJSON was designed for migration, and migration is its only user. > Move it to migration/ for proper coverage by MAINTAINERS, and to deter > accidental use outside migration. > > Signed-off-by: Markus Armbruster Reviewed-by: Dr. David Alan Gilbert > --- > Makefile.objs | 1 - > include/{ => migration}/qjson.h | 0 > include/migration/vmstate.h | 2 +- > migration/Makefile.objs | 1 + > qjson.c => migration/qjson.c | 23 +++++++++++++++++------ > migration/vmstate.c | 1 - > tests/Makefile | 2 +- > 7 files changed, 20 insertions(+), 10 deletions(-) > rename include/{ => migration}/qjson.h (100%) > rename qjson.c => migration/qjson.c (83%) > > diff --git a/Makefile.objs b/Makefile.objs > index 8f705f6..da49b71 100644 > --- a/Makefile.objs > +++ b/Makefile.objs > @@ -52,7 +52,6 @@ common-obj-$(CONFIG_LINUX) += fsdev/ > common-obj-y += migration/ > common-obj-y += qemu-char.o #aio.o > common-obj-y += page_cache.o > -common-obj-y += qjson.o > > common-obj-$(CONFIG_SPICE) += spice-qemu-char.o > > diff --git a/include/qjson.h b/include/migration/qjson.h > similarity index 100% > rename from include/qjson.h > rename to include/migration/qjson.h > diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h > index 84ee355..30ecc44 100644 > --- a/include/migration/vmstate.h > +++ b/include/migration/vmstate.h > @@ -29,7 +29,7 @@ > #ifndef CONFIG_USER_ONLY > #include > #endif > -#include > +#include "migration/qjson.h" > > typedef void SaveStateHandler(QEMUFile *f, void *opaque); > typedef int LoadStateHandler(QEMUFile *f, void *opaque, int version_id); > diff --git a/migration/Makefile.objs b/migration/Makefile.objs > index 0cac6d7..d25ff48 100644 > --- a/migration/Makefile.objs > +++ b/migration/Makefile.objs > @@ -2,6 +2,7 @@ common-obj-y += migration.o tcp.o > common-obj-y += vmstate.o > common-obj-y += qemu-file.o qemu-file-buf.o qemu-file-unix.o qemu-file-stdio.o > common-obj-y += xbzrle.o postcopy-ram.o > +common-obj-y += qjson.o > > common-obj-$(CONFIG_RDMA) += rdma.o > common-obj-$(CONFIG_POSIX) += exec.o unix.o fd.o > diff --git a/qjson.c b/migration/qjson.c > similarity index 83% > rename from qjson.c > rename to migration/qjson.c > index b65ca6e..cb479fe 100644 > --- a/qjson.c > +++ b/migration/qjson.c > @@ -1,5 +1,5 @@ > /* > - * QEMU JSON writer > + * A simple JSON writer > * > * Copyright Alexander Graf > * > @@ -11,12 +11,23 @@ > * > */ > > +/* > + * Type QJSON lets you build JSON text. Its interface mirrors (a > + * subset of) abstract JSON syntax. > + * > + * It does *not* detect incorrect use. It happily produces invalid > + * JSON then. This is what migration wants. > + * > + * QAPI output visitors also produce JSON text. However, they do > + * assert their preconditions and invariants, and therefore abort on > + * incorrect use. > + */ > + > #include "qemu/osdep.h" > -#include > -#include > -#include > -#include > -#include > +#include "qapi/qmp/qstring.h" > +#include "migration/qjson.h" > +#include "qemu/module.h" > +#include "qom/object.h" > > struct QJSON { > Object obj; > diff --git a/migration/vmstate.c b/migration/vmstate.c > index bf3d5db..46dc55e 100644 > --- a/migration/vmstate.c > +++ b/migration/vmstate.c > @@ -6,7 +6,6 @@ > #include "qemu/bitops.h" > #include "qemu/error-report.h" > #include "trace.h" > -#include "qjson.h" > > static void vmstate_subsection_save(QEMUFile *f, const VMStateDescription *vmsd, > void *opaque, QJSON *vmdesc); > diff --git a/tests/Makefile b/tests/Makefile > index 9194f18..4204d97 100644 > --- a/tests/Makefile > +++ b/tests/Makefile > @@ -435,7 +435,7 @@ tests/test-qdev-global-props$(EXESUF): tests/test-qdev-global-props.o \ > $(test-qapi-obj-y) > tests/test-vmstate$(EXESUF): tests/test-vmstate.o \ > migration/vmstate.o migration/qemu-file.o migration/qemu-file-buf.o \ > - migration/qemu-file-unix.o qjson.o \ > + migration/qemu-file-unix.o migration/qjson.o \ > $(test-qom-obj-y) > tests/test-timed-average$(EXESUF): tests/test-timed-average.o qemu-timer.o \ > $(test-util-obj-y) > -- > 2.5.5 > -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK