VirtualBox

source: vbox/trunk/src/VBox/Additions/common/crOpenGL/SunOS_i386_exports_dri.py@ 35263

Last change on this file since 35263 was 30457, checked in by vboxsync, 14 years ago

crOpenGL: build fix

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 2.9 KB
Line 
1#
2# Copyright (C) 2009 Oracle Corporation
3#
4# This file is part of VirtualBox Open Source Edition (OSE), as
5# available from http://www.virtualbox.org. This file is free software;
6# you can redistribute it and/or modify it under the terms of the GNU
7# General Public License (GPL) as published by the Free Software
8# Foundation, in version 2 as it comes in the "COPYING" file of the
9# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
10# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
11#
12
13import sys
14
15import apiutil
16
17
18def GenerateEntrypoints():
19
20 #apiutil.CopyrightC()
21
22 # Get sorted list of dispatched functions.
23 # The order is very important - it must match cr_opcodes.h
24 # and spu_dispatch_table.h
25 print '%include "iprt/asmdefs.mac"'
26 print ""
27 print "%ifdef RT_ARCH_AMD64"
28 print "extern glim"
29 print "%else ; X86"
30 print "extern glim"
31 print "%endif"
32 print ""
33
34 keys = apiutil.GetDispatchedFunctions(sys.argv[1]+"/APIspec.txt")
35
36 for index in range(len(keys)):
37 func_name = keys[index]
38 if apiutil.Category(func_name) == "Chromium":
39 continue
40 if apiutil.Category(func_name) == "VBox":
41 continue
42
43 print "BEGINPROC_EXPORTED cr_gl%s" % func_name
44 print "%ifdef RT_ARCH_AMD64"
45 print "\tjmp \t[glim+%d wrt rip wrt ..gotpcrel]" % (8*index)
46 print "%else ; X86"
47 print "\tjmp \t[glim+%d wrt ..gotpc]" % (4*index)
48 print "%endif"
49 print "ENDPROC cr_gl%s" % func_name
50 print ""
51
52
53 print ';'
54 print '; Aliases'
55 print ';'
56
57 # Now loop over all the functions and take care of any aliases
58 allkeys = apiutil.GetAllFunctions(sys.argv[1]+"/APIspec.txt")
59 for func_name in allkeys:
60 if "omit" in apiutil.ChromiumProps(func_name):
61 continue
62
63 if func_name in keys:
64 # we already processed this function earlier
65 continue
66
67 # alias is the function we're aliasing
68 alias = apiutil.Alias(func_name)
69 if alias:
70 # this dict lookup should never fail (raise an exception)!
71 index = keys.index(alias)
72 print "BEGINPROC_EXPORTED cr_gl%s" % func_name
73 print "%ifdef RT_ARCH_AMD64"
74 print "\tjmp \t[glim+%d wrt rip wrt ..gotpcrel]" % (8*index)
75 print "%else ; X86"
76 print "\tjmp \t[glim+%d wrt ..gotpc]" % (4*index)
77 print "%endif"
78 print "ENDPROC cr_gl%s" % func_name
79 print ""
80
81
82 print ';'
83 print '; No-op stubs'
84 print ';'
85
86 # Now generate no-op stub functions
87 for func_name in allkeys:
88 if "stub" in apiutil.ChromiumProps(func_name):
89 print "BEGINPROC_EXPORTED cr_gl%s" % func_name
90 print "\tleave"
91 print "\tret"
92 print "ENDPROC cr_gl%s" % func_name
93 print ""
94
95
96GenerateEntrypoints()
97
Note: See TracBrowser for help on using the repository browser.

© 2023 Oracle
ContactPrivacy policyTerms of Use