qemu-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]