merge up to ghc HEAD 16-Apr-2011
[ghc-hetmet.git] / rts / sm / GCUtils.h
index e71f437..d47375d 100644 (file)
  *
  * --------------------------------------------------------------------------*/
 
-#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 */