RTS tidyup sweep, first phase
[ghc-hetmet.git] / rts / sm / GCUtils.h
index 6948b2f..d68ce78 100644 (file)
  *
  * --------------------------------------------------------------------------*/
 
-#include "SMP.h"
+#ifndef SM_GCUTILS_H
+#define SM_GCUTILS_H
 
 bdescr *allocBlock_sync(void);
 void    freeChain_sync(bdescr *bd);
 
 void    push_scanned_block   (bdescr *bd, step_workspace *ws);
-bdescr *grab_todo_block      (step_workspace *ws);
 StgPtr  todo_block_full      (nat size, step_workspace *ws);
 StgPtr  alloc_todo_block     (step_workspace *ws, nat size);
 
+bdescr *grab_local_todo_block  (step_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.
 // We might need to tweak the actual value.
@@ -53,3 +58,5 @@ recordMutableGen_GC (StgClosure *p, nat gen_no)
     }
     *bd->free++ = (StgWord)p;
 }
+
+#endif /* SM_GCUTILS_H */