[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 05/26] qapi: fixup command generation for functions
From: |
Luiz Capitulino |
Subject: |
[Qemu-devel] [PATCH 05/26] qapi: fixup command generation for functions that return list types |
Date: |
Fri, 30 Sep 2011 17:34:30 -0300 |
From: Anthony Liguori <address@hidden>
Signed-off-by: Anthony Liguori <address@hidden>
Signed-off-by: Luiz Capitulino <address@hidden>
---
scripts/qapi-commands.py | 23 +++++++++++++++--------
1 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/scripts/qapi-commands.py b/scripts/qapi-commands.py
index 2776804..c947ba4 100644
--- a/scripts/qapi-commands.py
+++ b/scripts/qapi-commands.py
@@ -17,12 +17,18 @@ import os
import getopt
import errno
+def type_visitor(name):
+ if type(name) == list:
+ return 'visit_type_%sList' % name[0]
+ else:
+ return 'visit_type_%s' % name
+
def generate_decl_enum(name, members, genlist=True):
return mcgen('''
-void visit_type_%(name)s(Visitor *m, %(name)s * obj, const char *name, Error
**errp);
+void %(visitor)s(Visitor *m, %(name)s * obj, const char *name, Error **errp);
''',
- name=name)
+ visitor=type_visitor(name))
def generate_command_decl(name, args, ret_type):
arglist=""
@@ -146,9 +152,10 @@ if (has_%(c_name)s) {
c_name=c_var(argname), name=argname)
push_indent()
ret += mcgen('''
-visit_type_%(argtype)s(v, &%(c_name)s, "%(name)s", errp);
+%(visitor)s(v, &%(c_name)s, "%(name)s", errp);
''',
- c_name=c_var(argname), name=argname, argtype=argtype)
+ c_name=c_var(argname), name=argname, argtype=argtype,
+ visitor=type_visitor(argtype))
if optional:
pop_indent()
ret += mcgen('''
@@ -179,18 +186,18 @@ static void qmp_marshal_output_%(c_name)s(%(c_ret_type)s
ret_in, QObject **ret_o
Visitor *v;
v = qmp_output_get_visitor(mo);
- visit_type_%(ret_type)s(v, &ret_in, "unused", errp);
+ %(visitor)s(v, &ret_in, "unused", errp);
if (!error_is_set(errp)) {
*ret_out = qmp_output_get_qobject(mo);
}
qmp_output_visitor_cleanup(mo);
v = qapi_dealloc_get_visitor(md);
- visit_type_%(ret_type)s(v, &ret_in, "unused", errp);
+ %(visitor)s(v, &ret_in, "unused", errp);
qapi_dealloc_visitor_cleanup(md);
}
''',
- c_ret_type=c_type(ret_type), c_name=c_var(name),
- ret_type=ret_type)
+ c_ret_type=c_type(ret_type), c_name=c_var(name),
+ visitor=type_visitor(ret_type))
return ret
--
1.7.7.rc0.72.g4b5ea
- [Qemu-devel] [PATCH v2 00/26]: First round of QAPI conversions, Luiz Capitulino, 2011/09/30
- [Qemu-devel] [PATCH 05/26] qapi: fixup command generation for functions that return list types,
Luiz Capitulino <=
- [Qemu-devel] [PATCH 04/26] qapi: use middle mode in QMP server, Luiz Capitulino, 2011/09/30
- [Qemu-devel] [PATCH 07/26] qapi: generate qapi_free_* functions for *List types, Luiz Capitulino, 2011/09/30
- [Qemu-devel] [PATCH 09/26] qapi: dealloc visitor, support freeing of nested lists, Luiz Capitulino, 2011/09/30
- [Qemu-devel] [PATCH 06/26] qapi: dealloc visitor, fix premature free and iteration logic, Luiz Capitulino, 2011/09/30
- [Qemu-devel] [PATCH 11/26] qapi: Don't use c_var() on enum strings, Luiz Capitulino, 2011/09/30
- [Qemu-devel] [PATCH 10/26] qapi: modify visitor code generation for list iteration, Luiz Capitulino, 2011/09/30
- [Qemu-devel] [PATCH 02/26] qerror: add qerror_report_err(), Luiz Capitulino, 2011/09/30
- [Qemu-devel] [PATCH 08/26] qapi: add test cases for generated free functions, Luiz Capitulino, 2011/09/30
- [Qemu-devel] [PATCH 12/26] qapi: Automatically generate a _MAX value for enums, Luiz Capitulino, 2011/09/30
- [Qemu-devel] [PATCH 13/26] qapi: convert query-name, Luiz Capitulino, 2011/09/30