[project @ 2001-07-22 03:28:25 by chak]
[ghc-hetmet.git] / ghc / rts / StoragePriv.h
index 5b4019d..687ba1c 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: StoragePriv.h,v 1.10 1999/11/09 15:47:00 simonmar Exp $
+ * $Id: StoragePriv.h,v 1.14 2001/01/24 15:39:50 simonmar Exp $
  *
  * (c) The GHC Team, 1998-1999
  *
@@ -36,6 +36,8 @@ extern nat nursery_blocks;
 extern nat alloc_blocks;
 extern nat alloc_blocks_lim;
 
+extern lnat total_allocated;
+
 /* Nursery manipulation */
 extern void     allocNurseries ( void );
 extern void     resetNurseries ( void );
@@ -62,11 +64,21 @@ dbl_link_onto(bdescr *bd, bdescr **list)
  * A mutable list is ended with END_MUT_LIST, so that we can use NULL
  * as an indication that an object is not on a mutable list.
  */
-#define END_MUT_LIST ((StgMutClosure *)(void *)&END_MUT_LIST_closure)
+#define END_MUT_LIST ((StgMutClosure *)(void *)&stg_END_MUT_LIST_closure)
 
 #ifdef DEBUG
 extern void memInventory(void);
 extern void checkSanity(nat N);
 #endif
 
+/* 
+ * These three are used by the garbage collector when we have
+ * dynamically-linked object modules.  (see ClosureMacros.h,
+ * IS_CODE_PTR etc.). 
+ * Defined in Linker.c.
+ */
+int is_dynamically_loaded_code_or_rodata_ptr ( void* p );
+int is_dynamically_loaded_rwdata_ptr         ( void* p );
+int is_not_dynamically_loaded_ptr            ( void* p );
+
 #endif /* STORAGEPRIV_H */