qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH 2/4] qmp: get_device_class() helper


From: Eduardo Habkost
Subject: [Qemu-devel] [PATCH 2/4] qmp: get_device_class() helper
Date: Tue, 26 Sep 2017 19:03:24 -0300

Extract device type lookup code from qmp_device_list_properties()
to a get_device_class() helper.  It will be reused by other QMP
commands.

Signed-off-by: Eduardo Habkost <address@hidden>
---
 qmp.c | 24 ++++++++++++++++++------
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/qmp.c b/qmp.c
index dec4bd843b..5ec829c09b 100644
--- a/qmp.c
+++ b/qmp.c
@@ -517,14 +517,9 @@ static DevicePropertyInfo 
*make_device_property_info(ObjectClass *klass,
     return info;
 }
 
-DevicePropertyInfoList *qmp_device_list_properties(const char *typename,
-                                                   Error **errp)
+static DeviceClass *get_device_class(const char *typename, Error **errp)
 {
     ObjectClass *klass;
-    Object *obj;
-    ObjectProperty *prop;
-    ObjectPropertyIterator iter;
-    DevicePropertyInfoList *prop_list = NULL;
 
     klass = object_class_by_name(typename);
     if (klass == NULL) {
@@ -539,6 +534,23 @@ DevicePropertyInfoList *qmp_device_list_properties(const 
char *typename,
         return NULL;
     }
 
+    return DEVICE_CLASS(klass);
+}
+
+DevicePropertyInfoList *qmp_device_list_properties(const char *typename,
+                                                   Error **errp)
+{
+    ObjectClass *klass;
+    Object *obj;
+    ObjectProperty *prop;
+    ObjectPropertyIterator iter;
+    DevicePropertyInfoList *prop_list = NULL;
+
+    klass = OBJECT_CLASS(get_device_class(typename, errp));
+    if (!klass) {
+        return NULL;
+    }
+
     if (object_class_is_abstract(klass)) {
         error_setg(errp, QERR_INVALID_PARAMETER_VALUE, "typename",
                    "non-abstract device type");
-- 
2.13.5




reply via email to

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