[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