[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 2/7] qapi: convert NumaOptions into a flat union
From: |
Kővágó, Zoltán |
Subject: |
[Qemu-devel] [PATCH 2/7] qapi: convert NumaOptions into a flat union |
Date: |
Mon, 7 Sep 2015 14:08:07 +0200 |
Changes the NumaOptions to flat union from a simple one. This is
required by my later OptsVisitor patch to preserve backward
compatibility.
Strictly speaking this would break QMP compatibility (as specified in
docs/qapi-code-gen.txt), but since no QMP command use this structure,
it's not an issue. The -numa option syntax doesn't change. There are
some changes in the C api, but this patch fixes them.
Signed-off-by: Kővágó, Zoltán <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
---
Changes from v2:
* renamed NumaDriver to NumaOptionType
numa.c | 4 ++--
qapi-schema.json | 47 ++++++++++++++++++++++++++++++++++++-----------
2 files changed, 38 insertions(+), 13 deletions(-)
diff --git a/numa.c b/numa.c
index 402804b..e79620f 100644
--- a/numa.c
+++ b/numa.c
@@ -226,8 +226,8 @@ static int parse_numa(void *opaque, QemuOpts *opts, Error
**errp)
goto error;
}
- switch (object->kind) {
- case NUMA_OPTIONS_KIND_NODE:
+ switch (object->type) {
+ case NUMA_OPTION_TYPE_NODE:
numa_node_parse(object->node, opts, &err);
if (err) {
goto error;
diff --git a/qapi-schema.json b/qapi-schema.json
index 67fef37..9e4fe5d 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -3550,17 +3550,6 @@
'data': { '*console':'int', 'events': [ 'InputEvent' ] } }
##
-# @NumaOptions
-#
-# A discriminated record of NUMA options. (for OptsVisitor)
-#
-# Since 2.1
-##
-{ 'union': 'NumaOptions',
- 'data': {
- 'node': 'NumaNodeOptions' }}
-
-##
# @NumaNodeOptions
#
# Create a guest NUMA node. (for OptsVisitor)
@@ -3587,6 +3576,42 @@
'*memdev': 'str' }}
##
+# @NumaOptionType
+#
+# List of possible numa drivers.
+#
+# Since: 2.5
+##
+{ 'enum': 'NumaOptionType',
+ 'data': [ 'node' ] }
+
+##
+# @NumaCommonOptions
+#
+# Common set of numa options.
+#
+# @type: the numa driver to use
+#
+# Since: 2.5
+##
+{ 'struct': 'NumaCommonOptions',
+ 'data': {
+ 'type': 'NumaOptionType' } }
+
+##
+# @NumaOptions
+#
+# A discriminated record of NUMA options. (for OptsVisitor)
+#
+# Since 2.1
+##
+{ 'union': 'NumaOptions',
+ 'base': 'NumaCommonOptions',
+ 'discriminator': 'type',
+ 'data': {
+ 'node': 'NumaNodeOptions' }}
+
+##
# @HostMemPolicy
#
# Host memory policy types
--
2.5.1
- [Qemu-devel] [PATCH 0/7] qapi-flattening and preparation of -audiodev option, Kővágó, Zoltán, 2015/09/07
- [Qemu-devel] [PATCH 1/7] qapi: support implicit structs in OptsVisitor, Kővágó, Zoltán, 2015/09/07
- [Qemu-devel] [PATCH 2/7] qapi: convert NumaOptions into a flat union,
Kővágó, Zoltán <=
- [Qemu-devel] [PATCH 3/7] net: remove NetLegacy struct, Kővágó, Zoltán, 2015/09/07
- [Qemu-devel] [PATCH 6/7] qapi: reorder NetdevBase and Netdev, Kővágó, Zoltán, 2015/09/07
- [Qemu-devel] [PATCH 4/7] net: use Netdev instead of NetClientOptions in client init, Kővágó, Zoltán, 2015/09/07
- [Qemu-devel] [PATCH 7/7] qapi: support nested structs in OptsVisitor, Kővágó, Zoltán, 2015/09/07