[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 01/12] qapi: add size parser to StringInputVisitor
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 01/12] qapi: add size parser to StringInputVisitor |
Date: |
Thu, 30 Jan 2014 14:09:43 +0100 |
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");
+ 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;
--
1.8.4.2
- [Qemu-devel] [PATCH 00/12] qdev: cleanup legacy properties, Paolo Bonzini, 2014/01/30
- [Qemu-devel] [PATCH 01/12] qapi: add size parser to StringInputVisitor,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 02/12] qdev: sizes are now parsed by StringInputVisitor, Paolo Bonzini, 2014/01/30
- [Qemu-devel] [PATCH 03/12] qdev: remove legacy parsers for hex8/32/64, Paolo Bonzini, 2014/01/30
- [Qemu-devel] [PATCH 04/12] qdev: legacy properties are now read-only, Paolo Bonzini, 2014/01/30
- [Qemu-devel] [PATCH 05/12] qdev: legacy properties are just strings, Paolo Bonzini, 2014/01/30
- [Qemu-devel] [PATCH 06/12] qdev: inline qdev_prop_parse, Paolo Bonzini, 2014/01/30