/* -----------------------------------------------------------------------------
- * $Id: Sanity.h,v 1.2 1998/12/02 13:28:44 simonm Exp $
+ *
+ * (c) The GHC Team, 1998-1999
*
* Prototypes for functions in Sanity.c
*
* ---------------------------------------------------------------------------*/
+#ifndef SANITY_H
+
#ifdef DEBUG
+
+# if defined(PAR)
+# define PVM_PE_MASK 0xfffc0000
+# define MAX_PVM_PES MAX_PES
+# define MAX_PVM_TIDS MAX_PES
+# define MAX_SLOTS 100000
+# endif
+
/* debugging routines */
-extern void checkHeap ( bdescr *bd, nat step );
-extern void checkStack ( StgPtr sp, StgPtr stack_end, StgUpdateFrame* su );
-extern void checkTSO ( StgTSO* tso, nat step );
+extern void checkHeap ( bdescr *bd );
+extern void checkHeapChunk ( StgPtr start, StgPtr end );
+extern void checkChain ( bdescr *bd );
+extern void checkTSO ( StgTSO* tso );
+extern void checkGlobalTSOList ( rtsBool checkTSOs );
+extern void checkStaticObjects ( StgClosure* static_objects );
+extern void checkStackChunk ( StgPtr sp, StgPtr stack_end );
+extern StgOffset checkStackFrame ( StgPtr sp );
+extern StgOffset checkClosure ( StgClosure* p );
-extern StgOffset checkClosure( StgClosure* p );
+extern void checkMutableList ( bdescr *bd, nat gen );
+
+#if defined(GRAN)
+extern void checkTSOsSanity(void);
+extern rtsBool checkThreadQSanity (PEs proc, rtsBool check_TSO_too);
+extern rtsBool checkThreadQsSanity (rtsBool check_TSO_too);
+#endif
+
+#if defined(PAR)
+extern void checkBQ (StgBlockingQueueElement *bqe, StgClosure *closure);
+#else
+extern void checkBQ (StgTSO *bqe, StgClosure *closure);
+#endif
+
+#if defined(PAR)
+extern void checkLAGAtable(rtsBool check_closures);
+extern void checkHeapChunk(StgPtr start, StgPtr end);
+#endif
/* test whether an object is already on update list */
extern rtsBool isBlackhole( StgTSO* tso, StgClosure* p );
#endif /* DEBUG */
+#endif /* SANITY_H */
+