Tidy up SigTv
[ghc-hetmet.git] / includes / stg / Ticky.h
index fd7edf8..a811aec 100644 (file)
@@ -1,9 +1,14 @@
 /* -----------------------------------------------------------------------------
  *
- * (c) The GHC Team, 2007
+ * (c) The GHC Team, 2009
  *
  * Declarations for counters used by ticky-ticky profiling.
  *
+ * Do not #include this file directly: #include "Rts.h" instead.
+ *
+ * To understand the structure of the RTS headers, see the wiki:
+ *   http://hackage.haskell.org/trac/ghc/wiki/Commentary/SourceTree/Includes
+ *
  * -------------------------------------------------------------------------- */
 
 
 
 /* These should probably be automatically generated in order to
    keep them consistent with the macros that use them (which are
-   defined in Cmm.h. */
+   defined in Cmm.h) */
+
+/* Here are all the counter declarations: */
+/* If you change this list, make the corresponding change
+   in RTS_TICKY_SYMBOLS in rts/Linker.c  */
+
+/* These two are explicitly declared in rts/Ticky.c, and
+   hence should not be extern'd except when using this header
+   file from STG code; hence IN_STG_CODE */
 
-#ifdef TICKY_TICKY
-/* same trick as in the former StgTicky.h: recycle the same declarations
-   for both extern decls (which are included everywhere)
-   and initializations (which only happen once) */
+#if IN_STG_CODE
+extern W_ ticky_entry_ctrs[];
+extern W_ top_ct[];
+#endif
+
+/* The rest are not explicity declared in rts/Ticky.c.  Instead
+   we use the same trick as in the former StgTicky.h: recycle the 
+   same declarations for both extern decls (which are included everywhere)
+   and initializations (which only happen once) 
+   TICKY_C is defined only in rts/Ticky.c */
 #ifdef TICKY_C
 #define INIT(ializer) = ializer
 #define EXTERN
@@ -26,8 +45,6 @@
 #define EXTERN extern
 #endif
 
-/* Here are all the counter declarations: */
-
 EXTERN StgInt ENT_VIA_NODE_ctr INIT(0);
 EXTERN StgInt ENT_STATIC_THK_ctr INIT(0);
 EXTERN StgInt ENT_DYN_THK_ctr INIT(0);
@@ -113,8 +130,6 @@ EXTERN StgInt GC_SEL_MAJOR_ctr INIT(0);
 
 EXTERN StgInt GC_FAILED_PROMOTION_ctr INIT(0);
 
-EXTERN StgInt GC_WORDS_COPIED_ctr INIT(0);
-
 EXTERN StgInt ALLOC_UP_THK_ctr INIT(0);
 EXTERN StgInt ALLOC_SE_THK_ctr INIT(0);
 EXTERN StgInt ALLOC_THK_adm INIT(0);
@@ -159,8 +174,6 @@ EXTERN StgInt RET_SEMI_loads_avoided INIT(0);
 
 /* End of counter declarations. */
 
-#endif /* TICKY_TICKY */
-
 /* This is ugly, but the story is:
    We got rid of StgTicky.h, which was previously
    defining these macros for the benefit of C code
@@ -176,9 +189,9 @@ EXTERN StgInt RET_SEMI_loads_avoided INIT(0);
 #define TICK_UPD_NEW_IND()
 #define TICK_UPD_SQUEEZED()
 #define TICK_ALLOC_HEAP_NOCTR(x)
-#define TICK_GC_WORDS_COPIED(x)
 #define TICK_GC_FAILED_PROMOTION()
-#define TICK_ALLOC_TSO(g,s)
+#define TICK_ALLOC_TSO()
+#define TICK_ALLOC_STACK(g)
 #define TICK_ALLOC_UP_THK(g,s)
 #define TICK_ALLOC_SE_THK(g,s)