ports/emulators/virtualbox-ose/files/patch-src-VBox-Additions-common-crOpenGL-FreeBSD_i386_exports.py
Jung-uk Kim b8592bbae4 - Reduce diff from Linux OpenGL support. Note we do not have to manually
turn off AIGLX any more.
- Do not install vboxvideo.ko when OPENGL is disabled.  It is only required
for OpenGL support.
- Install vboxvideo.ko.symbols when both DEBUG and OPENGL are enabled.
- Do not try to load vboxvideo.ko if it does not exist.
2014-12-23 00:05:04 +00:00

98 lines
2.9 KiB
Python

--- src/VBox/Additions/common/crOpenGL/FreeBSD_i386_exports.py.orig 2014-12-19 16:58:04.474417000 -0500
+++ src/VBox/Additions/common/crOpenGL/FreeBSD_i386_exports.py 2014-11-21 10:16:35.000000000 -0500
@@ -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 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 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 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 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 gl%s" % func_name
+ print "\tleave"
+ print "\tret"
+ print "ENDPROC gl%s" % func_name
+ print ""
+
+
+GenerateEntrypoints()
+