/* -----------------------------------------------------------------------------
- * $Id: StoragePriv.h,v 1.3 1999/01/13 17:25:48 simonm Exp $
+ * $Id: StoragePriv.h,v 1.8 1999/02/05 16:03:02 simonm Exp $
+ *
+ * (c) The GHC Team, 1998-1999
*
* Internal Storage Manger Interface
*
StgPtr scan; /* scan pointer in current block */
bdescr *new_large_objects; /* large objects collected so far */
bdescr *scavenged_large_objects; /* live large objects after GC (dbl link) */
-
-#ifdef DEBUG
- /* for sanity checking: */
- bdescr *old_scan_bd;
- StgPtr old_scan;
-#endif
} step;
typedef struct _generation {
nat n_steps; /* number of steps */
nat max_blocks; /* max blocks in step 0 */
StgMutClosure *mut_list; /* mutable objects in this generation (not G0)*/
+ StgMutClosure *mut_once_list; /* objects that point to younger generations */
+
+ /* temporary use during GC: */
+ StgMutClosure *saved_mut_list;
/* stats information */
nat collections;
extern nat alloc_blocks;
extern nat alloc_blocks_lim;
+extern bdescr *allocNursery ( bdescr *last_bd, nat blocks );
+extern void resizeNursery ( nat blocks );
+
+extern lnat calcLive( void );
+extern lnat calcNeeded( void );
+
static inline void
dbl_link_onto(bdescr *bd, bdescr **list)
{
#ifdef DEBUG
extern void memInventory(void);
+extern void checkSanity(nat N);
#endif
#endif /* STORAGEPRIV_H */