|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v7 53/65] qdev: convert core PropertyInfo definitions to use qapi_type
Replace .type string with .qapi_type pointer on all core PropertyInfo
definitions in qdev-properties.c. Remove .enum_table from enum
definitions, since the lookup is now accessed through .qapi_type->lookup
via the qdev_propinfo_enum_lookup() fallback helper.
Note that qdev_prop_usize now reports "uint32" or "uint64" depending on
the host. If usize is worth preserving, it should be added as a QAPI
builtin type. Or perhaps we should simply use "size" everywhere (u64)?
It's also strange to use type "size" for both u32 (prop_size32) and u64
(prop_size).
Link property are actually strings. The "full type name" is set when
the property is added, as "link<TYPE>".
Array property will be refactored in a subsequent patch.
Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx>
Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx>
---
hw/core/qdev-properties.c | 42 +++++++++++++++++++++++-------------------
1 file changed, 23 insertions(+), 19 deletions(-)
diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
index ee50fbb9f570..abdb380cb9ec 100644
--- a/hw/core/qdev-properties.c
+++ b/hw/core/qdev-properties.c
@@ -12,6 +12,8 @@
#include "qdev-prop-internal.h"
#include "qom/compat-properties.h"
#include "qom/qom-qobject.h"
+#include "qapi/qapi-builtin-type-infos.h"
+#include "qapi/qapi-type-infos-common.h"
void qdev_prop_set_after_realize(DeviceState *dev, const char *name,
Error **errp)
@@ -181,7 +183,7 @@ static void set_default_value_bool(ObjectProperty *op,
const Property *prop)
}
const PropertyInfo qdev_prop_bit = {
- .type = "bool",
+ .qapi_type = &bool_type_info,
.description = "on/off",
.get = prop_get_bit,
.set = prop_set_bit,
@@ -231,7 +233,7 @@ static void prop_set_bit64(Object *obj, Visitor *v, const
char *name,
}
const PropertyInfo qdev_prop_bit64 = {
- .type = "bool",
+ .qapi_type = &bool_type_info,
.description = "on/off",
.get = prop_get_bit64,
.set = prop_set_bit64,
@@ -293,9 +295,8 @@ static void prop_set_on_off_auto_bit64(Object *obj, Visitor
*v,
}
const PropertyInfo qdev_prop_on_off_auto_bit64 = {
- .type = "OnOffAuto",
+ .qapi_type = &OnOffAuto_type_info,
.description = "on/off/auto",
- .enum_table = &OnOffAuto_lookup,
.get = prop_get_on_off_auto_bit64,
.set = prop_set_on_off_auto_bit64,
.set_default_value = qdev_propinfo_set_default_value_enum,
@@ -322,7 +323,7 @@ static void set_bool(Object *obj, Visitor *v, const char
*name, void *opaque,
}
const PropertyInfo qdev_prop_bool = {
- .type = "bool",
+ .qapi_type = &bool_type_info,
.description = "on/off",
.get = get_bool,
.set = set_bool,
@@ -362,7 +363,7 @@ void qdev_propinfo_set_default_value_uint(ObjectProperty
*op,
}
const PropertyInfo qdev_prop_uint8 = {
- .type = "uint8",
+ .qapi_type = &uint8_type_info,
.get = get_uint8,
.set = set_uint8,
.set_default_value = qdev_propinfo_set_default_value_uint,
@@ -389,7 +390,7 @@ static void set_uint16(Object *obj, Visitor *v, const char
*name,
}
const PropertyInfo qdev_prop_uint16 = {
- .type = "uint16",
+ .qapi_type = &uint16_type_info,
.get = get_uint16,
.set = set_uint16,
.set_default_value = qdev_propinfo_set_default_value_uint,
@@ -434,14 +435,14 @@ static void set_int32(Object *obj, Visitor *v, const char
*name, void *opaque,
}
const PropertyInfo qdev_prop_uint32 = {
- .type = "uint32",
+ .qapi_type = &uint32_type_info,
.get = get_uint32,
.set = set_uint32,
.set_default_value = qdev_propinfo_set_default_value_uint,
};
const PropertyInfo qdev_prop_int32 = {
- .type = "int32",
+ .qapi_type = &int32_type_info,
.get = qdev_propinfo_get_int32,
.set = set_int32,
.set_default_value = qdev_propinfo_set_default_value_int,
@@ -486,14 +487,14 @@ static void set_int64(Object *obj, Visitor *v, const char
*name,
}
const PropertyInfo qdev_prop_uint64 = {
- .type = "uint64",
+ .qapi_type = &uint64_type_info,
.get = get_uint64,
.set = set_uint64,
.set_default_value = qdev_propinfo_set_default_value_uint,
};
const PropertyInfo qdev_prop_int64 = {
- .type = "int64",
+ .qapi_type = &int64_type_info,
.get = get_int64,
.set = set_int64,
.set_default_value = qdev_propinfo_set_default_value_int,
@@ -515,7 +516,7 @@ static void set_uint64_checkmask(Object *obj, Visitor *v,
const char *name,
}
const PropertyInfo qdev_prop_uint64_checkmask = {
- .type = "uint64",
+ .qapi_type = &uint64_type_info,
.get = get_uint64,
.set = set_uint64_checkmask,
};
@@ -551,7 +552,11 @@ static void set_usize(Object *obj, Visitor *v, const char
*name, void *opaque,
}
const PropertyInfo qdev_prop_usize = {
- .type = "usize",
+#if HOST_LONG_BITS == 32
+ .qapi_type = &uint32_type_info,
+#else
+ .qapi_type = &uint64_type_info,
+#endif
.get = get_usize,
.set = set_usize,
.set_default_value = qdev_propinfo_set_default_value_uint,
@@ -595,7 +600,7 @@ static void set_string(Object *obj, Visitor *v, const char
*name,
}
const PropertyInfo qdev_prop_string = {
- .type = "str",
+ .qapi_type = &str_type_info,
.release = release_string,
.get = get_string,
.set = set_string,
@@ -604,9 +609,8 @@ const PropertyInfo qdev_prop_string = {
/* --- on/off/auto --- */
const PropertyInfo qdev_prop_on_off_auto = {
- .type = "OnOffAuto",
+ .qapi_type = &OnOffAuto_type_info,
.description = "on/off/auto",
- .enum_table = &OnOffAuto_lookup,
.get = qdev_propinfo_get_enum,
.set = qdev_propinfo_set_enum,
.set_default_value = qdev_propinfo_set_default_value_enum,
@@ -647,7 +651,7 @@ static void set_size32(Object *obj, Visitor *v, const char
*name, void *opaque,
}
const PropertyInfo qdev_prop_size32 = {
- .type = "size",
+ .qapi_type = &size_type_info,
.get = qdev_propinfo_get_size32,
.set = set_size32,
.set_default_value = qdev_propinfo_set_default_value_uint,
@@ -1060,7 +1064,7 @@ static void set_size(Object *obj, Visitor *v, const char
*name, void *opaque,
}
const PropertyInfo qdev_prop_size = {
- .type = "size",
+ .qapi_type = &size_type_info,
.get = get_size,
.set = set_size,
.set_default_value = qdev_propinfo_set_default_value_uint,
@@ -1142,7 +1146,7 @@ static void set_link(Object *obj, Visitor *v, const char
*name, void *opaque,
}
const PropertyInfo qdev_prop_link = {
- .type = "link",
+ .qapi_type = &str_type_info,
.create = create_link_property,
/*
* Since we have a create method, the get and set are used
--
2.56.0.116.g6de20f6092dc
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |