VirtualBox

source: vbox/trunk/src/VBox/Additions/common/crOpenGL/SunOS_i386_exports.py@ 63206

Last change on this file since 63206 was 62521, checked in by vboxsync, 8 years ago

(C) 2016

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 2.8 KB
Line 
1"""
2Copyright (C) 2009-2016 Oracle Corporation
3
4This file is part of VirtualBox Open Source Edition (OSE), as
5available from http://www.virtualbox.org. This file is free software;
6you can redistribute it and/or modify it under the terms of the GNU
7General Public License (GPL) as published by the Free Software
8Foundation, in version 2 as it comes in the "COPYING" file of the
9VirtualBox OSE distribution. VirtualBox OSE is distributed in the
10hope 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 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 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 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 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 gl%s" % func_name
90 print "\tleave"
91 print "\tret"
92 print "ENDPROC 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