[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 5/6] qmp: Support abstract classes on device-list-pr
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [PATCH 5/6] qmp: Support abstract classes on device-list-properties |
Date: |
Tue, 11 Oct 2016 17:41:18 -0300 |
When an abstract class is used on device-list-properties, we can
simply return the class properties registered for the class.
This will be useful if management software needs to query for CPU
options that are supported by all CPU models, for example.
Signed-off-by: Eduardo Habkost <address@hidden>
---
qmp.c | 21 +++++++++------------
1 file changed, 9 insertions(+), 12 deletions(-)
diff --git a/qmp.c b/qmp.c
index b3ba9ef..dd6090d 100644
--- a/qmp.c
+++ b/qmp.c
@@ -518,7 +518,7 @@ DevicePropertyInfoList *qmp_device_list_properties(const
char *typename,
Error **errp)
{
ObjectClass *klass;
- Object *obj;
+ Object *obj = NULL;
ObjectProperty *prop;
ObjectPropertyIterator iter;
DevicePropertyInfoList *prop_list = NULL;
@@ -537,19 +537,16 @@ DevicePropertyInfoList *qmp_device_list_properties(const
char *typename,
}
if (object_class_is_abstract(klass)) {
- error_setg(errp, QERR_INVALID_PARAMETER_VALUE, "name",
- "non-abstract device type");
- return NULL;
- }
-
- if (DEVICE_CLASS(klass)->cannot_destroy_with_object_finalize_yet) {
- error_setg(errp, "Can't list properties of device '%s'", typename);
- return NULL;
+ object_class_property_iter_init(&iter, klass);
+ } else {
+ if (DEVICE_CLASS(klass)->cannot_destroy_with_object_finalize_yet) {
+ error_setg(errp, "Can't list properties of device '%s'", typename);
+ return NULL;
+ }
+ obj = object_new(typename);
+ object_property_iter_init(&iter, obj);
}
- obj = object_new(typename);
-
- object_property_iter_init(&iter, obj);
while ((prop = object_property_iter_next(&iter))) {
DevicePropertyInfo *info;
DevicePropertyInfoList *entry;
--
2.7.4
- [Qemu-devel] [PATCH 0/6] qdev class properties + abstract class support on device-list-properties, Eduardo Habkost, 2016/10/11
- [Qemu-devel] [PATCH 2/6] qdev: Extract property-default code to qdev_property_set_to_default(), Eduardo Habkost, 2016/10/11
- [Qemu-devel] [PATCH 3/6] qdev: Register static properties as class properties, Eduardo Habkost, 2016/10/11
- [Qemu-devel] [PATCH 5/6] qmp: Support abstract classes on device-list-properties,
Eduardo Habkost <=
- [Qemu-devel] [PATCH 4/6] qom: object_class_property_iter_init() function, Eduardo Habkost, 2016/10/11
- [Qemu-devel] [PATCH 6/6] qdev: Warning about using object_class_property_add() in new code, Eduardo Habkost, 2016/10/11
- [Qemu-devel] [PATCH 1/6] qdev: qdev_class_set_props() function, Eduardo Habkost, 2016/10/11
- Re: [Qemu-devel] [PATCH 0/6] qdev class properties + abstract class support on device-list-properties, no-reply, 2016/10/11
- Re: [Qemu-devel] [PATCH 0/6] qdev class properties + abstract class support on device-list-properties, Eduardo Habkost, 2016/10/17