Fix a bug introduced with allocation counters
[ghc.git] / rts / Stats.h
index 2d7e655..925920f 100644 (file)
 
 #include "GetTime.h"
 
+#include "BeginPrivate.h"
+
+#if defined(mingw32_HOST_OS)
+/* On Win64, if we say "printf" then gcc thinks we are going to use
+   MS format specifiers like %I64d rather than %llu */
+#define PRINTF gnu_printf
+#else
+/* However, on OS X, "gnu_printf" isn't recognised */
+#define PRINTF printf
+#endif
+
+struct gc_thread_;
+
 void      stat_startInit(void);
 void      stat_endInit(void);
 
-void      stat_startGC(void);
-void      stat_endGC (lnat alloc, lnat live, 
-                     lnat copied, lnat gen);
+void      stat_startGC(Capability *cap, struct gc_thread_ *_gct);
+void      stat_endGC  (Capability *cap, struct gc_thread_ *_gct,
+                       W_ live, W_ copied, W_ slop, nat gen,
+                       nat n_gc_threads, W_ par_max_copied, W_ par_tot_copied);
 
 #ifdef PROFILING
 void      stat_startRP(void);
@@ -35,12 +49,13 @@ void      stat_endHeapCensus(void);
 void      stat_startExit(void);
 void      stat_endExit(void);
 
-void      stat_exit(int alloc);
+void      stat_exit(void);
 void      stat_workerStop(void);
 
-void      initStats(void);
+void      initStats0(void);
+void      initStats1(void);
 
-double    mut_user_time_during_GC(void);
+double    mut_user_time_until(Time t);
 double    mut_user_time(void);
 
 #ifdef PROFILING
@@ -49,14 +64,14 @@ double    mut_user_time_during_heap_census(void);
 #endif /* PROFILING */
 
 void      statDescribeGens( void );
-HsInt64   getAllocations( void );
 
-Ticks stat_getElapsedGCTime(void);
-Ticks stat_getElapsedTime(void);
+Time stat_getElapsedGCTime(void);
+Time stat_getElapsedTime(void);
 
 /* Only exported for Papi.c */
 void statsPrintf( char *s, ... ) 
-    GNUC3_ATTRIBUTE(format (printf, 1, 2));
+    GNUC3_ATTRIBUTE(format (PRINTF, 1, 2));
 
+#include "EndPrivate.h"
 
 #endif /* STATS_H */