diff --git a/qemu/include/qapi/visitor-impl.h b/qemu/include/qapi/visitor-impl.h index 09bb0fd4..f7c4a749 100644 --- a/qemu/include/qapi/visitor-impl.h +++ b/qemu/include/qapi/visitor-impl.h @@ -34,8 +34,10 @@ struct Visitor const char *kind, const char *name, Error **errp); void (*get_next_type)(Visitor *v, int *kind, const int *qobjects, const char *name, Error **errp); - - void (*type_int)(Visitor *v, int64_t *obj, const char *name, Error **errp); + /* Must be set. */ + void (*type_int64)(Visitor *v, int64_t *obj, const char *name, + Error **errp); + /* Must be set. */ void (*type_bool)(Visitor *v, bool *obj, const char *name, Error **errp); void (*type_str)(Visitor *v, char **obj, const char *name, Error **errp); void (*type_number)(Visitor *v, double *obj, const char *name, @@ -52,7 +54,6 @@ struct Visitor void (*type_int8)(Visitor *v, int8_t *obj, const char *name, Error **errp); void (*type_int16)(Visitor *v, int16_t *obj, const char *name, Error **errp); void (*type_int32)(Visitor *v, int32_t *obj, const char *name, Error **errp); - void (*type_int64)(Visitor *v, int64_t *obj, const char *name, Error **errp); /* visit_type_size() falls back to (*type_uint64)() if type_size is unset */ void (*type_size)(Visitor *v, uint64_t *obj, const char *name, Error **errp); bool (*start_union)(Visitor *v, bool data_present, Error **errp); diff --git a/qemu/qapi/qapi-dealloc-visitor.c b/qemu/qapi/qapi-dealloc-visitor.c index 676bcb20..b970750e 100644 --- a/qemu/qapi/qapi-dealloc-visitor.c +++ b/qemu/qapi/qapi-dealloc-visitor.c @@ -137,8 +137,8 @@ static void qapi_dealloc_type_str(Visitor *v, char **obj, const char *name, } } -static void qapi_dealloc_type_int(Visitor *v, int64_t *obj, const char *name, - Error **errp) +static void qapi_dealloc_type_int64(Visitor *v, int64_t *obj, const char *name, + Error **errp) { } @@ -212,7 +212,7 @@ QapiDeallocVisitor *qapi_dealloc_visitor_new(void) v->visitor.next_list = qapi_dealloc_next_list; v->visitor.end_list = qapi_dealloc_end_list; v->visitor.type_enum = qapi_dealloc_type_enum; - v->visitor.type_int = qapi_dealloc_type_int; + v->visitor.type_int64 = qapi_dealloc_type_int64; v->visitor.type_bool = qapi_dealloc_type_bool; v->visitor.type_str = qapi_dealloc_type_str; v->visitor.type_number = qapi_dealloc_type_number; diff --git a/qemu/qapi/qapi-visit-core.c b/qemu/qapi/qapi-visit-core.c index 5f009278..aa43a301 100644 --- a/qemu/qapi/qapi-visit-core.c +++ b/qemu/qapi/qapi-visit-core.c @@ -98,7 +98,7 @@ void visit_type_enum(Visitor *v, int *obj, const char *strings[], void visit_type_int(Visitor *v, int64_t *obj, const char *name, Error **errp) { - v->type_int(v, obj, name, errp); + v->type_int64(v, obj, name, errp); } void visit_type_uint8(Visitor *v, uint8_t *obj, const char *name, Error **errp) @@ -109,8 +109,10 @@ void visit_type_uint8(Visitor *v, uint8_t *obj, const char *name, Error **errp) v->type_uint8(v, obj, name, errp); } else { value = *obj; - v->type_int(v, &value, name, errp); + v->type_int64(v, &value, name, errp); if (value < 0 || value > UINT8_MAX) { + /* FIXME questionable reuse of errp if callback changed + value on error */ error_setg(errp, QERR_INVALID_PARAMETER_VALUE, name ? name : "null", "uint8_t"); return; @@ -127,8 +129,10 @@ void visit_type_uint16(Visitor *v, uint16_t *obj, const char *name, Error **errp v->type_uint16(v, obj, name, errp); } else { value = *obj; - v->type_int(v, &value, name, errp); + v->type_int64(v, &value, name, errp); if (value < 0 || value > UINT16_MAX) { + /* FIXME questionable reuse of errp if callback changed + value on error */ error_setg(errp, QERR_INVALID_PARAMETER_VALUE, name ? name : "null", "uint16_t"); return; @@ -145,8 +149,10 @@ void visit_type_uint32(Visitor *v, uint32_t *obj, const char *name, Error **errp v->type_uint32(v, obj, name, errp); } else { value = *obj; - v->type_int(v, &value, name, errp); + v->type_int64(v, &value, name, errp); if (value < 0 || value > UINT32_MAX) { + /* FIXME questionable reuse of errp if callback changed + value on error */ error_setg(errp, QERR_INVALID_PARAMETER_VALUE, name ? name : "null", "uint32_t"); return; @@ -163,7 +169,7 @@ void visit_type_uint64(Visitor *v, uint64_t *obj, const char *name, Error **errp v->type_uint64(v, obj, name, errp); } else { value = *obj; - v->type_int(v, &value, name, errp); + v->type_int64(v, &value, name, errp); *obj = value; } } @@ -176,8 +182,10 @@ void visit_type_int8(Visitor *v, int8_t *obj, const char *name, Error **errp) v->type_int8(v, obj, name, errp); } else { value = *obj; - v->type_int(v, &value, name, errp); + v->type_int64(v, &value, name, errp); if (value < INT8_MIN || value > INT8_MAX) { + /* FIXME questionable reuse of errp if callback changed + value on error */ error_setg(errp, QERR_INVALID_PARAMETER_VALUE, name ? name : "null", "int8_t"); return; @@ -194,8 +202,10 @@ void visit_type_int16(Visitor *v, int16_t *obj, const char *name, Error **errp) v->type_int16(v, obj, name, errp); } else { value = *obj; - v->type_int(v, &value, name, errp); + v->type_int64(v, &value, name, errp); if (value < INT16_MIN || value > INT16_MAX) { + /* FIXME questionable reuse of errp if callback changed + value on error */ error_setg(errp, QERR_INVALID_PARAMETER_VALUE, name ? name : "null", "int16_t"); return; @@ -212,8 +222,10 @@ void visit_type_int32(Visitor *v, int32_t *obj, const char *name, Error **errp) v->type_int32(v, obj, name, errp); } else { value = *obj; - v->type_int(v, &value, name, errp); + v->type_int64(v, &value, name, errp); if (value < INT32_MIN || value > INT32_MAX) { + /* FIXME questionable reuse of errp if callback changed + value on error */ error_setg(errp, QERR_INVALID_PARAMETER_VALUE, name ? name : "null", "int32_t"); return; @@ -224,11 +236,7 @@ void visit_type_int32(Visitor *v, int32_t *obj, const char *name, Error **errp) void visit_type_int64(Visitor *v, int64_t *obj, const char *name, Error **errp) { - if (v->type_int64) { - v->type_int64(v, obj, name, errp); - } else { - v->type_int(v, obj, name, errp); - } + v->type_int64(v, obj, name, errp); } void visit_type_size(Visitor *v, uint64_t *obj, const char *name, Error **errp) @@ -241,7 +249,7 @@ void visit_type_size(Visitor *v, uint64_t *obj, const char *name, Error **errp) v->type_uint64(v, obj, name, errp); } else { value = *obj; - v->type_int(v, &value, name, errp); + v->type_int64(v, &value, name, errp); *obj = value; } } diff --git a/qemu/qapi/qmp-input-visitor.c b/qemu/qapi/qmp-input-visitor.c index 4c494794..47ba907f 100644 --- a/qemu/qapi/qmp-input-visitor.c +++ b/qemu/qapi/qmp-input-visitor.c @@ -222,8 +222,8 @@ static void qmp_input_get_next_type(Visitor *v, int *kind, const int *qobjects, *kind = qobjects[qobject_type(qobj)]; } -static void qmp_input_type_int(Visitor *v, int64_t *obj, const char *name, - Error **errp) +static void qmp_input_type_int64(Visitor *v, int64_t *obj, const char *name, + Error **errp) { QmpInputVisitor *qiv = to_qiv(v); QInt *qint = qobject_to_qint(qmp_input_get_object(qiv, name, true)); @@ -330,7 +330,7 @@ QmpInputVisitor *qmp_input_visitor_new(QObject *obj) v->visitor.next_list = qmp_input_next_list; v->visitor.end_list = qmp_input_end_list; v->visitor.type_enum = input_type_enum; - v->visitor.type_int = qmp_input_type_int; + v->visitor.type_int64 = qmp_input_type_int64; v->visitor.type_bool = qmp_input_type_bool; v->visitor.type_str = qmp_input_type_str; v->visitor.type_number = qmp_input_type_number; diff --git a/qemu/qapi/qmp-output-visitor.c b/qemu/qapi/qmp-output-visitor.c index 021165c7..e0d50f78 100644 --- a/qemu/qapi/qmp-output-visitor.c +++ b/qemu/qapi/qmp-output-visitor.c @@ -156,8 +156,8 @@ static void qmp_output_end_list(Visitor *v, Error **errp) qmp_output_pop(qov); } -static void qmp_output_type_int(Visitor *v, int64_t *obj, const char *name, - Error **errp) +static void qmp_output_type_int64(Visitor *v, int64_t *obj, const char *name, + Error **errp) { QmpOutputVisitor *qov = to_qov(v); qmp_output_add(qov, name, qint_from_int(*obj)); @@ -231,7 +231,7 @@ QmpOutputVisitor *qmp_output_visitor_new(void) v->visitor.next_list = qmp_output_next_list; v->visitor.end_list = qmp_output_end_list; v->visitor.type_enum = output_type_enum; - v->visitor.type_int = qmp_output_type_int; + v->visitor.type_int64 = qmp_output_type_int64; v->visitor.type_bool = qmp_output_type_bool; v->visitor.type_str = qmp_output_type_str; v->visitor.type_number = qmp_output_type_number; diff --git a/qemu/qapi/string-input-visitor.c b/qemu/qapi/string-input-visitor.c index c880b006..f0bdf82c 100644 --- a/qemu/qapi/string-input-visitor.c +++ b/qemu/qapi/string-input-visitor.c @@ -185,8 +185,8 @@ end_list(Visitor *v, Error **errp) siv->head = true; } -static void parse_type_int(Visitor *v, int64_t *obj, const char *name, - Error **errp) +static void parse_type_int64(Visitor *v, int64_t *obj, const char *name, + Error **errp) { StringInputVisitor *siv = to_siv(v); @@ -315,7 +315,7 @@ StringInputVisitor *string_input_visitor_new(const char *str) v = g_malloc0(sizeof(*v)); v->visitor.type_enum = input_type_enum; - v->visitor.type_int = parse_type_int; + v->visitor.type_int64 = parse_type_int64; v->visitor.type_size = NULL; v->visitor.type_bool = parse_type_bool; v->visitor.type_str = parse_type_str;