comparison dynload/dynload.h @ 0:3e629dc19168

initial from svn dyncall-1745
author Daniel Adler
date Thu, 19 Mar 2015 22:24:28 +0100
parents
children 85b61e8facfe
comparison
equal deleted inserted replaced
-1:000000000000 0:3e629dc19168
1 /*
2
3 Package: dyncall
4 Library: dynload
5 File: dynload/dynload.h
6 Description: public header for library dynload
7 License:
8
9 Copyright (c) 2007-2015 Daniel Adler <dadler@uni-goettingen.de>,
10 Tassilo Philipp <tphilipp@potion-studios.com>
11
12 Permission to use, copy, modify, and distribute this software for any
13 purpose with or without fee is hereby granted, provided that the above
14 copyright notice and this permission notice appear in all copies.
15
16 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
17 WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
18 MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
19 ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
20 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
21 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
22 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
23
24 */
25
26
27
28 #ifndef DYNLOAD_H
29 #define DYNLOAD_H
30
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34
35 #ifndef DL_API
36 #define DL_API
37 #endif
38
39 /* --- public api ---------------------------------------------------------- */
40
41 /* shared library loading and explicit symbol resolving */
42
43 typedef struct DLLib_ DLLib;
44
45 DL_API DLLib* dlLoadLibrary(const char* libpath);
46 DL_API void dlFreeLibrary(DLLib* pLib);
47 DL_API void* dlFindSymbol(DLLib* pLib, const char* pSymbolName);
48
49 /* symbol table enumeration - only for symbol lookup, not resolve */
50
51 typedef struct DLSyms_ DLSyms;
52
53 DL_API DLSyms* dlSymsInit (const char* libPath);
54 DL_API void dlSymsCleanup(DLSyms* pSyms);
55
56 DL_API int dlSymsCount (DLSyms* pSyms);
57 DL_API const char* dlSymsName (DLSyms* pSyms, int index);
58 DL_API const char* dlSymsNameFromValue(DLSyms* pSyms, void* value); /* symbol must be loaded */
59
60
61 #ifdef __cplusplus
62 }
63 #endif
64
65 #endif /* DYNLOAD_H */
66