From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, eblake@redhat.com, quintela@redhat.com,
amit.shah@redhat.com
Subject: Re: [Qemu-devel] [PATCH 1/2] migration: Move qjson.[ch] to migration/
Date: Thu, 5 May 2016 14:52:51 +0100 [thread overview]
Message-ID: <20160505135251.GA11787@work-vm> (raw)
In-Reply-To: <1462380558-2030-2-git-send-email-armbru@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 <armbru@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> ---
> 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 <migration/qemu-file.h>
> #endif
> -#include <qjson.h>
> +#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 <qapi/qmp/qstring.h>
> -#include <glib.h>
> -#include <qjson.h>
> -#include <qemu/module.h>
> -#include <qom/object.h>
> +#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
next prev parent reply other threads:[~2016-05-05 13:53 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-04 16:49 [Qemu-devel] [PATCH 0/2] migration: Move qjson.[ch] to migration/, clean up Markus Armbruster
2016-05-04 16:49 ` [Qemu-devel] [PATCH 1/2] migration: Move qjson.[ch] to migration/ Markus Armbruster
2016-05-04 17:11 ` Eric Blake
2016-05-06 13:07 ` Markus Armbruster
2016-05-05 13:52 ` Dr. David Alan Gilbert [this message]
2016-05-04 16:49 ` [Qemu-devel] [PATCH 2/2] migration/qjson: Drop gratuitous use of QOM Markus Armbruster
2016-05-04 17:08 ` [Qemu-devel] [PATCH 0/2] migration: Move qjson.[ch] to migration/, clean up Eric Blake
2016-05-06 13:11 ` Markus Armbruster
2016-05-23 8:36 ` Amit Shah
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=20160505135251.GA11787@work-vm \
--to=dgilbert@redhat.com \
--cc=amit.shah@redhat.com \
--cc=armbru@redhat.com \
--cc=eblake@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@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).