diff options
Diffstat (limited to 'includes/rts/Linker.h')
-rw-r--r-- | includes/rts/Linker.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/includes/rts/Linker.h b/includes/rts/Linker.h new file mode 100644 index 0000000000..df74e7eeb8 --- /dev/null +++ b/includes/rts/Linker.h @@ -0,0 +1,36 @@ +/* ----------------------------------------------------------------------------- + * + * (c) The GHC Team, 2000 + * + * RTS Object Linker + * + * ---------------------------------------------------------------------------*/ + +#ifndef RTS_LINKER_H +#define RTS_LINKER_H + +/* initialize the object linker */ +void initLinker( void ); + +/* insert a stable symbol in the hash table */ +void insertStableSymbol(char* obj_name, char* key, StgPtr data); + +/* insert a symbol in the hash table */ +void insertSymbol(char* obj_name, char* key, void* data); + +/* lookup a symbol in the hash table */ +void *lookupSymbol( char *lbl ); + +/* delete an object from the pool */ +HsInt unloadObj( char *path ); + +/* add an obj (populate the global symbol table, but don't resolve yet) */ +HsInt loadObj( char *path ); + +/* resolve all the currently unlinked objects in memory */ +HsInt resolveObjs( void ); + +/* load a dynamic library */ +const char *addDLL( char* dll_name ); + +#endif /* RTS_LINKER_H */ |