[project @ 2005-10-21 14:02:17 by simonmar]
[ghc-hetmet.git] / ghc / 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 "Task.h"
13
14 extern void      stat_startInit(void);
15 extern void      stat_endInit(void);
16
17 extern void      stat_startGC(void);
18 extern void      stat_endGC (lnat alloc, lnat collect, lnat live, 
19                              lnat copied, lnat scavd_copied, lnat gen);
20
21 #ifdef PROFILING
22 extern void      stat_startRP(void);
23 extern void      stat_endRP(nat, 
24 #ifdef DEBUG_RETAINER
25                             nat, int, 
26 #endif
27                             double);
28 #endif /* PROFILING */
29
30 #if defined(PROFILING) || defined(DEBUG)
31 extern void      stat_startHeapCensus(void);
32 extern void      stat_endHeapCensus(void);
33 #endif
34
35 extern void      stat_startExit(void);
36 extern void      stat_endExit(void);
37
38 extern void      stat_exit(int alloc);
39 extern void      stat_workerStop(void);
40
41 extern void      initStats(void);
42
43 extern double    mut_user_time_during_GC(void);
44 extern double    mut_user_time(void);
45
46 #ifdef PROFILING
47 extern double    mut_user_time_during_RP(void);
48 extern double    mut_user_time_during_heap_census(void);
49 #endif /* PROFILING */
50
51 extern void      statDescribeGens( void );
52 extern HsInt64   getAllocations( void );
53
54 extern void      stat_getTimes ( long *currentElapsedTime, 
55                                  long *currentUserTime,
56                                  long *elapsedGCTime );
57
58 #endif /* STATS_H */