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). The qdev_prop_link and qdev_prop_array definitions are unchanged: link uses .create for registration, and array will be refactored in a subsequent patch. Signed-off-by: Marc-André Lureau <[email protected]> --- hw/core/qdev-properties.c | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index eb7caa32557..7e562518184 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) @@ -180,7 +182,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, @@ -230,7 +232,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, @@ -292,9 +294,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, @@ -321,7 +322,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, @@ -361,7 +362,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, @@ -388,7 +389,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, @@ -433,14 +434,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, @@ -485,14 +486,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, @@ -514,7 +515,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, }; @@ -550,7 +551,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, @@ -594,7 +599,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, @@ -603,9 +608,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, @@ -646,7 +650,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, @@ -1052,7 +1056,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, -- 2.54.0
