[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH qemu] qdev: Use "string" for QOM string properti
From: |
Alexey Kardashevskiy |
Subject: |
[Qemu-devel] [RFC PATCH qemu] qdev: Use "string" for QOM string properties |
Date: |
Tue, 5 Jun 2018 19:15:08 +1000 |
For QOM properties QEMU uses "string", for example:
{"execute": "qom-list", "arguments": {"path": "/machine"}}
[{'return': [{'type': 'string', 'name': 'append'}, {'type': 'string', 'name':
'kernel'}]
However for the device properties copied from DEVICE_CLASS(class)->props,
"str" is used for a type (vnet0 is "-device virtio-net-pci,id=vnet0"):
{"execute": "qom-list", "arguments": {"path": "/machine/peripheral/vnet0"}}
ret=[{'return': [{'name': 'tx', 'type': 'str'}]
This changes string type when adding them to QOM property list so
we get one string type in QMP.
Signed-off-by: Alexey Kardashevskiy <address@hidden>
---
Not a huge improvement and might actually break something but since
I got that far I decided to post this anyway :)
The alternatives are: 1) do nothing 2) do this:
const PropertyInfo qdev_prop_string = {
- .name = "str",
+ .name = "string",
.release = release_string,
.get = get_string,
.set = set_string,
};
---
hw/core/qdev.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/hw/core/qdev.c b/hw/core/qdev.c
index f6f9247..2895693 100644
--- a/hw/core/qdev.c
+++ b/hw/core/qdev.c
@@ -687,7 +687,7 @@ static void qdev_property_add_legacy(DeviceState *dev,
Property *prop,
}
name = g_strdup_printf("legacy-%s", prop->name);
- object_property_add(OBJECT(dev), name, "str",
+ object_property_add(OBJECT(dev), name, "string",
prop->info->print ? qdev_get_legacy_property :
prop->info->get,
NULL,
NULL,
@@ -711,6 +711,7 @@ void qdev_property_add_static(DeviceState *dev, Property
*prop,
{
Error *local_err = NULL;
Object *obj = OBJECT(dev);
+ const char *proptype;
if (prop->info->create) {
prop->info->create(obj, prop, &local_err);
@@ -723,7 +724,11 @@ void qdev_property_add_static(DeviceState *dev, Property
*prop,
if (!prop->info->get && !prop->info->set) {
return;
}
- object_property_add(obj, prop->name, prop->info->name,
+ proptype = prop->info->name;
+ if (0 == strncmp(proptype, "str", 3)) {
+ proptype = "string";
+ }
+ object_property_add(obj, prop->name, proptype,
prop->info->get, prop->info->set,
prop->info->release,
prop, &local_err);
--
2.11.0
- [Qemu-devel] [RFC PATCH qemu] qdev: Use "string" for QOM string properties,
Alexey Kardashevskiy <=