/* -----------------------------------------------------------------------------
- * $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
*
extern nat alloc_blocks;
extern nat alloc_blocks_lim;
+extern lnat total_allocated;
+
/* Nursery manipulation */
extern void allocNurseries ( void );
extern void resetNurseries ( void );
* 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 */