summaryrefslogtreecommitdiffstats
path: root/src/java/com/jogamp/gluegen/runtime/MacOSXDynamicLinkerImpl.java
diff options
context:
space:
mode:
authorMichael Bien <[email protected]>2010-03-27 02:26:27 +0100
committerMichael Bien <[email protected]>2010-03-27 02:26:27 +0100
commitbb9028843b1e382180fd2663e5c98b86fc37718b (patch)
treed79c068941d9b58ea38b4617f5f1da127b56abf2 /src/java/com/jogamp/gluegen/runtime/MacOSXDynamicLinkerImpl.java
parent6cefd27707036faf494eab9e1f0c7970c0c40e0d (diff)
renamed com.sun.gluegen.runtime -> com.jogamp.gluegen.runtime.
Diffstat (limited to 'src/java/com/jogamp/gluegen/runtime/MacOSXDynamicLinkerImpl.java')
-rwxr-xr-xsrc/java/com/jogamp/gluegen/runtime/MacOSXDynamicLinkerImpl.java60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/java/com/jogamp/gluegen/runtime/MacOSXDynamicLinkerImpl.java b/src/java/com/jogamp/gluegen/runtime/MacOSXDynamicLinkerImpl.java
new file mode 100755
index 0000000..8abbd4e
--- /dev/null
+++ b/src/java/com/jogamp/gluegen/runtime/MacOSXDynamicLinkerImpl.java
@@ -0,0 +1,60 @@
+/* !---- DO NOT EDIT: This file autogenerated by com\sun\gluegen\JavaEmitter.java on Mon Jul 31 16:27:00 PDT 2006 ----! */
+
+package com.jogamp.gluegen.runtime;
+
+import com.jogamp.gluegen.runtime.*;
+
+public class MacOSXDynamicLinkerImpl implements DynamicLinker
+{
+
+ public static final int RTLD_LAZY = 0x1;
+ public static final int RTLD_NOW = 0x2;
+ public static final int RTLD_LOCAL = 0x4;
+ public static final int RTLD_GLOBAL = 0x8;
+
+ /** Interface to C language function: <br> <code> int dlclose(void * __handle); </code> */
+ private static native int dlclose(long __handle);
+
+ /** Interface to C language function: <br> <code> char * dlerror(void); </code> */
+ private static native java.lang.String dlerror();
+
+ /** Interface to C language function: <br> <code> void * dlopen(const char * __path, int __mode); </code> */
+ private static native long dlopen(java.lang.String __path, int __mode);
+
+ /** Interface to C language function: <br> <code> void * dlsym(void * __handle, const char * __symbol); </code> */
+ private static native long dlsym(long __handle, java.lang.String __symbol);
+
+
+ // --- Begin CustomJavaCode .cfg declarations
+ public long openLibraryLocal(String pathname, boolean debug) {
+ // Note we use RTLD_LOCAL visibility to _NOT_ allow this functionality to
+ // be used to pre-resolve dependent libraries of JNI code without
+ // requiring that all references to symbols in those libraries be
+ // looked up dynamically via the ProcAddressTable mechanism; in
+ // other words, one can actually link against the library instead of
+ // having to dlsym all entry points. System.loadLibrary() uses
+ // RTLD_LOCAL visibility so can't be used for this purpose.
+ return dlopen(pathname, RTLD_LAZY | RTLD_LOCAL);
+ }
+
+ public long openLibraryGlobal(String pathname, boolean debug) {
+ // Note we use RTLD_GLOBAL visibility to allow this functionality to
+ // be used to pre-resolve dependent libraries of JNI code without
+ // requiring that all references to symbols in those libraries be
+ // looked up dynamically via the ProcAddressTable mechanism; in
+ // other words, one can actually link against the library instead of
+ // having to dlsym all entry points. System.loadLibrary() uses
+ // RTLD_LOCAL visibility so can't be used for this purpose.
+ return dlopen(pathname, RTLD_LAZY | RTLD_GLOBAL);
+ }
+
+ public long lookupSymbol(long libraryHandle, String symbolName) {
+ return dlsym(libraryHandle, symbolName);
+ }
+
+ public void closeLibrary(long libraryHandle) {
+ dlclose(libraryHandle);
+ }
+ // ---- End CustomJavaCode .cfg declarations
+
+} // end of class MacOSXDynamicLinkerImpl