X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=includes%2FStorage.h;h=90e364cbc493052eaba1a211461e26339f53b3a4;hb=4ba3cb054c3f069520f8db26591eae27560638c9;hp=3fcdfebb9900cf20bb13a082ef2ce15f4383b051;hpb=dbbf15c0f141357aa49b583286174867baadb821;p=ghc-hetmet.git diff --git a/includes/Storage.h b/includes/Storage.h index 3fcdfeb..90e364c 100644 --- a/includes/Storage.h +++ b/includes/Storage.h @@ -62,6 +62,7 @@ typedef struct step_ { bdescr * blocks; // blocks in this step unsigned int n_blocks; // number of blocks + unsigned int n_words; // number of words struct step_ * to; // destination step for live objects @@ -112,6 +113,7 @@ typedef struct generation_ { // stats information unsigned int collections; + unsigned int par_collections; unsigned int failed_promotions; // temporary use during GC: @@ -534,16 +536,17 @@ extern void resizeNurseries ( nat blocks ); extern void resizeNurseriesFixed ( nat blocks ); extern lnat countNurseryBlocks ( void ); + /* ----------------------------------------------------------------------------- Functions from GC.c -------------------------------------------------------------------------- */ -typedef void (*evac_fn)(StgClosure **); +typedef void (*evac_fn)(void *user, StgClosure **root); extern void threadPaused ( Capability *cap, StgTSO * ); extern StgClosure * isAlive ( StgClosure *p ); -extern void markCAFs ( evac_fn evac ); -extern void GetRoots ( evac_fn evac ); +extern void markCAFs ( evac_fn evac, void *user ); +extern void GetRoots ( evac_fn evac, void *user ); /* ----------------------------------------------------------------------------- Stats 'n' DEBUG stuff