From patchwork Wed May 4 16:49:17 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Markus Armbruster X-Patchwork-Id: 618554 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3r0PDT0Rm0z9t66 for ; Thu, 5 May 2016 02:50:33 +1000 (AEST) Received: from localhost ([::1]:49046 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ay00J-0000db-ML for incoming@patchwork.ozlabs.org; Wed, 04 May 2016 12:50:27 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44255) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1axzzd-0007p7-6t for qemu-devel@nongnu.org; Wed, 04 May 2016 12:49:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1axzzQ-0000nj-TB for qemu-devel@nongnu.org; Wed, 04 May 2016 12:49:39 -0400 Received: from mx1.redhat.com ([209.132.183.28]:58369) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1axzzQ-0000jd-Mu for qemu-devel@nongnu.org; Wed, 04 May 2016 12:49:32 -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 889A6C049E1A for ; Wed, 4 May 2016 16:49:21 +0000 (UTC) Received: from blackfin.pond.sub.org (ovpn-116-66.ams2.redhat.com [10.36.116.66]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u44GnI94032443 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Wed, 4 May 2016 12:49:20 -0400 Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 3A00A1132D8B; Wed, 4 May 2016 18:49:18 +0200 (CEST) From: Markus Armbruster To: qemu-devel@nongnu.org Date: Wed, 4 May 2016 18:49:17 +0200 Message-Id: <1462380558-2030-2-git-send-email-armbru@redhat.com> In-Reply-To: <1462380558-2030-1-git-send-email-armbru@redhat.com> References: <1462380558-2030-1-git-send-email-armbru@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH 1/2] migration: Move qjson.[ch] to migration/ X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: amit.shah@redhat.com, dgilbert@redhat.com, quintela@redhat.com Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" 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: Eric Blake 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)