qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH] object: Add 'help' option to print all available ob


From: Lin Ma
Subject: [Qemu-devel] [PATCH] object: Add 'help' option to print all available object backend types
Date: Wed, 17 Aug 2016 01:13:16 +0800

Signed-off-by: Lin Ma <address@hidden>
---
 qemu-options.hx         |  5 ++++-
 qom/object_interfaces.c | 16 ++++++++++++++++
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/qemu-options.hx b/qemu-options.hx
index a71aaf8..c5f4a12 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -3752,7 +3752,8 @@ DEF("object", HAS_ARG, QEMU_OPTION_object,
     "                create a new object of type TYPENAME setting properties\n"
     "                in the order they are specified.  Note that the 'id'\n"
     "                property must be set.  These objects are placed in the\n"
-    "                '/objects' path.\n",
+    "                '/objects' path.\n"
+    "                Use '-object help' to print available backend types.\n",
     QEMU_ARCH_ALL)
 STEXI
 @item -object @var{typename}[,@address@hidden,...]
@@ -3762,6 +3763,8 @@ in the order they are specified.  Note that the 'id'
 property must be set.  These objects are placed in the
 '/objects' path.
 
+Use '-object help' to print available backend types.
+
 @table @option
 
 @item -object 
memory-backend-file,address@hidden,address@hidden,address@hidden,address@hidden|off}
diff --git a/qom/object_interfaces.c b/qom/object_interfaces.c
index bf59846..8f820a4 100644
--- a/qom/object_interfaces.c
+++ b/qom/object_interfaces.c
@@ -58,6 +58,22 @@ Object *user_creatable_add(const QDict *qdict,
         goto out_visit;
     }
 
+    if (!strcmp(type, "help")) {
+        printf("Available object backend types:\n");
+        GSList *list = object_class_get_list(TYPE_USER_CREATABLE, false);
+        while (list) {
+            const char *name;
+            name = object_class_get_name(OBJECT_CLASS(list->data));
+            /* Ignore user-creatable. */
+            if (strcmp(name, TYPE_USER_CREATABLE)) {
+                printf("%s\n", name);
+            }
+            list = list->next;
+        }
+        g_slist_free(list);
+        exit(0);
+    }
+
     qdict_del(pdict, "id");
     visit_type_str(v, "id", &id, &local_err);
     if (local_err) {
-- 
2.9.2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]