Free thread local storage on shutdown
[ghc-hetmet.git] / includes / RtsFlags.h
index fbdc64e..6efd24d 100644 (file)
@@ -62,6 +62,7 @@ struct DEBUG_FLAGS {
     rtsBool apply;          /* 'a' */
     rtsBool stm;            /* 'm' */
     rtsBool squeeze;        /* 'z'  stack squeezing & lazy blackholing */
+    rtsBool hpc;           /* 'c' coverage */
 };
 
 struct COST_CENTRE_FLAGS {
@@ -97,6 +98,8 @@ struct PROFILING_FLAGS {
 
     nat                 maxRetainerSetSize;
 
+    nat                 ccsLength;
+
     char*               modSelector;
     char*               descrSelector;
     char*               typeSelector;
@@ -300,6 +303,19 @@ struct TRACE_FLAGS {
 
 /* Put them together: */
 
+#ifdef USE_PAPI
+struct PAPI_FLAGS {
+    nat     eventType;          /* The type of events to count */
+};
+
+#define PAPI_FLAG_CACHE_L1 1
+#define PAPI_FLAG_CACHE_L2 2
+#define PAPI_FLAG_BRANCH 3
+#define PAPI_FLAG_STALLS 4
+#define PAPI_FLAG_CB_EVENTS 5
+
+#endif
+
 typedef struct _RTS_FLAGS {
     /* The first portion of RTS_FLAGS is invariant. */
     struct GC_FLAGS         GcFlags;
@@ -317,6 +333,9 @@ typedef struct _RTS_FLAGS {
 #ifdef GRAN
     struct GRAN_FLAGS  GranFlags;
 #endif
+#ifdef USE_PAPI
+    struct PAPI_FLAGS   PapiFlags;
+#endif
 } RTS_FLAGS;
 
 #ifdef COMPILING_RTS_MAIN