From: José Fonseca Date: Fri, 19 Nov 2010 19:12:34 +0000 (+0000) Subject: Cleanup files. X-Git-Url: https://git.cworth.org/git?p=apitrace;a=commitdiff_plain;h=ad3c5a413e06c812f553edc87f9ffb30441b63df Cleanup files. --- diff --git a/format.py b/format.py deleted file mode 100644 index 9842f23..0000000 --- a/format.py +++ /dev/null @@ -1,171 +0,0 @@ -#!/usr/bin/env python -########################################################################## -# -# Copyright 2008-2009 VMware, Inc. -# All Rights Reserved. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -# -##########################################################################/ - - -import sys - - -class Formatter: - '''Plain formatter''' - - def __init__(self, stream): - self.stream = stream - - def text(self, text): - self.stream.write(text) - - def newline(self): - self.text('\n') - - def function(self, name): - self.text(name) - - def variable(self, name): - self.text(name) - - def literal(self, value): - self.text(str(value)) - - def address(self, addr): - self.text(str(addr)) - - -class AnsiFormatter(Formatter): - '''Formatter for plain-text files which outputs ANSI escape codes. See - http://en.wikipedia.org/wiki/ANSI_escape_code for more information - concerning ANSI escape codes. - ''' - - _csi = '\33[' - - _normal = '0m' - _bold = '1m' - _italic = '3m' - _red = '31m' - _green = '32m' - _blue = '34m' - - def _escape(self, code): - self.text(self._csi + code) - - def function(self, name): - self._escape(self._bold) - Formatter.function(self, name) - self._escape(self._normal) - - def variable(self, name): - self._escape(self._italic) - Formatter.variable(self, name) - self._escape(self._normal) - - def literal(self, value): - self._escape(self._blue) - Formatter.literal(self, value) - self._escape(self._normal) - - def address(self, value): - self._escape(self._green) - Formatter.address(self, value) - self._escape(self._normal) - - -class WindowsConsoleFormatter(Formatter): - '''Formatter for the Windows Console. See - http://code.activestate.com/recipes/496901/ for more information. - ''' - - STD_INPUT_HANDLE = -10 - STD_OUTPUT_HANDLE = -11 - STD_ERROR_HANDLE = -12 - - FOREGROUND_BLUE = 0x01 - FOREGROUND_GREEN = 0x02 - FOREGROUND_RED = 0x04 - FOREGROUND_INTENSITY = 0x08 - BACKGROUND_BLUE = 0x10 - BACKGROUND_GREEN = 0x20 - BACKGROUND_RED = 0x40 - BACKGROUND_INTENSITY = 0x80 - - _normal = FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED - _bold = FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_INTENSITY - _italic = FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED - _red = FOREGROUND_RED | FOREGROUND_INTENSITY - _green = FOREGROUND_GREEN | FOREGROUND_INTENSITY - _blue = FOREGROUND_BLUE | FOREGROUND_INTENSITY - - def __init__(self, stream): - Formatter.__init__(self, stream) - - if stream is sys.stdin: - nStdHandle = self.STD_INPUT_HANDLE - elif stream is sys.stdout: - nStdHandle = self.STD_OUTPUT_HANDLE - elif stream is sys.stderr: - nStdHandle = self.STD_ERROR_HANDLE - else: - nStdHandle = None - - if nStdHandle: - import ctypes - self.handle = ctypes.windll.kernel32.GetStdHandle(nStdHandle) - else: - self.handle = None - - def _attribute(self, attr): - if self.handle: - import ctypes - ctypes.windll.kernel32.SetConsoleTextAttribute(self.handle, attr) - - def function(self, name): - self._attribute(self._bold) - Formatter.function(self, name) - self._attribute(self._normal) - - def variable(self, name): - self._attribute(self._italic) - Formatter.variable(self, name) - self._attribute(self._normal) - - def literal(self, value): - self._attribute(self._blue) - Formatter.literal(self, value) - self._attribute(self._normal) - - def address(self, value): - self._attribute(self._green) - Formatter.address(self, value) - self._attribute(self._normal) - - -def DefaultFormatter(stream): - if sys.platform in ('linux2', 'cygwin'): - return AnsiFormatter(stream) - elif sys.platform in ('win32',): - return WindowsConsoleFormatter(stream) - else: - return Formatter(stream) - diff --git a/gl_trace.py b/gl_trace.py deleted file mode 100644 index fa4e19c..0000000 --- a/gl_trace.py +++ /dev/null @@ -1,117 +0,0 @@ -#!/usr/bin/python - -# Copyright 2008 VMware, Inc. -# Copyright 2004 IBM Corporation -# All Rights Reserved. -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# on the rights to use, copy, modify, merge, publish, distribute, sub -# license, and/or sell copies of the Software, and to permit persons to whom -# the Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice (including the next -# paragraph) shall be included in all copies or substantial portions of the -# Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. - -import gl_XML -import license -import sys, getopt - -type_map = { - 'void': 'Void', - 'int': 'Int', - 'float': 'Float', -} - -def parse_type(tokens, count = 0): - if count: - if tokens[-1] == '**': - return 'Array(Pointer(%s), "%s")' % (parse_type(tokens[:-1]), count) - if tokens[-1] == '*': - return 'Array(%s, "%s")' % (parse_type(tokens[:-1]), count) - else: - if tokens[-1] == '**': - return 'Pointer(Pointer(%s))' % parse_type(tokens[:-1]) - if tokens[-1] == '*': - return 'Pointer(%s)' % parse_type(tokens[:-1]) - if tokens[-1] == 'const': - return 'Const(%s)' % parse_type(tokens[:-1]) - if tokens[0] == 'const': - return 'Const(%s)' % parse_type(tokens[1:]) - assert len(tokens) == 1 - base = tokens[0] - return type_map.get(base, base) - -def get_type(t, count = 0): - tokens = t.split() - - return parse_type(tokens, count) - - -class PrintGlTable(gl_XML.gl_print_base): - def __init__(self): - gl_XML.gl_print_base.__init__(self) - - #self.header_tag = '_GLAPI_TABLE_H_' - self.name = "gl_trace.py (from Mesa)" - self.license = license.bsd_license_template % ( \ -"""Copyright (C) 1999-2003 Brian Paul All Rights Reserved. -(C) Copyright IBM Corporation 2004""", "BRIAN PAUL, IBM") - return - - def printBody(self, api): - abi = [ "1.0", "1.1", "1.2", "1.5", "GL_ARB_multitexture" ] - for pass_ in range(2): - for f in api.functionIterateByOffset(): - for name in f.entry_points: - [category, num] = api.get_category_for_name( name ) - args = [] - for p in f.parameters: - type = get_type(p.type_string(), p.count) - args.append('(%s, "%s")' % (type, p.name)) - arg_string = '[' + ', '.join(args) + ']' - if category in abi: - if pass_ == 0: - print ' DllFunction(%s, "gl%s", %s),' % (get_type(f.return_type), name, arg_string) - else: - if pass_ == 1: - print ' WglFunction(%s, "gl%s", %s),' % (get_type(f.return_type), name, arg_string) - - def printRealHeader(self): - return - - def printRealFooter(self): - print ']' - - -def show_usage(): - print "Usage: %s [-f input_file_name]" % sys.argv[0] - sys.exit(1) - -if __name__ == '__main__': - file_name = "gl_API.xml" - - try: - (args, trail) = getopt.getopt(sys.argv[1:], "f:") - except Exception,e: - show_usage() - - for (arg,val) in args: - if arg == "-f": - file_name = val - - printer = PrintGlTable() - - api = gl_XML.parse_GL_API( file_name ) - - printer.Print( api ) diff --git a/helpers/gl_trace.py b/helpers/gl_trace.py new file mode 100644 index 0000000..fa4e19c --- /dev/null +++ b/helpers/gl_trace.py @@ -0,0 +1,117 @@ +#!/usr/bin/python + +# Copyright 2008 VMware, Inc. +# Copyright 2004 IBM Corporation +# All Rights Reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# on the rights to use, copy, modify, merge, publish, distribute, sub +# license, and/or sell copies of the Software, and to permit persons to whom +# the Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice (including the next +# paragraph) shall be included in all copies or substantial portions of the +# Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +# IN THE SOFTWARE. + +import gl_XML +import license +import sys, getopt + +type_map = { + 'void': 'Void', + 'int': 'Int', + 'float': 'Float', +} + +def parse_type(tokens, count = 0): + if count: + if tokens[-1] == '**': + return 'Array(Pointer(%s), "%s")' % (parse_type(tokens[:-1]), count) + if tokens[-1] == '*': + return 'Array(%s, "%s")' % (parse_type(tokens[:-1]), count) + else: + if tokens[-1] == '**': + return 'Pointer(Pointer(%s))' % parse_type(tokens[:-1]) + if tokens[-1] == '*': + return 'Pointer(%s)' % parse_type(tokens[:-1]) + if tokens[-1] == 'const': + return 'Const(%s)' % parse_type(tokens[:-1]) + if tokens[0] == 'const': + return 'Const(%s)' % parse_type(tokens[1:]) + assert len(tokens) == 1 + base = tokens[0] + return type_map.get(base, base) + +def get_type(t, count = 0): + tokens = t.split() + + return parse_type(tokens, count) + + +class PrintGlTable(gl_XML.gl_print_base): + def __init__(self): + gl_XML.gl_print_base.__init__(self) + + #self.header_tag = '_GLAPI_TABLE_H_' + self.name = "gl_trace.py (from Mesa)" + self.license = license.bsd_license_template % ( \ +"""Copyright (C) 1999-2003 Brian Paul All Rights Reserved. +(C) Copyright IBM Corporation 2004""", "BRIAN PAUL, IBM") + return + + def printBody(self, api): + abi = [ "1.0", "1.1", "1.2", "1.5", "GL_ARB_multitexture" ] + for pass_ in range(2): + for f in api.functionIterateByOffset(): + for name in f.entry_points: + [category, num] = api.get_category_for_name( name ) + args = [] + for p in f.parameters: + type = get_type(p.type_string(), p.count) + args.append('(%s, "%s")' % (type, p.name)) + arg_string = '[' + ', '.join(args) + ']' + if category in abi: + if pass_ == 0: + print ' DllFunction(%s, "gl%s", %s),' % (get_type(f.return_type), name, arg_string) + else: + if pass_ == 1: + print ' WglFunction(%s, "gl%s", %s),' % (get_type(f.return_type), name, arg_string) + + def printRealHeader(self): + return + + def printRealFooter(self): + print ']' + + +def show_usage(): + print "Usage: %s [-f input_file_name]" % sys.argv[0] + sys.exit(1) + +if __name__ == '__main__': + file_name = "gl_API.xml" + + try: + (args, trail) = getopt.getopt(sys.argv[1:], "f:") + except Exception,e: + show_usage() + + for (arg,val) in args: + if arg == "-f": + file_name = val + + printer = PrintGlTable() + + api = gl_XML.parse_GL_API( file_name ) + + printer.Print( api ) diff --git a/model.py b/model.py deleted file mode 100644 index 8c461f7..0000000 --- a/model.py +++ /dev/null @@ -1,238 +0,0 @@ -#!/usr/bin/env python -########################################################################## -# -# Copyright 2008-2009 VMware, Inc. -# All Rights Reserved. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -# -##########################################################################/ - - -'''Trace data model.''' - - -import sys -import string -import format - -try: - from cStringIO import StringIO -except ImportError: - from StringIO import StringIO - - -class Node: - - def visit(self, visitor): - raise NotImplementedError - - def __str__(self): - stream = StringIO() - formatter = format.DefaultFormatter(stream) - pretty_printer = PrettyPrinter(formatter) - self.visit(pretty_printer) - return stream.getvalue() - - -class Literal(Node): - - def __init__(self, value): - self.value = value - - def visit(self, visitor): - visitor.visit_literal(self) - - -class NamedConstant(Node): - - def __init__(self, name): - self.name = name - - def visit(self, visitor): - visitor.visit_named_constant(self) - - -class Bitmask(Node): - - def __init__(self, elements): - self.elements = elements - - def visit(self, visitor): - visitor.visit_bitmask(self) - - -class Array(Node): - - def __init__(self, elements): - self.elements = elements - - def visit(self, visitor): - visitor.visit_array(self) - - -class Struct(Node): - - def __init__(self, name, members): - self.name = name - self.members = members - - def visit(self, visitor): - visitor.visit_struct(self) - - -class Pointer(Node): - - def __init__(self, address, value): - self.address = address - self.address = value - - def visit(self, visitor): - visitor.visit_pointer(self) - - -class Call(Node): - - def __init__(self, no, name, args, ret, attrs = None): - self.no = no - self.name = name - self.args = args - self.ret = ret - if attrs is None: - self.attrs = {} - else: - self.attrs = attrs - - def visit(self, visitor): - visitor.visit_call(self) - - -class Trace: - - def __init__(self, calls): - self.calls = calls - - def visit(self, visitor): - visitor.visit_trace(self) - - -class Visitor: - - def visit_literal(self, node): - raise NotImplementedError - - def visit_named_constant(self, node): - raise NotImplementedError - - def visit_bitmask(self, node): - raise NotImplementedError - - def visit_array(self, node): - raise NotImplementedError - - def visit_struct(self, node): - raise NotImplementedError - - def visit_pointer(self, node): - raise NotImplementedError - - def visit_call(self, node): - raise NotImplementedError - - def visit_trace(self, node): - raise NotImplementedError - - -class PrettyPrinter: - - def __init__(self, formatter): - self.formatter = formatter - - def visit_literal(self, node): - if isinstance(node.value, basestring): - if len(node.value) >= 4096 or node.value.strip(string.printable): - self.formatter.text('...') - return - - self.formatter.literal('"' + node.value + '"') - return - - self.formatter.literal(str(node.value)) - - def visit_named_constant(self, node): - self.formatter.literal(node.name) - - def visit_bitmask(self, node): - if len(node.elements) == 0: - self.formatter.literal('0') - return - if len(node.elements) > 1: - self.formatter.text('(') - sep = '' - for value in node.elements: - self.formatter.text(sep) - value.visit(self) - sep = ' | ' - if len(node.elements) > 1: - self.formatter.text(')') - - def visit_array(self, node): - self.formatter.text('{') - sep = '' - for value in node.elements: - self.formatter.text(sep) - value.visit(self) - sep = ', ' - self.formatter.text('}') - - def visit_struct(self, node): - self.formatter.text('{') - sep = '' - for name, value in node.members: - self.formatter.text(sep) - self.formatter.variable(name) - self.formatter.text(' = ') - value.visit(self) - sep = ', ' - self.formatter.text('}') - - def visit_pointer(self, node): - self.formatter.address(node.address) - - def visit_call(self, node): - self.formatter.text('%s ' % node.no) - self.formatter.function(node.name) - self.formatter.text('(') - sep = '' - for name, value in node.args: - self.formatter.text(sep) - self.formatter.variable(name) - self.formatter.text(' = ') - value.visit(self) - sep = ', ' - self.formatter.text(')') - if node.ret is not None: - self.formatter.text(' = ') - node.ret.visit(self) - - def visit_trace(self, node): - for call in node.calls: - call.visit(self) - self.formatter.newline() -