-------------------------------------------------------------------------- */
extern StgPtr allocate ( nat n );
+extern StgPtr allocateLocal ( StgRegTable *reg, nat n );
extern StgPtr allocatePinned ( nat n );
extern lnat allocated_bytes ( void );
*/
#if defined(SMP)
extern Mutex sm_mutex;
+#endif
+
+#if defined(SMP)
#define ACQUIRE_SM_LOCK ACQUIRE_LOCK(&sm_mutex);
#define RELEASE_SM_LOCK RELEASE_LOCK(&sm_mutex);
#else
Nursery manipulation
-------------------------------------------------------------------------- */
-extern void allocNurseries ( void );
-extern void resetNurseries ( void );
-extern void resizeNurseries ( nat blocks );
-extern void tidyAllocateLists ( void );
-extern lnat countNurseryBlocks ( void );
+extern void allocNurseries ( void );
+extern void resetNurseries ( void );
+extern void resizeNurseries ( nat blocks );
+extern void resizeNurseriesFixed ( nat blocks );
+extern void tidyAllocateLists ( void );
+extern lnat countNurseryBlocks ( void );
/* -----------------------------------------------------------------------------
Functions from GC.c
extern void memInventory(void);
extern void checkSanity(void);
extern nat countBlocks(bdescr *);
+extern void checkNurserySanity( step *stp );
#endif
#if defined(DEBUG)
extern void move_TSO(StgTSO *src, StgTSO *dest);
extern StgTSO *relocate_stack(StgTSO *dest, ptrdiff_t diff);
-extern StgClosure * RTS_VAR(static_objects);
extern StgClosure * RTS_VAR(scavenged_static_objects);
extern StgWeak * RTS_VAR(old_weak_ptr_list);
extern StgWeak * RTS_VAR(weak_ptr_list);