Enable two-step allocator on FreeBSD
[ghc.git] / rts / Profiling.h
index 8c36522..45725e5 100644 (file)
@@ -6,21 +6,20 @@
  *
  * ---------------------------------------------------------------------------*/
 
-#ifndef PROFILING_H
-#define PROFILING_H
+#pragma once
 
 #include <stdio.h>
 
 #include "BeginPrivate.h"
 #include "Rts.h"
 
-#ifdef PROFILING
+#if defined(PROFILING)
 #define PROFILING_ONLY(s) s
 #else
 #define PROFILING_ONLY(s) doNothing()
 #endif
 
-void initProfiling1 (void);
+void initProfiling  (void);
 void initProfiling2 (void);
 void endProfiling   (void);
 void freeProfiling  (void);
@@ -28,21 +27,28 @@ void freeProfiling  (void);
 extern FILE *prof_file;
 extern FILE *hp_file;
 
-#ifdef PROFILING
+/* A summary of an execution of a profiled program */
+typedef struct {
+    /* Total bytes allocated */
+    uint64_t total_alloc;
+    /* Total number of profiler ticks */
+    unsigned int total_prof_ticks;
+} ProfilerTotals;
 
-void reportCCSProfiling ( void );
+#if defined(PROFILING)
 
-void PrintNewStackDecls ( void );
+void reportCCSProfiling ( void );
 
 void fprintCCS( FILE *f, CostCentreStack *ccs );
 void fprintCCS_stderr (CostCentreStack *ccs, StgClosure *exception, StgTSO *tso);
 
-#ifdef DEBUG
+bool ignoreCCS (CostCentreStack const *ccs);
+bool ignoreCC (CostCentre const *cc);
+
+#if defined(DEBUG)
 void debugCCS( CostCentreStack *ccs );
 #endif
 
 #endif
 
 #include "EndPrivate.h"
-
-#endif /* PROFILING_H */