]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
qom: provide root container for internal objs
authorPeter Xu <peterx@redhat.com>
Thu, 28 Sep 2017 02:59:54 +0000 (10:59 +0800)
committerStefan Hajnoczi <stefanha@redhat.com>
Tue, 3 Oct 2017 18:26:15 +0000 (14:26 -0400)
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ärber <afaerber@suse.de>
CC: Markus Armbruster <armbru@redhat.com>
CC: Paolo Bonzini <pbonzini@redhat.com>
Suggested-by: Daniel P. Berrange <berrange@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Message-id: 20170928025958.1420-2-peterx@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
include/qom/object.h
qom/object.c

index f3e5cff37a3a328c75371e98f891c3db3663c630..e0d9824415e3dfe687092f5c9d06eaf97db4fb75 100644 (file)
@@ -1213,6 +1213,17 @@ Object *object_get_root(void);
  */
 Object *object_get_objects_root(void);
 
+/**
+ * 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:
  *
index 3e18537e9b801695d05f86a6fb26846ed18ac5a9..6a7bd9257b6e4c4e5376ec2e67657757b99b08ae 100644 (file)
@@ -1370,6 +1370,17 @@ Object *object_get_objects_root(void)
     return container_get(object_get_root(), "/objects");
 }
 
+Object *object_get_internal_root(void)
+{
+    static Object *internal_root;
+
+    if (!internal_root) {
+        internal_root = object_new("container");
+    }
+
+    return internal_root;
+}
+
 static void object_get_child_property(Object *obj, Visitor *v,
                                       const char *name, void *opaque,
                                       Error **errp)