Tidy up file headers and copyrights; point to the wiki for docs
[ghc-hetmet.git] / includes / rts / Linker.h
1 /* -----------------------------------------------------------------------------
2  *
3  * (c) The GHC Team, 2009
4  *
5  * RTS Object Linker
6  *
7  * Do not #include this file directly: #include "Rts.h" instead.
8  *
9  * To understand the structure of the RTS headers, see the wiki:
10  *   http://hackage.haskell.org/trac/ghc/wiki/Commentary/SourceTree/Includes
11  *
12  * ---------------------------------------------------------------------------*/
13
14 #ifndef RTS_LINKER_H
15 #define RTS_LINKER_H
16
17 /* initialize the object linker */
18 void initLinker( void );
19
20 /* insert a stable symbol in the hash table */
21 void insertStableSymbol(char* obj_name, char* key, StgPtr data);
22
23 /* insert a symbol in the hash table */
24 void insertSymbol(char* obj_name, char* key, void* data);
25
26 /* lookup a symbol in the hash table */
27 void *lookupSymbol( char *lbl );
28
29 /* delete an object from the pool */
30 HsInt unloadObj( char *path );
31
32 /* add an obj (populate the global symbol table, but don't resolve yet) */
33 HsInt loadObj( char *path );
34
35 /* resolve all the currently unlinked objects in memory */
36 HsInt resolveObjs( void );
37
38 /* load a dynamic library */
39 const char *addDLL( char* dll_name );
40
41 #endif /* RTS_LINKER_H */