Make getAllocations() visible
[ghc-hetmet.git] / includes / rts / storage / GC.h
index e7b2e84..9616d72 100644 (file)
@@ -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