rts: enable parallel GC scan of large (32M+) allocation area
[ghc.git] / rts / Stats.h
index bd39ced..1d95170 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,
-                      lnat max_copied, lnat avg_copied, lnat slop);
+void      stat_startGCSync(struct gc_thread_ *_gct);
+void      stat_startGC(Capability *cap, struct gc_thread_ *_gct);
+void      stat_endGC  (Capability *cap, struct gc_thread_ *_gct, W_ live,
+                       W_ copied, W_ slop, uint32_t gen, uint32_t n_gc_threads,
+                       W_ par_max_copied, W_ par_tot_copied);
 
 #ifdef PROFILING
 void      stat_startRP(void);
-void      stat_endRP(nat, 
+void      stat_endRP(uint32_t,
 #ifdef DEBUG_RETAINER
-                            nat, int, 
+                            uint32_t, int,
 #endif
                             double);
 #endif /* PROFILING */
@@ -36,29 +50,20 @@ 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      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
-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);
-Ticks stat_getElapsedTime(void);
 
-/* Only exported for Papi.c */
-void statsPrintf( char *s, ... ) 
-    GNUC3_ATTRIBUTE(format (printf, 1, 2));
+Time      stat_getElapsedGCTime(void);
+Time      stat_getElapsedTime(void);
 
+#include "EndPrivate.h"
 
 #endif /* STATS_H */