Split GC.c, and move storage manager into sm/ directory
[ghc-hetmet.git] / rts / sm / GC.h
1 /* -----------------------------------------------------------------------------
2  *
3  * (c) The GHC Team 1998-2006
4  *
5  * Generational garbage collector
6  *
7  * ---------------------------------------------------------------------------*/
8
9 #ifndef GC_H
10 #define GC_H
11
12 extern nat N;
13 extern rtsBool major_gc;
14 extern nat evac_gen;
15 extern rtsBool eager_promotion;
16 extern rtsBool failed_to_evac;
17
18 extern StgClosure* static_objects;
19 extern StgClosure* scavenged_static_objects;
20
21 extern bdescr *mark_stack_bdescr;
22 extern StgPtr *mark_stack;
23 extern StgPtr *mark_sp;
24 extern StgPtr *mark_splim;
25
26 extern rtsBool mark_stack_overflowed;
27 extern bdescr *oldgen_scan_bd;
28 extern StgPtr  oldgen_scan;
29
30 extern lnat new_blocks;          // blocks allocated during this GC 
31 extern lnat new_scavd_blocks;    // ditto, but depth-first blocks
32
33 #ifdef DEBUG
34 extern nat mutlist_MUTVARS, mutlist_MUTARRS, mutlist_OTHERS;
35 #endif
36
37 StgClosure * isAlive(StgClosure *p);
38
39 #endif /* GC_H */