[project @ 2001-08-07 09:20:52 by simonmar]
[ghc-hetmet.git] / ghc / rts / RtsFlags.h
index 62ad3bd..ab493d2 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: RtsFlags.h,v 1.30 2000/12/19 12:50:37 simonmar Exp $
+ * $Id: RtsFlags.h,v 1.35 2001/08/07 09:20:52 simonmar Exp $
  *
  * (c) The GHC Team, 1998-1999
  *
@@ -33,11 +33,12 @@ struct GC_FLAGS {
 
     nat     generations;
     nat     steps;
-
-    rtsBool ringBell;
-
     rtsBool squeezeUpdFrames;
 
+    rtsBool compact;
+    double  compactThreshold;
+
+    rtsBool ringBell;
     rtsBool frontpanel;
 };
 
@@ -87,12 +88,15 @@ struct COST_CENTRE_FLAGS {
 struct PROFILING_FLAGS {
     unsigned int       doHeapProfile;
 
+    nat                 profileFrequency;  /* how often do you want */
+                                           /* to sample (in ms) */
+
+
 # define NO_HEAP_PROFILING     0       /* N.B. Used as indexes into arrays */
 # define HEAP_BY_CCS           1
 # define HEAP_BY_MOD           2
 # define HEAP_BY_DESCR         4
 # define HEAP_BY_TYPE          5
-# define HEAP_BY_TIME          6
 
     rtsBool            showCCSOnException;
   
@@ -100,14 +104,21 @@ struct PROFILING_FLAGS {
 # define MODchar   'M'
 # define DESCRchar 'D'
 # define TYPEchar  'Y'
-# define TIMEchar  'T'
+
+    char*               modSelector;
+    char*               descrSelector;
+    char*               typeSelector;
+    char*               ccSelector;
+
+
 };
 #elif defined(DEBUG)
 # define NO_HEAP_PROFILING     0
 # define HEAP_BY_INFOPTR        1
 # define HEAP_BY_CLOSURE_TYPE   2
 struct PROFILING_FLAGS {
-    unsigned int      doHeapProfile; /* heap profile using symbol table */
+    unsigned int  doHeapProfile;     /* heap profile using symbol table */
+
 };
 #endif /* DEBUG || PROFILING */
 
@@ -120,7 +131,7 @@ struct CONCURRENT_FLAGS {
 /* currently the same as GRAN_STATS_FLAGS */
 struct PAR_STATS_FLAGS {
   rtsBool Full;       /* Full .gr profile (rtsTrue) or only END events? */
-  // rtsBool Suppressed; /* No .gr profile at all */
+  rtsBool Suppressed; /* No .gr profile at all */
   rtsBool Binary;     /* Binary profile? (not yet implemented) */
   rtsBool Sparks;     /* Info on sparks in profile? */
   rtsBool Heap;       /* Info on heap allocs in profile? */ 
@@ -131,7 +142,7 @@ struct PAR_STATS_FLAGS {
 struct PAR_DEBUG_FLAGS {  
   /* flags to control debugging output in various subsystems */
   rtsBool verbose    : 1; /*    1 */
-  rtsBool trace      : 1; /*    2 */
+  rtsBool bq         : 1; /*    2 */
   rtsBool schedule   : 1; /*    4 */
   rtsBool free       : 1; /*    8 */
   rtsBool resume     : 1; /*   16 */
@@ -141,9 +152,10 @@ struct PAR_DEBUG_FLAGS {
   rtsBool tables     : 1; /*  256 */
   rtsBool packet     : 1; /*  512 */
   rtsBool pack       : 1; /* 1024 */
+  rtsBool paranoia   : 1; /* 2048 */
 };
 
-#define MAX_PAR_DEBUG_OPTION     10
+#define MAX_PAR_DEBUG_OPTION     11
 #define PAR_DEBUG_MASK(n)        ((nat)(ldexp(1,n)))
 #define MAX_PAR_DEBUG_MASK       ((nat)(ldexp(1,(MAX_PAR_DEBUG_OPTION+1))-1))
 
@@ -151,7 +163,10 @@ struct PAR_FLAGS {
   struct PAR_STATS_FLAGS ParStats;  /* profile and stats output */
   struct PAR_DEBUG_FLAGS Debug;         /* debugging options */
   rtsBool  outputDisabled;       /* Disable output for performance purposes */
+  rtsBool  doFairScheduling;     /* Fair-ish scheduling (round robin; no time-slices) */
   nat      packBufferSize;
+  nat      thunksToPack;          /* number of thunks in packet + 1 */ 
+  nat      globalising;           /* globalisation scheme */
   nat     maxLocalSparks;        /* spark pool size */
   nat      maxThreads;            /* thread pool size */
   nat      maxFishes;             /* max number of active fishes */