Class DynLoad


  • public class DynLoad
    extends java.lang.Object
    Native bindings to \"dynload.h\".

    The dynload library provides an interface to load foreign dynamic libraries and access to their symbols.

    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static long dlFindSymbol​(long pLib, java.lang.CharSequence pSymbolName)
      Returns a pointer to a symbol with name pSymbolName in the library with handle pLib, or returns a null pointer if the symbol cannot be found.
      static long dlFindSymbol​(long pLib, java.nio.ByteBuffer pSymbolName)
      Returns a pointer to a symbol with name pSymbolName in the library with handle pLib, or returns a null pointer if the symbol cannot be found.
      static void dlFreeLibrary​(long pLib)
      Frees a loaded library.
      static java.lang.String dlGetLibraryPath​(long pLib, int bufSize)
      Gets a copy of the path to the library loaded with handle pLib.
      static int dlGetLibraryPath​(long pLib, java.nio.ByteBuffer sOut)
      Gets a copy of the path to the library loaded with handle pLib.
      static long dlLoadLibrary​(java.lang.CharSequence libpath)
      Loads a dynamic library at libpath and returns a handle to it.
      static long dlLoadLibrary​(java.nio.ByteBuffer libpath)
      Loads a dynamic library at libpath and returns a handle to it.
      static void dlSymsCleanup​(long pSyms)
      Frees the specified DLSyms object.
      static int dlSymsCount​(long pSyms)
      Returns the number of symbols exported by the specified library.
      static long dlSymsInit​(java.lang.CharSequence libPath)
      Creates a new DLSyms object.
      static long dlSymsInit​(java.nio.ByteBuffer libPath)
      Creates a new DLSyms object.
      static java.lang.String dlSymsName​(long pSyms, int index)
      Returns the symbol name exported by the specified library at the specified index.
      static java.lang.String dlSymsNameFromValue​(long pSyms, long value)
      Returns the symbol name exported by the specified library at the specified address.
      static long ndlFindSymbol​(long pLib, long pSymbolName)
      Unsafe version of: FindSymbol
      static void ndlFreeLibrary​(long pLib)
      Unsafe version of: FreeLibrary
      static int ndlGetLibraryPath​(long pLib, long sOut, int bufSize)
      Unsafe version of: GetLibraryPath
      static long ndlLoadLibrary​(long libpath)
      Unsafe version of: LoadLibrary
      static void ndlSymsCleanup​(long pSyms)
      Unsafe version of: SymsCleanup
      static int ndlSymsCount​(long pSyms)
      Unsafe version of: SymsCount
      static long ndlSymsInit​(long libPath)
      Unsafe version of: SymsInit
      static long ndlSymsName​(long pSyms, int index)
      Unsafe version of: SymsName
      static long ndlSymsNameFromValue​(long pSyms, long value)
      Unsafe version of: SymsNameFromValue
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • ndlLoadLibrary

        public static long ndlLoadLibrary​(long libpath)
        Unsafe version of: LoadLibrary
      • dlLoadLibrary

        public static long dlLoadLibrary​(java.nio.ByteBuffer libpath)
        
        public static long dlLoadLibrary​(java.lang.CharSequence libpath)
        
        Loads a dynamic library at libpath and returns a handle to it.
        Parameters:
        libpath - the dynamic library path
      • ndlFreeLibrary

        public static void ndlFreeLibrary​(long pLib)
        Unsafe version of: FreeLibrary
      • dlFreeLibrary

        public static void dlFreeLibrary​(long pLib)
        Frees a loaded library.
        Parameters:
        pLib - the dynamic library to free
      • ndlFindSymbol

        public static long ndlFindSymbol​(long pLib,
                                         long pSymbolName)
        Unsafe version of: FindSymbol
      • dlFindSymbol

        public static long dlFindSymbol​(long pLib,
                                        java.nio.ByteBuffer pSymbolName)
        
        public static long dlFindSymbol​(long pLib,
                                        java.lang.CharSequence pSymbolName)
        
        Returns a pointer to a symbol with name pSymbolName in the library with handle pLib, or returns a null pointer if the symbol cannot be found.
        Parameters:
        pLib - the dynamic library
        pSymbolName - the symbol name
      • ndlGetLibraryPath

        public static int ndlGetLibraryPath​(long pLib,
                                            long sOut,
                                            int bufSize)
        Unsafe version of: GetLibraryPath
        Parameters:
        bufSize - the size of sOut, in bytes
      • dlGetLibraryPath

        public static int dlGetLibraryPath​(long pLib,
                                           java.nio.ByteBuffer sOut)
        Gets a copy of the path to the library loaded with handle pLib.

        The parameter sOut is a pointer to a buffer of size bufSize (in bytes), to hold the output string. The return value is the size of the buffer (in bytes) needed to hold the null-terminated string, or 0 if it can't be looked up. If bufSize >= return value > 1, a null-terminated string with the path to the library should be in sOut. If it returns 0, the library name wasn't able to be found. Please note that this might happen in some rare cases, so make sure to always check.

        Parameters:
        pLib - the dynamic library
        sOut - pointer to a buffer where the library path will be stored
      • dlGetLibraryPath

        public static java.lang.String dlGetLibraryPath​(long pLib,
                                                        int bufSize)
        Gets a copy of the path to the library loaded with handle pLib.

        The parameter sOut is a pointer to a buffer of size bufSize (in bytes), to hold the output string. The return value is the size of the buffer (in bytes) needed to hold the null-terminated string, or 0 if it can't be looked up. If bufSize >= return value > 1, a null-terminated string with the path to the library should be in sOut. If it returns 0, the library name wasn't able to be found. Please note that this might happen in some rare cases, so make sure to always check.

        Parameters:
        pLib - the dynamic library
        bufSize - the size of sOut, in bytes
      • ndlSymsInit

        public static long ndlSymsInit​(long libPath)
        Unsafe version of: SymsInit
      • dlSymsInit

        public static long dlSymsInit​(java.nio.ByteBuffer libPath)
        
        public static long dlSymsInit​(java.lang.CharSequence libPath)
        
        Creates a new DLSyms object.
        Parameters:
        libPath - the dynamic library path
      • ndlSymsCleanup

        public static void ndlSymsCleanup​(long pSyms)
        Unsafe version of: SymsCleanup
      • dlSymsCleanup

        public static void dlSymsCleanup​(long pSyms)
        Frees the specified DLSyms object.
        Parameters:
        pSyms - the DLSyms object to free
      • ndlSymsCount

        public static int ndlSymsCount​(long pSyms)
        Unsafe version of: SymsCount
      • dlSymsCount

        public static int dlSymsCount​(long pSyms)
        Returns the number of symbols exported by the specified library.
        Parameters:
        pSyms - a DLSyms object
      • ndlSymsName

        public static long ndlSymsName​(long pSyms,
                                       int index)
        Unsafe version of: SymsName
      • dlSymsName

        @Nullable
        public static java.lang.String dlSymsName​(long pSyms,
                                                  int index)
        Returns the symbol name exported by the specified library at the specified index.
        Parameters:
        pSyms - a DLSyms object
      • ndlSymsNameFromValue

        public static long ndlSymsNameFromValue​(long pSyms,
                                                long value)
        Unsafe version of: SymsNameFromValue
      • dlSymsNameFromValue

        @Nullable
        public static java.lang.String dlSymsNameFromValue​(long pSyms,
                                                           long value)
        Returns the symbol name exported by the specified library at the specified address.
        Parameters:
        pSyms - a DLSyms object
        value - the symbol address