Skip to content

Commit

Permalink
qapi: Add size parser to StringInputVisitor
Browse files Browse the repository at this point in the history
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
  • Loading branch information
bonzini authored and afaerber committed Feb 14, 2014
1 parent 23802b4 commit a5829cc
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions qapi/string-input-visitor.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
{
Expand Down Expand Up @@ -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");
return;
}
if (err) {
error_propagate(errp, err);
return;
}

*obj = val;
}

static void parse_type_bool(Visitor *v, bool *obj, const char *name,
Error **errp)
{
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit a5829cc

Please sign in to comment.