X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=includes%2FStable.h;h=1de78d637601c90b97c9f79f06cdbfb17335edce;hb=118b39e4db1a8187af52c1ddb1b299021834a5a2;hp=ca2e72118adae425fd34bef2af6ff3dadecddfd2;hpb=0065d5ab628975892cea1ec7303f968c3338cbe1;p=ghc-hetmet.git diff --git a/includes/Stable.h b/includes/Stable.h index ca2e721..1de78d6 100644 --- a/includes/Stable.h +++ b/includes/Stable.h @@ -20,7 +20,7 @@ External C Interface -------------------------------------------------------------------------- */ -extern StgPtr deRefStablePtr(StgStablePtr stable_ptr); +EXTERN_INLINE StgPtr deRefStablePtr(StgStablePtr stable_ptr); extern void freeStablePtr(StgStablePtr sp); extern StgStablePtr splitStablePtr(StgStablePtr sp); extern StgStablePtr getStablePtr(StgPtr p); @@ -40,27 +40,23 @@ extern DLL_IMPORT_RTS snEntry *stable_ptr_table; extern void freeStablePtr(StgStablePtr sp); -#if defined(__GNUC__) -# ifndef RTS_STABLE_C -extern inline -# endif +EXTERN_INLINE StgPtr deRefStablePtr(StgStablePtr sp) { ASSERT(stable_ptr_table[(StgWord)sp].ref > 0); return stable_ptr_table[(StgWord)sp].addr; } -#else -/* No support for 'extern inline' */ -extern StgPtr deRefStablePtr(StgStablePtr sp); -#endif extern void initStablePtrTable ( void ); +extern void exitStablePtrTable ( void ); extern void enlargeStablePtrTable ( void ); extern StgWord lookupStableName ( StgPtr p ); -extern void markStablePtrTable ( evac_fn evac ); -extern void threadStablePtrTable ( evac_fn evac ); +extern void markStablePtrTable ( evac_fn evac, void *user ); +extern void threadStablePtrTable ( evac_fn evac, void *user ); extern void gcStablePtrTable ( void ); extern void updateStablePtrTable ( rtsBool full ); +extern void exitHashTable ( void ); + #endif