/* -----------------------------------------------------------------------------
- * $Id: Stats.h,v 1.7 1999/11/02 17:19:17 simonmar Exp $
*
- * (c) The GHC Team, 1998-1999
+ * (c) The GHC Team, 1998-2005
*
* Statistics and timing-related functions.
*
* ---------------------------------------------------------------------------*/
-extern StgDouble elapsedtime(void);
-extern void start_time(void);
-extern StgDouble usertime(void);
-extern void end_init(void);
-extern void stat_exit(int alloc);
+#ifndef STATS_H
+#define STATS_H
-extern void stat_startGC(void);
-extern void stat_endGC(lnat alloc, lnat collect, lnat live,
- lnat copied, lnat gen);
+#include "GetTime.h"
-extern void stat_startExit(void);
-extern void stat_endExit(void);
+void stat_startInit(void);
+void stat_endInit(void);
-extern void initStats(void);
-extern void stat_describe_gens(void);
-extern double mut_user_time_during_GC(void);
-extern double mut_user_time(void);
+void stat_startGC(void);
+void stat_endGC (lnat alloc, lnat live,
+ lnat copied, lnat scavd_copied, lnat gen);
+
+#ifdef PROFILING
+void stat_startRP(void);
+void stat_endRP(nat,
+#ifdef DEBUG_RETAINER
+ nat, int,
+#endif
+ double);
+#endif /* PROFILING */
+
+#if defined(PROFILING) || defined(DEBUG)
+void stat_startHeapCensus(void);
+void stat_endHeapCensus(void);
+#endif
+
+void stat_startExit(void);
+void stat_endExit(void);
+
+void stat_exit(int alloc);
+void stat_workerStop(void);
+
+void initStats(void);
+
+double mut_user_time_during_GC(void);
+double mut_user_time(void);
+
+#ifdef PROFILING
+double mut_user_time_during_RP(void);
+double mut_user_time_during_heap_census(void);
+#endif /* PROFILING */
+
+void statDescribeGens( void );
+HsInt64 getAllocations( void );
+
+Ticks stat_getElapsedGCTime(void);
+
+#endif /* STATS_H */