[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 01/52] qapi: support alternates in OptsVisitor
From: |
Kővágó, Zoltán |
Subject: |
[Qemu-devel] [PATCH v2 01/52] qapi: support alternates in OptsVisitor |
Date: |
Sun, 23 Dec 2018 21:51:37 +0100 |
They are required for flat unions (you still have to allocate the
structs).
Signed-off-by: Kővágó, Zoltán <address@hidden>
---
include/qapi/opts-visitor.h | 7 +++----
qapi/opts-visitor.c | 16 ++++++++++++++++
2 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/include/qapi/opts-visitor.h b/include/qapi/opts-visitor.h
index 9b989e7e08..ca044e3b33 100644
--- a/include/qapi/opts-visitor.h
+++ b/include/qapi/opts-visitor.h
@@ -29,10 +29,9 @@ typedef struct OptsVisitor OptsVisitor;
* - values below INT64_MIN or LLONG_MIN are rejected,
* - values above INT64_MAX or LLONG_MAX are rejected.
*
- * The Opts input visitor does not implement support for visiting QAPI
- * alternates, numbers (other than integers), null, or arbitrary
- * QTypes. It also requires a non-null list argument to
- * visit_start_list().
+ * The Opts input visitor does not implement support for visiting numbers
+ * (other than integers), null, or arbitrary QTypes. It also requires a
+ * non-null list argument to visit_start_list().
*/
Visitor *opts_visitor_new(const QemuOpts *opts);
diff --git a/qapi/opts-visitor.c b/qapi/opts-visitor.c
index 324b197495..4af6043b75 100644
--- a/qapi/opts-visitor.c
+++ b/qapi/opts-visitor.c
@@ -156,6 +156,13 @@ opts_start_struct(Visitor *v, const char *name, void **obj,
}
}
+static void
+opts_start_alternate(Visitor *v, const char *name, GenericAlternate **obj,
+ size_t size, Error **errp)
+{
+ opts_start_struct(v, name, (void **)obj, size, errp);
+}
+
static void
opts_check_struct(Visitor *v, Error **errp)
@@ -198,6 +205,12 @@ opts_end_struct(Visitor *v, void **obj)
ov->fake_id_opt = NULL;
}
+static void
+opts_end_alternate(Visitor *v, void **obj)
+{
+ opts_end_struct(v, obj);
+}
+
static GQueue *
lookup_distinct(const OptsVisitor *ov, const char *name, Error **errp)
@@ -547,6 +560,9 @@ opts_visitor_new(const QemuOpts *opts)
ov->visitor.check_struct = &opts_check_struct;
ov->visitor.end_struct = &opts_end_struct;
+ ov->visitor.start_alternate = &opts_start_alternate;
+ ov->visitor.end_alternate = &opts_end_alternate;
+
ov->visitor.start_list = &opts_start_list;
ov->visitor.next_list = &opts_next_list;
ov->visitor.check_list = &opts_check_list;
--
2.20.1
- [Qemu-devel] [PATCH v2 00/52] Audio 5.1 patches, Kővágó, Zoltán, 2018/12/23
- [Qemu-devel] [PATCH v2 01/52] qapi: support alternates in OptsVisitor,
Kővágó, Zoltán <=
- [Qemu-devel] [PATCH v2 03/52] qapi: qapi for audio backends, Kővágó, Zoltán, 2018/12/23
- [Qemu-devel] [PATCH v2 05/52] audio: -audiodev command line option: documentation, Kővágó, Zoltán, 2018/12/23
- [Qemu-devel] [PATCH v2 02/52] qapi: support nested structs in OptsVisitor, Kővágó, Zoltán, 2018/12/23
- [Qemu-devel] [PATCH v2 07/52] alsaaudio: port to -audiodev config, Kővágó, Zoltán, 2018/12/23
- [Qemu-devel] [PATCH v2 09/52] dsoundaudio: port to -audiodev config, Kővágó, Zoltán, 2018/12/23
- [Qemu-devel] [PATCH v2 04/52] audio: use qapi AudioFormat instead of audfmt_e, Kővágó, Zoltán, 2018/12/23
- [Qemu-devel] [PATCH v2 08/52] coreaudio: port to -audiodev config, Kővágó, Zoltán, 2018/12/23
- [Qemu-devel] [PATCH v2 13/52] sdlaudio: port to -audiodev config, Kővágó, Zoltán, 2018/12/23
- [Qemu-devel] [PATCH v2 06/52] audio: -audiodev command line option basic implementation, Kővágó, Zoltán, 2018/12/23
- [Qemu-devel] [PATCH v2 14/52] spiceaudio: port to -audiodev config, Kővágó, Zoltán, 2018/12/23