diff options
| author | Chia-I Wu <olvaffe@gmail.com> | 2014-08-02 23:49:43 +0800 |
|---|---|---|
| committer | Chia-I Wu <olvaffe@gmail.com> | 2014-08-03 09:22:15 +0800 |
| commit | 88ca8bfd78f37b7a80553ba21e16938db3b86ec8 (patch) | |
| tree | e85aa692480715a77f51417dd42f69e9d398540c | |
| parent | d9645f2726c0540a0b5f34721f1426a60745454e (diff) | |
| download | usermoji-88ca8bfd78f37b7a80553ba21e16938db3b86ec8.tar.xz | |
xgl-generate: add _generate_icd_dispatch_entrypoints to Subcommand
| -rwxr-xr-x | xgl-generate.py | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/xgl-generate.py b/xgl-generate.py index eb27f0f5..73e1ec27 100755 --- a/xgl-generate.py +++ b/xgl-generate.py @@ -81,6 +81,26 @@ class Subcommand(object): %s; };""" % ";\n ".join(entries) + def _generate_icd_dispatch_entrypoints(self): + funcs = [] + for proto in self.protos: + if not xgl.is_dispatchable(proto): + continue + + decl = proto.c_func(prefix="xgl", attr="XGLAPI") + stmt = "(*disp)->%s" % proto.c_call() + if proto.ret != "XGL_VOID": + stmt = "return " + stmt + + funcs.append("%s\n" + "{\n" + " const struct icd_dispatch_table * const *disp =\n" + " (const struct icd_dispatch_table * const *) %s;\n" + " %s;\n" + "}" % (decl, proto.params[0].name, stmt)) + + return "\n\n".join(funcs) + class PrettyDummySubcommand(Subcommand): def generate_header(self): return "\n".join([ @@ -119,29 +139,9 @@ class LoaderSubcommand(Subcommand): "#include <xgl.h>", "#include <xglDbg.h>"]) - def _generate_api(self): - funcs = [] - for proto in self.protos: - if not xgl.is_dispatchable(proto): - continue - - decl = proto.c_func(prefix="xgl", attr="XGLAPI") - stmt = "(*disp)->%s" % proto.c_call() - if proto.ret != "XGL_VOID": - stmt = "return " + stmt - - funcs.append("%s\n" - "{\n" - " const struct icd_dispatch_table * const *disp =\n" - " (const struct icd_dispatch_table * const *) %s;\n" - " %s;\n" - "}" % (decl, proto.params[0].name, stmt)) - - return "\n\n".join(funcs) - def generate_body(self): body = [self._generate_icd_dispatch_table(), - self._generate_api()] + self._generate_icd_dispatch_entrypoints()] return "\n\n".join(body) |
