qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 01/12] qapi: add size parser to StringInputVisit


From: Andreas Färber
Subject: Re: [Qemu-devel] [PATCH 01/12] qapi: add size parser to StringInputVisitor
Date: Wed, 05 Feb 2014 18:13:24 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0

Am 30.01.2014 14:09, schrieb Paolo Bonzini:
> Signed-off-by: Paolo Bonzini <address@hidden>
> ---
>  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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]