[project @ 2001-03-21 15:33:47 by simonmar]
[ghc-hetmet.git] / ghc / rts / Sanity.h
1 /* -----------------------------------------------------------------------------
2  * $Id: Sanity.h,v 1.7 2000/12/11 12:37:00 simonmar Exp $
3  *
4  * (c) The GHC Team, 1998-1999
5  *
6  * Prototypes for functions in Sanity.c
7  *
8  * ---------------------------------------------------------------------------*/
9
10 #ifdef DEBUG
11 /* debugging routines */
12 extern void checkHeap  ( bdescr *bd, StgPtr start );
13 extern void checkHeapChunk ( StgPtr start, StgPtr end );
14 extern void checkChain ( bdescr *bd );
15 extern void checkStack ( StgPtr sp, StgPtr stack_end, StgUpdateFrame* su );
16 extern void checkTSO   ( StgTSO* tso );
17 extern void checkGlobalTSOList (rtsBool checkTSOs);
18 extern void checkStaticObjects ( void );
19 #if defined(GRAN)
20 extern void checkTSOsSanity(void);
21 extern rtsBool checkThreadQSanity (PEs proc, rtsBool check_TSO_too);
22 extern rtsBool checkThreadQsSanity (rtsBool check_TSO_too);
23 #endif
24 #if defined(PAR)
25 extern void checkBQ (StgBlockingQueueElement *bqe, StgClosure *closure);
26 extern void checkLAGAtable(rtsBool check_closures);
27 extern void checkHeapChunk(StgPtr start, StgPtr end);
28 #else
29 extern void checkBQ (StgTSO *bqe, StgClosure *closure);
30 #endif
31
32 extern StgOffset checkClosure( StgClosure* p );
33
34 /* test whether an object is already on update list */
35 extern rtsBool isBlackhole( StgTSO* tso, StgClosure* p );
36
37 #endif /* DEBUG */
38