[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 35/48] qapi: Add size parser to StringInputVisitor
From: |
Andreas Färber |
Subject: |
[Qemu-devel] [PULL 35/48] qapi: Add size parser to StringInputVisitor |
Date: |
Mon, 10 Feb 2014 19:36:52 +0100 |
From: Paolo Bonzini <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Signed-off-by: Andreas Färber <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.5
- [Qemu-devel] [PULL 22/48] tests: Add rtl8139 qtest, (continued)
- [Qemu-devel] [PULL 22/48] tests: Add rtl8139 qtest, Andreas Färber, 2014/02/10
- [Qemu-devel] [PULL 30/48] ipack: QOM parent field cleanup for IPackBus, Andreas Färber, 2014/02/10
- [Qemu-devel] [PULL 29/48] ipack: Convert to QOM realize, Andreas Färber, 2014/02/10
- [Qemu-devel] [PULL 23/48] tests: Add pcnet qtest, Andreas Färber, 2014/02/10
- [Qemu-devel] [PULL 24/48] tests: Add eepro100 qtest, Andreas Färber, 2014/02/10
- [Qemu-devel] [PULL 26/48] tests: Add virtio-net qtest, Andreas Färber, 2014/02/10
- [Qemu-devel] [PULL 32/48] ipoctal232: QOM parent field cleanup, Andreas Färber, 2014/02/10
- [Qemu-devel] [PULL 31/48] ipack: QOM parent field cleanup for IPackDevice, Andreas Färber, 2014/02/10
- [Qemu-devel] [PULL 33/48] ipack: Move IndustryPack out of hw/char/, Andreas Färber, 2014/02/10
- [Qemu-devel] [PULL 34/48] qtest: Don't segfault with invalid -qtest option, Andreas Färber, 2014/02/10
- [Qemu-devel] [PULL 35/48] qapi: Add size parser to StringInputVisitor,
Andreas Färber <=
- [Qemu-devel] [PULL 39/48] qdev: Legacy properties are just strings, Andreas Färber, 2014/02/10
- [Qemu-devel] [PULL 36/48] qdev: Sizes are now parsed by StringInputVisitor, Andreas Färber, 2014/02/10
- [Qemu-devel] [PULL 37/48] qdev: Remove legacy parsers for hex8/32/64, Andreas Färber, 2014/02/10
- [Qemu-devel] [PULL 46/48] qdev: Add enum property types to QAPI schema, Andreas Färber, 2014/02/10
- [Qemu-devel] [PULL 43/48] qdev: Remove most legacy printers, Andreas Färber, 2014/02/10
- [Qemu-devel] [PULL 42/48] qdev: Use human mode in "info qtree", Andreas Färber, 2014/02/10
- [Qemu-devel] [PULL 48/48] qapi: Refine human printing of sizes, Andreas Färber, 2014/02/10
- [Qemu-devel] [PULL 41/48] qapi: Add human mode to StringOutputVisitor, Andreas Färber, 2014/02/10
- [Qemu-devel] [PULL 45/48] block: Handle "rechs" and "large" translation options, Andreas Färber, 2014/02/10
- [Qemu-devel] [PULL 38/48] qdev: Legacy properties are now read-only, Andreas Färber, 2014/02/10