From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44713) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dxP3v-0006Gb-Db for qemu-devel@nongnu.org; Wed, 27 Sep 2017 23:00:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dxP3t-00022b-OR for qemu-devel@nongnu.org; Wed, 27 Sep 2017 23:00:31 -0400 Received: from mx1.redhat.com ([209.132.183.28]:45638) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dxP3t-00020f-7z for qemu-devel@nongnu.org; Wed, 27 Sep 2017 23:00:29 -0400 From: Peter Xu Date: Thu, 28 Sep 2017 10:59:54 +0800 Message-Id: <20170928025958.1420-2-peterx@redhat.com> In-Reply-To: <20170928025958.1420-1-peterx@redhat.com> References: <20170928025958.1420-1-peterx@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH v4 1/5] qom: provide root container for internal objs List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Paolo Bonzini , "Daniel P . Berrange" , Stefan Hajnoczi , Fam Zheng , peterx@redhat.com, =?UTF-8?q?Andreas=20F=C3=A4rber?= , Manos Pitsidianakis , "Dr . David Alan Gilbert" , Markus Armbruster We have object_get_objects_root() to keep user created objects, however no place for objects that will be used internally. Create such a container for internal objects. CC: Andreas F=C3=A4rber CC: Markus Armbruster CC: Paolo Bonzini Suggested-by: Daniel P. Berrange Signed-off-by: Peter Xu --- include/qom/object.h | 11 +++++++++++ qom/object.c | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/include/qom/object.h b/include/qom/object.h index f3e5cff37a..e0d9824415 100644 --- a/include/qom/object.h +++ b/include/qom/object.h @@ -1214,6 +1214,17 @@ Object *object_get_root(void); Object *object_get_objects_root(void); =20 /** + * object_get_internal_root: + * + * Get the container object that holds internally used object + * instances. Any object which is put into this container must not be + * user visible, and it will not be exposed in the QOM tree. + * + * Returns: the internal object container + */ +Object *object_get_internal_root(void); + +/** * object_get_canonical_path_component: * * Returns: The final component in the object's canonical path. The can= onical diff --git a/qom/object.c b/qom/object.c index 3e18537e9b..6a7bd9257b 100644 --- a/qom/object.c +++ b/qom/object.c @@ -1370,6 +1370,17 @@ Object *object_get_objects_root(void) return container_get(object_get_root(), "/objects"); } =20 +Object *object_get_internal_root(void) +{ + static Object *internal_root; + + if (!internal_root) { + internal_root =3D object_new("container"); + } + + return internal_root; +} + static void object_get_child_property(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) --=20 2.13.5