Fix parallel make for libffi.
[ghc.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 void stat_startInit(void);
15 void stat_endInit(void);
16
17 void stat_startGC(void);
18 void stat_endGC (lnat alloc, lnat live,
19 lnat copied, lnat gen,
20 lnat max_copied, lnat avg_copied, lnat slop);
21
22 #ifdef PROFILING
23 void stat_startRP(void);
24 void stat_endRP(nat,
25 #ifdef DEBUG_RETAINER
26 nat, int,
27 #endif
28 double);
29 #endif /* PROFILING */
30
31 #if defined(PROFILING) || defined(DEBUG)
32 void stat_startHeapCensus(void);
33 void stat_endHeapCensus(void);
34 #endif
35
36 void stat_startExit(void);
37 void stat_endExit(void);
38
39 void stat_exit(int alloc);
40 void stat_workerStop(void);
41
42 void initStats0(void);
43 void initStats1(void);
44
45 double mut_user_time_during_GC(void);
46 double mut_user_time(void);
47
48 #ifdef PROFILING
49 double mut_user_time_during_RP(void);
50 double mut_user_time_during_heap_census(void);
51 #endif /* PROFILING */
52
53 void statDescribeGens( void );
54 HsInt64 getAllocations( void );
55
56 Ticks stat_getElapsedGCTime(void);
57 Ticks stat_getElapsedTime(void);
58
59 /* Only exported for Papi.c */
60 void statsPrintf( char *s, ... )
61 GNUC3_ATTRIBUTE(format (printf, 1, 2));
62
63
64 #endif /* STATS_H */