X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=includes%2Frts%2FLinker.h;fp=includes%2Frts%2FLinker.h;h=df74e7eeb872650b2d04827f3eb16c6f69838080;hb=a2a67cd520b9841114d69a87a423dabcb3b4368e;hp=0000000000000000000000000000000000000000;hpb=5d379cbe65e406d5c3a848fe7fcd090cafbfeb78;p=ghc-hetmet.git diff --git a/includes/rts/Linker.h b/includes/rts/Linker.h new file mode 100644 index 0000000..df74e7e --- /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 */