X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2Fsm%2FGC.h;h=5fb142f58ff2580bc081c35b2a12473c43dfe980;hb=3ebcd3deb769a03f4ded0fca2cf38201048c0214;hp=b95466edb9b28382ecf1d67447f4033d07d6d512;hpb=64c17c4561cf419a4c70511bafc0815ea670bb2e;p=ghc-hetmet.git diff --git a/rts/sm/GC.h b/rts/sm/GC.h index b95466e..5fb142f 100644 --- a/rts/sm/GC.h +++ b/rts/sm/GC.h @@ -1,6 +1,6 @@ /* ----------------------------------------------------------------------------- * - * (c) The GHC Team 1998-2006 + * (c) The GHC Team 1998-2008 * * Generational garbage collector * @@ -16,12 +16,6 @@ extern nat N; extern rtsBool major_gc; -extern nat evac_gen; -extern rtsBool eager_promotion; -extern rtsBool failed_to_evac; - -extern StgClosure* static_objects; -extern StgClosure* scavenged_static_objects; extern bdescr *mark_stack_bdescr; extern StgPtr *mark_stack; @@ -32,13 +26,24 @@ extern rtsBool mark_stack_overflowed; extern bdescr *oldgen_scan_bd; extern StgPtr oldgen_scan; -extern lnat new_blocks; // blocks allocated during this GC -extern lnat new_scavd_blocks; // ditto, but depth-first blocks +extern long copied; #ifdef DEBUG -extern nat mutlist_MUTVARS, mutlist_MUTARRS, mutlist_OTHERS; +extern nat mutlist_MUTVARS, mutlist_MUTARRS, mutlist_MVARS, mutlist_OTHERS; +#endif + +#ifdef THREADED_RTS +extern SpinLock gc_alloc_block_sync; #endif -StgClosure * isAlive(StgClosure *p); +#if defined(PROF_SPIN) && defined(THREADED_RTS) +extern StgWord64 whitehole_spin; +#endif + +void gcWorkerThread (Capability *cap); +void initGcThreads (void); +void waitForGcThreads (Capability *cap); + +#define WORK_UNIT_WORDS 128 #endif /* GC_H */