diff doc/manual/manual_dynload_api.tex @ 228:f8a6e60598cc

- completed dynload API doc
author Tassilo Philipp
date Sun, 16 Apr 2017 13:34:39 +0200
parents 3e629dc19168
children 2a77747a5496
line wrap: on
line diff
--- a/doc/manual/manual_dynload_api.tex	Sun Apr 16 13:29:36 2017 +0200
+++ b/doc/manual/manual_dynload_api.tex	Sun Apr 16 13:34:39 2017 +0200
@@ -1,6 +1,6 @@
 %//////////////////////////////////////////////////////////////////////////////
 %
-% Copyright (c) 2007,2009 Daniel Adler <dadler@uni-goettingen.de>, 
+% Copyright (c) 2007-2017 Daniel Adler <dadler@uni-goettingen.de>, 
 %                         Tassilo Philipp <tphilipp@potion-studios.com>
 %
 % Permission to use, copy, modify, and distribute this software for any
@@ -26,7 +26,7 @@
 \subsection{Loading code}
 
 \begin{lstlisting}[language=c,label=dl-load]
-void* dlLoadLibrary(const char* libpath);
+DLLib* dlLoadLibrary(const char* libpath);
 void  dlFreeLibrary(void* libhandle);
 \end{lstlisting}
 
@@ -42,6 +42,29 @@
 void* dlFindSymbol(void* libhandle, const char* symbol);
 \end{lstlisting}
 
-returns a pointer to a symbol with name \lstinline{pSymbolName} in the
+This function returns a pointer to a symbol with name \lstinline{pSymbolName} in the
 library with handle \lstinline{pLib}, or returns a null pointer if the symbol cannot
-be found.
+be found. The name is specified as it would appear in C source code (mangled if C++, etc.).
+
+\subsection{Symbol iteration}
+
+\begin{lstlisting}[language=c]
+DLSyms*     dlSymsInit(const char* libPath);
+void        dlSymsCleanup(DLSyms* pSyms);
+int         dlSymsCount(DLSyms* pSyms);
+const char* dlSymsName(DLSyms* pSyms, int index);
+const char* dlSymsNameFromValue(DLSyms* pSyms, void* value); /* symbol must be loaded */
+\end{lstlisting}
+
+These functions can be used to iterate over symbols. Note that they are made
+for symbol name lookups, not to get a symbol's address. For that refer to
+\lstinline{dlFindSymbol}. \lstinline{dlSymsInit} will return a handle (or a null pointer
+on error) to the shared object specified by \lstinline{libPath}. The returned
+handle is to be used with the other functions. The handle must be freed with
+\lstinline{dlSymsCleanup}. \lstinline{dlSymsCount} returns the number of
+symbols in the shared object, \lstinline{dlSymsName} and \lstinline{dlSymsNameFromValue}
+are used to lookup symbol names using an index or symbol's address, respectively,
+returning a null pointer on error. The names are returned as they would appear
+in C source code (mangled if C++, etc.). The address passed to \lstinline{dlSymsNameFromValue}
+must point to a loaded symbol.
+