[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 05/21] qapi: fixup command generation for functions
From: |
Luiz Capitulino |
Subject: |
[Qemu-devel] [PATCH 05/21] qapi: fixup command generation for functions that return list types |
Date: |
Wed, 28 Sep 2011 11:44:29 -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 v1 00/21]: First round of QAPI conversions, Luiz Capitulino, 2011/09/28
- [Qemu-devel] [PATCH 02/21] qerror: add qerror_report_err(), Luiz Capitulino, 2011/09/28
- [Qemu-devel] [PATCH 03/21] qapi: add code generation support for middle mode, Luiz Capitulino, 2011/09/28
- [Qemu-devel] [PATCH 04/21] qapi: use middle mode in QMP server, Luiz Capitulino, 2011/09/28
- [Qemu-devel] [PATCH 01/21] error: let error_is_type take a NULL error, Luiz Capitulino, 2011/09/28
- [Qemu-devel] [PATCH 07/21] qapi: generate qapi_free_* functions for *List types, Luiz Capitulino, 2011/09/28
- [Qemu-devel] [PATCH 05/21] qapi: fixup command generation for functions that return list types,
Luiz Capitulino <=
- [Qemu-devel] [PATCH 08/21] qapi: add test cases for generated free functions, Luiz Capitulino, 2011/09/28
- [Qemu-devel] [PATCH 09/21] qapi: dealloc visitor, support freeing of nested lists, Luiz Capitulino, 2011/09/28
- [Qemu-devel] [PATCH 11/21] qapi: convert query-name, Luiz Capitulino, 2011/09/28
- [Qemu-devel] [PATCH 12/21] qapi: Convert query-version, Luiz Capitulino, 2011/09/28
- [Qemu-devel] [PATCH 16/21] qapi: Convert query-chardev, Luiz Capitulino, 2011/09/28