[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 1/3] qapi: convert NumaOptions into a flat union
From: |
Kővágó, Zoltán |
Subject: |
[Qemu-devel] [PATCH v2 1/3] qapi: convert NumaOptions into a flat union |
Date: |
Wed, 23 Sep 2015 16:27:34 +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 v1:
* fixed documentation
numa.c | 2 +-
qapi-schema.json | 49 ++++++++++++++++++++++++++++++++++++++-----------
2 files changed, 39 insertions(+), 12 deletions(-)
diff --git a/numa.c b/numa.c
index 16a8c41..9cd0c84 100644
--- a/numa.c
+++ b/numa.c
@@ -227,7 +227,7 @@ static int parse_numa(void *opaque, QemuOpts *opts, Error
**errp)
}
switch (object->type) {
- case NUMA_OPTIONS_KIND_NODE:
+ 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 263053d..72827f8 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -3573,17 +3573,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)
@@ -3610,6 +3599,44 @@
'*memdev': 'str' }}
##
+# @NumaOptionType
+#
+# NUMA command-line option type.
+#
+# @node: Create a guest NUMA node. See @NumaNodeOptions.
+#
+# Since: 2.5
+##
+{ 'enum': 'NumaOptionType',
+ 'data': [ 'node' ] }
+
+##
+# @NumaCommonOptions
+#
+# Common set of numa options.
+#
+# @type: NUMA command-line option type.
+#
+# 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.2