c527cbbb22e20217162b64d5533d8ecb722005f0
[ghc-hetmet.git] / ghc / rts / Sanity.h
1 /* -----------------------------------------------------------------------------
2  *
3  * (c) The GHC Team, 1998-1999
4  *
5  * Prototypes for functions in Sanity.c
6  *
7  * ---------------------------------------------------------------------------*/
8
9 #ifdef DEBUG
10
11 # if defined(PAR)
12 # define PVM_PE_MASK    0xfffc0000
13 # define MAX_PVM_PES    MAX_PES
14 # define MAX_PVM_TIDS   MAX_PES
15 # define MAX_SLOTS      100000
16 # endif
17
18 /* debugging routines */
19 extern void checkHeap      ( bdescr *bd );
20 extern void checkHeapChunk ( StgPtr start, StgPtr end );
21 extern void checkChain     ( bdescr *bd );
22 extern void checkTSO       ( StgTSO* tso );
23 extern void checkGlobalTSOList ( rtsBool checkTSOs );
24 extern void checkStaticObjects ( StgClosure* static_objects );
25 extern void checkStackChunk    ( StgPtr sp, StgPtr stack_end );
26 extern StgOffset checkStackFrame ( StgPtr sp );
27 extern StgOffset checkClosure  ( StgClosure* p );
28
29 extern void checkMutableList   ( bdescr *bd, nat gen );
30
31 #if defined(GRAN)
32 extern void checkTSOsSanity(void);
33 extern rtsBool checkThreadQSanity (PEs proc, rtsBool check_TSO_too);
34 extern rtsBool checkThreadQsSanity (rtsBool check_TSO_too);
35 #endif
36
37 #if defined(PAR)
38 extern void checkBQ (StgBlockingQueueElement *bqe, StgClosure *closure);
39 #else
40 extern void checkBQ (StgTSO *bqe, StgClosure *closure);
41 #endif
42
43 #if defined(PAR)
44 extern void checkLAGAtable(rtsBool check_closures);
45 extern void checkHeapChunk(StgPtr start, StgPtr end);
46 #endif
47
48 /* test whether an object is already on update list */
49 extern rtsBool isBlackhole( StgTSO* tso, StgClosure* p );
50
51 #endif /* DEBUG */
52