X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2Fsm%2FGCUtils.h;h=d47375d9467645d73205961a66b0963230dbf4cf;hb=6cec61d14a324285dbb8ce73d4c7215f1f8d6766;hp=e71f4374fb012c9dc88fce914761312ea9c4a50f;hpb=4e3542263207ae49963811aeb84927027e7bb61d;p=ghc-hetmet.git diff --git a/rts/sm/GCUtils.h b/rts/sm/GCUtils.h index e71f437..d47375d 100644 --- a/rts/sm/GCUtils.h +++ b/rts/sm/GCUtils.h @@ -11,17 +11,24 @@ * * --------------------------------------------------------------------------*/ -#include "SMP.h" +#ifndef SM_GCUTILS_H +#define SM_GCUTILS_H + +#include "BeginPrivate.h" + +#include "GCTDecl.h" bdescr *allocBlock_sync(void); void freeChain_sync(bdescr *bd); -void push_scanned_block (bdescr *bd, step_workspace *ws); -StgPtr todo_block_full (nat size, step_workspace *ws); -StgPtr alloc_todo_block (step_workspace *ws, nat size); +void push_scanned_block (bdescr *bd, gen_workspace *ws); +StgPtr todo_block_full (nat size, gen_workspace *ws); +StgPtr alloc_todo_block (gen_workspace *ws, nat size); -bdescr *grab_local_todo_block (step_workspace *ws); +bdescr *grab_local_todo_block (gen_workspace *ws); +#if defined(THREADED_RTS) bdescr *steal_todo_block (nat s); +#endif // Returns true if a block is partially full. This predicate is used to try // to re-use partial blocks wherever possible, and to reduce wastage. @@ -34,7 +41,7 @@ isPartiallyFull(bdescr *bd) #if DEBUG -void printMutableList (generation *gen); +void printMutableList (bdescr *bd); #endif // Version of recordMutableGen for use during GC. This uses the @@ -55,3 +62,7 @@ recordMutableGen_GC (StgClosure *p, nat gen_no) } *bd->free++ = (StgWord)p; } + +#include "EndPrivate.h" + +#endif /* SM_GCUTILS_H */