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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.