|
|
9bac43 |
From f105da1e0b15cdded39ad0a96501aace13e3bd6b Mon Sep 17 00:00:00 2001
|
|
|
9bac43 |
From: Stefan Hajnoczi <stefanha@redhat.com>
|
|
|
9bac43 |
Date: Fri, 22 Dec 2017 11:08:44 +0100
|
|
|
9bac43 |
Subject: [PATCH 26/42] qom: provide root container for internal objs
|
|
|
9bac43 |
MIME-Version: 1.0
|
|
|
9bac43 |
Content-Type: text/plain; charset=UTF-8
|
|
|
9bac43 |
Content-Transfer-Encoding: 8bit
|
|
|
9bac43 |
|
|
|
9bac43 |
RH-Author: Stefan Hajnoczi <stefanha@redhat.com>
|
|
|
9bac43 |
Message-id: <20171222110900.24813-5-stefanha@redhat.com>
|
|
|
9bac43 |
Patchwork-id: 78486
|
|
|
9bac43 |
O-Subject: [RHV7.5 qemu-kvm-rhev PATCH 04/20] qom: provide root container for internal objs
|
|
|
9bac43 |
Bugzilla: 1519721
|
|
|
9bac43 |
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
9bac43 |
RH-Acked-by: Jeffrey Cody <jcody@redhat.com>
|
|
|
9bac43 |
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
9bac43 |
|
|
|
9bac43 |
From: Peter Xu <peterx@redhat.com>
|
|
|
9bac43 |
|
|
|
9bac43 |
We have object_get_objects_root() to keep user created objects, however
|
|
|
9bac43 |
no place for objects that will be used internally. Create such a
|
|
|
9bac43 |
container for internal objects.
|
|
|
9bac43 |
|
|
|
9bac43 |
CC: Andreas Färber <afaerber@suse.de>
|
|
|
9bac43 |
CC: Markus Armbruster <armbru@redhat.com>
|
|
|
9bac43 |
CC: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
9bac43 |
Suggested-by: Daniel P. Berrange <berrange@redhat.com>
|
|
|
9bac43 |
Signed-off-by: Peter Xu <peterx@redhat.com>
|
|
|
9bac43 |
Reviewed-by: Fam Zheng <famz@redhat.com>
|
|
|
9bac43 |
Message-id: 20170928025958.1420-2-peterx@redhat.com
|
|
|
9bac43 |
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
|
9bac43 |
(cherry picked from commit 7c47c4ead75d0b733ee8f2f51fd1de0644cc1308)
|
|
|
9bac43 |
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
|
9bac43 |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
9bac43 |
---
|
|
|
9bac43 |
include/qom/object.h | 11 +++++++++++
|
|
|
9bac43 |
qom/object.c | 11 +++++++++++
|
|
|
9bac43 |
2 files changed, 22 insertions(+)
|
|
|
9bac43 |
|
|
|
9bac43 |
diff --git a/include/qom/object.h b/include/qom/object.h
|
|
|
9bac43 |
index 1b82899..dde5086 100644
|
|
|
9bac43 |
--- a/include/qom/object.h
|
|
|
9bac43 |
+++ b/include/qom/object.h
|
|
|
9bac43 |
@@ -1214,6 +1214,17 @@ Object *object_get_root(void);
|
|
|
9bac43 |
Object *object_get_objects_root(void);
|
|
|
9bac43 |
|
|
|
9bac43 |
/**
|
|
|
9bac43 |
+ * object_get_internal_root:
|
|
|
9bac43 |
+ *
|
|
|
9bac43 |
+ * Get the container object that holds internally used object
|
|
|
9bac43 |
+ * instances. Any object which is put into this container must not be
|
|
|
9bac43 |
+ * user visible, and it will not be exposed in the QOM tree.
|
|
|
9bac43 |
+ *
|
|
|
9bac43 |
+ * Returns: the internal object container
|
|
|
9bac43 |
+ */
|
|
|
9bac43 |
+Object *object_get_internal_root(void);
|
|
|
9bac43 |
+
|
|
|
9bac43 |
+/**
|
|
|
9bac43 |
* object_get_canonical_path_component:
|
|
|
9bac43 |
*
|
|
|
9bac43 |
* Returns: The final component in the object's canonical path. The canonical
|
|
|
9bac43 |
diff --git a/qom/object.c b/qom/object.c
|
|
|
9bac43 |
index fe6e744..4e4b2f7 100644
|
|
|
9bac43 |
--- a/qom/object.c
|
|
|
9bac43 |
+++ b/qom/object.c
|
|
|
9bac43 |
@@ -1370,6 +1370,17 @@ Object *object_get_objects_root(void)
|
|
|
9bac43 |
return container_get(object_get_root(), "/objects");
|
|
|
9bac43 |
}
|
|
|
9bac43 |
|
|
|
9bac43 |
+Object *object_get_internal_root(void)
|
|
|
9bac43 |
+{
|
|
|
9bac43 |
+ static Object *internal_root;
|
|
|
9bac43 |
+
|
|
|
9bac43 |
+ if (!internal_root) {
|
|
|
9bac43 |
+ internal_root = object_new("container");
|
|
|
9bac43 |
+ }
|
|
|
9bac43 |
+
|
|
|
9bac43 |
+ return internal_root;
|
|
|
9bac43 |
+}
|
|
|
9bac43 |
+
|
|
|
9bac43 |
static void object_get_child_property(Object *obj, Visitor *v,
|
|
|
9bac43 |
const char *name, void *opaque,
|
|
|
9bac43 |
Error **errp)
|
|
|
9bac43 |
--
|
|
|
9bac43 |
1.8.3.1
|
|
|
9bac43 |
|