diff options
author | Michael Bien <[email protected]> | 2010-03-31 21:12:09 +0200 |
---|---|---|
committer | Michael Bien <[email protected]> | 2010-03-31 21:12:09 +0200 |
commit | 22262166e07de99ae0d4557e4f87e3bd1c5cd6dd (patch) | |
tree | 1fd14a422efe1aac215e65faaa89b7e4d7bd1ff1 /src/java/com/jogamp/common/os/MacOSXDynamicLinkerImpl.java | |
parent | c5068e42758aeecbd0a3fbf4c2e2b755661e950e (diff) |
introduced com.jogamp.common.{nio,os} packages and moved some classes.
Diffstat (limited to 'src/java/com/jogamp/common/os/MacOSXDynamicLinkerImpl.java')
-rwxr-xr-x | src/java/com/jogamp/common/os/MacOSXDynamicLinkerImpl.java | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/java/com/jogamp/common/os/MacOSXDynamicLinkerImpl.java b/src/java/com/jogamp/common/os/MacOSXDynamicLinkerImpl.java new file mode 100755 index 0000000..531bc5c --- /dev/null +++ b/src/java/com/jogamp/common/os/MacOSXDynamicLinkerImpl.java @@ -0,0 +1,58 @@ +/* !---- DO NOT EDIT: This file autogenerated by com\sun\gluegen\JavaEmitter.java on Mon Jul 31 16:27:00 PDT 2006 ----! */ + +package com.jogamp.common.os; + + +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 |