blob: a9e69194540bb4889b23ef8dee6b3ee50d9c4c73 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
--- src/VBox/Additions/common/crOpenGL/FreeBSD_i386_exports_dri.py.orig 2020-06-26 09:53:28 UTC
+++ src/VBox/Additions/common/crOpenGL/FreeBSD_i386_exports_dri.py
@@ -0,0 +1,95 @@
+# Copyright (c) 2001, Stanford University
+# All rights reserved.
+#
+# See the file LICENSE.txt for information on redistributing this software.
+
+
+import sys
+
+import apiutil
+
+
+def GenerateEntrypoints():
+
+ #apiutil.CopyrightC()
+
+ # Get sorted list of dispatched functions.
+ # The order is very important - it must match cr_opcodes.h
+ # and spu_dispatch_table.h
+ print '%include "iprt/asmdefs.mac"'
+ print ""
+ print "%ifdef RT_ARCH_AMD64"
+ print "extern glim"
+ print "%else ; X86"
+ print "extern glim"
+ print "%endif"
+ print ""
+
+ keys = apiutil.GetDispatchedFunctions(sys.argv[1]+"/APIspec.txt")
+
+ for index in range(len(keys)):
+ func_name = keys[index]
+ if apiutil.Category(func_name) == "Chromium":
+ continue
+ if apiutil.Category(func_name) == "VBox":
+ continue
+
+ print "BEGINPROC_EXPORTED cr_gl%s" % func_name
+ print "%ifdef RT_ARCH_AMD64"
+ print "\tmov \trax, qword glim+%d" % (8*index)
+ print "\tjmp \t[rax]"
+ print "%else ; X86"
+ print "\tmov \teax, dword glim+%d" % (4*index)
+ print "\tjmp \t[eax]"
+ print "%endif"
+ print "ENDPROC cr_gl%s" % func_name
+ print ""
+
+
+ print ';'
+ print '; Aliases'
+ print ';'
+
+ # Now loop over all the functions and take care of any aliases
+ allkeys = apiutil.GetAllFunctions(sys.argv[1]+"/APIspec.txt")
+ for func_name in allkeys:
+ if "omit" in apiutil.ChromiumProps(func_name):
+ continue
+
+ if func_name in keys:
+ # we already processed this function earlier
+ continue
+
+ # alias is the function we're aliasing
+ alias = apiutil.Alias(func_name)
+ if alias:
+ # this dict lookup should never fail (raise an exception)!
+ index = keys.index(alias)
+ print "BEGINPROC_EXPORTED cr_gl%s" % func_name
+ print "%ifdef RT_ARCH_AMD64"
+ print "\tmov \trax, qword glim+%d" % (8*index)
+ print "\tjmp \t[rax]"
+ print "%else ; X86"
+ print "\tmov \teax, dword glim+%d" % (4*index)
+ print "\tjmp \t[eax]"
+ print "%endif"
+ print "ENDPROC cr_gl%s" % func_name
+ print ""
+
+
+ print ';'
+ print '; No-op stubs'
+ print ';'
+
+ # Now generate no-op stub functions
+ for func_name in allkeys:
+ if "stub" in apiutil.ChromiumProps(func_name):
+ print "BEGINPROC_EXPORTED cr_gl%s" % func_name
+ print "\tleave"
+ print "\tret"
+ print "ENDPROC cr_gl%s" % func_name
+ print ""
+
+
+GenerateEntrypoints()
+
|