projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[project @ 1999-02-23 17:20:34 by sof]
[ghc-hetmet.git]
/
ghc
/
rts
/
StoragePriv.h
diff --git
a/ghc/rts/StoragePriv.h
b/ghc/rts/StoragePriv.h
index
8231865
..
4326550
100644
(file)
--- a/
ghc/rts/StoragePriv.h
+++ b/
ghc/rts/StoragePriv.h
@@
-1,5
+1,7
@@
/* -----------------------------------------------------------------------------
/* -----------------------------------------------------------------------------
- * $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
*
*
* Internal Storage Manger Interface
*
@@
-63,12
+65,6
@@
typedef struct _step {
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) */
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 {
} step;
typedef struct _generation {
@@
-77,6
+73,10
@@
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)*/
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;
/* stats information */
nat collections;
@@
-109,6
+109,12
@@
extern nat nursery_blocks;
extern nat alloc_blocks;
extern nat alloc_blocks_lim;
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)
{
static inline void
dbl_link_onto(bdescr *bd, bdescr **list)
{
@@
-128,6
+134,7
@@
dbl_link_onto(bdescr *bd, bdescr **list)
#ifdef DEBUG
extern void memInventory(void);
#ifdef DEBUG
extern void memInventory(void);
+extern void checkSanity(nat N);
#endif
#endif /* STORAGEPRIV_H */
#endif
#endif /* STORAGEPRIV_H */