f3a20ae6a24d08b6e0c2c68a3d49e9f795220571
[ghc-hetmet.git] / rts / Stats.h
1 /* -----------------------------------------------------------------------------
2  *
3  * (c) The GHC Team, 1998-2005
4  *
5  * Statistics and timing-related functions.
6  *
7  * ---------------------------------------------------------------------------*/
8
9 #ifndef STATS_H
10 #define STATS_H
11
12 #include "GetTime.h"
13
14 #include "BeginPrivate.h"
15
16 void      stat_startInit(void);
17 void      stat_endInit(void);
18
19 void      stat_startGC(void);
20 void      stat_endGC (lnat alloc, lnat live, 
21                       lnat copied, lnat gen,
22                       lnat max_copied, lnat avg_copied, lnat slop);
23
24 #ifdef PROFILING
25 void      stat_startRP(void);
26 void      stat_endRP(nat, 
27 #ifdef DEBUG_RETAINER
28                             nat, int, 
29 #endif
30                             double);
31 #endif /* PROFILING */
32
33 #if defined(PROFILING) || defined(DEBUG)
34 void      stat_startHeapCensus(void);
35 void      stat_endHeapCensus(void);
36 #endif
37
38 void      stat_startExit(void);
39 void      stat_endExit(void);
40
41 void      stat_exit(int alloc);
42 void      stat_workerStop(void);
43
44 void      initStats0(void);
45 void      initStats1(void);
46
47 double    mut_user_time_during_GC(void);
48 double    mut_user_time(void);
49
50 #ifdef PROFILING
51 double    mut_user_time_during_RP(void);
52 double    mut_user_time_during_heap_census(void);
53 #endif /* PROFILING */
54
55 void      statDescribeGens( void );
56
57 Ticks stat_getElapsedGCTime(void);
58 Ticks stat_getElapsedTime(void);
59
60 /* Only exported for Papi.c */
61 void statsPrintf( char *s, ... ) 
62     GNUC3_ATTRIBUTE(format (printf, 1, 2));
63
64 #include "EndPrivate.h"
65
66 #endif /* STATS_H */