Am 30.01.2014 14:09, schrieb Paolo Bonzini: > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > qapi/string-input-visitor.c | 24 ++++++++++++++++++++++++ > 1 file changed, 24 insertions(+) > > diff --git a/qapi/string-input-visitor.c b/qapi/string-input-visitor.c > index 8f1bc41..793548a 100644 > --- a/qapi/string-input-visitor.c > +++ b/qapi/string-input-visitor.c > @@ -14,6 +14,7 @@ > #include "qapi/string-input-visitor.h" > #include "qapi/visitor-impl.h" > #include "qapi/qmp/qerror.h" > +#include "qemu/option.h" > > struct StringInputVisitor > { > @@ -41,6 +42,28 @@ static void parse_type_int(Visitor *v, int64_t *obj, const > char *name, > *obj = val; > } > > +static void parse_type_size(Visitor *v, uint64_t *obj, const char *name, > + Error **errp) > +{ > + StringInputVisitor *siv = DO_UPCAST(StringInputVisitor, visitor, v); > + Error *err = NULL; > + uint64_t val; > + > + if (siv->string) { > + parse_option_size(name, siv->string, &val, &err); > + } else { > + error_set(errp, QERR_INVALID_PARAMETER_TYPE, name ? name : "null", > + "size");
error_setg()? Otherwise looks fine. CC'ing Luiz. Andreas > + return; > + } > + if (err) { > + error_propagate(errp, err); > + return; > + } > + > + *obj = val; > +} > + > static void parse_type_bool(Visitor *v, bool *obj, const char *name, > Error **errp) > { > @@ -128,6 +151,7 @@ StringInputVisitor *string_input_visitor_new(const char > *str) > > v->visitor.type_enum = input_type_enum; > v->visitor.type_int = parse_type_int; > + v->visitor.type_size = parse_type_size; > v->visitor.type_bool = parse_type_bool; > v->visitor.type_str = parse_type_str; > v->visitor.type_number = parse_type_number; > -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg