X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=includes%2Frts%2Fstorage%2FGC.h;h=9616d72d51f00a44a41b74915034911546353988;hb=f6ee1f315a7e7069b21a993fb058e00d06b73487;hp=e7b2e8453bca51078f3ba848dafef3744a2f5e19;hpb=214b3663d5d7598c13643f9221e43d5a7735b47f;p=ghc-hetmet.git diff --git a/includes/rts/storage/GC.h b/includes/rts/storage/GC.h index e7b2e84..9616d72 100644 --- a/includes/rts/storage/GC.h +++ b/includes/rts/storage/GC.h @@ -63,14 +63,15 @@ typedef struct generation_ { bdescr * blocks; // blocks in this gen unsigned int n_blocks; // number of blocks - unsigned int n_words; // number of words + unsigned int n_words; // number of used words bdescr * large_objects; // large objects (doubly linked) unsigned int n_large_blocks; // no. of blocks used by large objs + unsigned int n_new_large_blocks; // count freshly allocated large objects unsigned int max_blocks; // max blocks bdescr *mut_list; // mut objects in this gen (not G0) - + StgTSO * threads; // threads in this gen // linked via global_link struct generation_ *to; // destination gen for live objects @@ -166,10 +167,20 @@ void performMajorGC(void); The CAF table - used to let us revert CAFs in GHCi -------------------------------------------------------------------------- */ -void newCAF (StgClosure*); -void newDynCAF (StgClosure *); +void newCAF (StgRegTable *reg, StgClosure *); +void newDynCAF (StgRegTable *reg, StgClosure *); void revertCAFs (void); +// Request that all CAFs are retained indefinitely. +void setKeepCAFs (void); + +/* ----------------------------------------------------------------------------- + Stats + -------------------------------------------------------------------------- */ + +// Returns the total number of bytes allocated since the start of the program. +HsInt64 getAllocations (void); + /* ----------------------------------------------------------------------------- This is the write barrier for MUT_VARs, a.k.a. IORefs. A MUT_VAR_CLEAN object is not on the mutable list; a MUT_VAR_DIRTY