1 /* -----------------------------------------------------------------------------
3 * (c) The GHC Team, 2009
7 * Do not #include this file directly: #include "Rts.h" instead.
9 * To understand the structure of the RTS headers, see the wiki:
10 * http://hackage.haskell.org/trac/ghc/wiki/Commentary/SourceTree/Includes
12 * ---------------------------------------------------------------------------*/
17 /* initialize the object linker */
18 void initLinker( void );
20 /* insert a stable symbol in the hash table */
21 void insertStableSymbol(char* obj_name, char* key, StgPtr data);
23 /* insert a symbol in the hash table */
24 void insertSymbol(char* obj_name, char* key, void* data);
26 /* lookup a symbol in the hash table */
27 void *lookupSymbol( char *lbl );
29 /* delete an object from the pool */
30 HsInt unloadObj( char *path );
32 /* add an obj (populate the global symbol table, but don't resolve yet) */
33 HsInt loadObj( char *path );
35 /* add an arch (populate the global symbol table, but don't resolve yet) */
36 HsInt loadArchive( char *path );
38 /* resolve all the currently unlinked objects in memory */
39 HsInt resolveObjs( void );
41 /* load a dynamic library */
42 const char *addDLL( char* dll_name );
44 #endif /* RTS_LINKER_H */