diff dynload/dynload.3 @ 228:f8a6e60598cc

- completed dynload API doc
author Tassilo Philipp
date Sun, 16 Apr 2017 13:34:39 +0200
parents 7076f551faf5
children 2a77747a5496
line wrap: on
line diff
--- a/dynload/dynload.3	Sun Apr 16 13:29:36 2017 +0200
+++ b/dynload/dynload.3	Sun Apr 16 13:34:39 2017 +0200
@@ -27,6 +27,16 @@
 .Fn dlFreeLibrary "DLLib * pLib"
 .Ft void *
 .Fn dlFindSymbol "DLLib * pLib" "const char * pSymbolName"
+.Ft DLSyms*
+.Fn dlSymsInit "const char * libPath"
+.Ft void
+.Fn dlSymsCleanup "DLSyms * pSyms"
+.Ft int
+.Fn dlSymsCount "DLSyms * pSyms"
+.Ft const char*
+.Fn dlSymsName "DLSyms * pSyms" "int index"
+.Ft const char*
+.Fn dlSymsNameFromValue "DLSyms * pSyms" "void * value"
 .Sh DESCRIPTION
 The
 .Nm
@@ -54,6 +64,23 @@
 in the library with handle
 .Ar pLib ,
 or returns a null pointer if the symbol cannot be found. The name is specified as it would appear in C source code (mangled if C++, etc.).
+.Pp
+The dlSyms* 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
+.Fn dlFindSymbol .
+.Fn dlSymsInit
+will return a handle (or null pointer on error) to the shared object specified by
+.Ar libPath .
+The returned handle is to be used with the other dlSyms* functions. The handle must be freed with
+.Fn dlSymsCleanup .
+.Fn dlSymsCount
+returns the number of symbols in the shared object,
+.Fn dlSymsName
+and
+.Fn 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
+.Fn dlSymsNameFromValue
+must point to a loaded symbol.
 .Sh SEE ALSO
 .Xr dyncall 3 ,
 .Xr dyncallback 3