[project @ 2000-08-03 11:28:35 by simonmar]
[ghc-hetmet.git] / ghc / rts / RtsFlags.h
index e3febb3..12fceb2 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: RtsFlags.h,v 1.20 2000/01/13 14:34:04 hwloidl Exp $
+ * $Id: RtsFlags.h,v 1.26 2000/08/03 11:28:35 simonmar Exp $
  *
  * (c) The GHC Team, 1998-1999
  *
@@ -32,8 +32,6 @@ struct GC_FLAGS {
     nat     generations;
     nat     steps;
 
-    rtsBool forceGC; /* force a major GC every <interval> bytes */
-    int            forcingInterval; /* actually, stored as a number of *words* */
     rtsBool ringBell;
 
     rtsBool squeezeUpdFrames;
@@ -63,6 +61,10 @@ struct DEBUG_FLAGS {
   rtsBool par         : 1; /* 2048 */
 };
 
+#define MAX_DEBUG_OPTION     11
+#define DEBUG_MASK(n)        ((nat)(ldexp(1,n)))
+#define MAX_DEBUG_MASK       ((nat)(ldexp(1,(MAX_DEBUG_OPTION+1))-1))
+
 #if defined(PROFILING) || defined(PAR)
     /* with PROFILING, full cost-centre stuff (also PROFILING_FLAGS);
        with PAR, just the four fixed cost-centres.
@@ -72,13 +74,8 @@ struct COST_CENTRE_FLAGS {
 # define COST_CENTRES_SUMMARY  1
 # define COST_CENTRES_VERBOSE  2 /* incl. serial time profile */
 # define COST_CENTRES_ALL      3
+# define COST_CENTRES_XML       4
 
-    char    sortBy;
-# define SORTCC_LABEL  'C'
-# define SORTCC_TIME   'T'
-# define SORTCC_ALLOC  'A'
-
-    int            ctxtSwitchTicks; /* derived */
     int            profilerTicks;   /* derived */
     int            msecsPerTick;    /* derived */
 };
@@ -91,7 +88,6 @@ struct PROFILING_FLAGS {
 # 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_GRP           3
 # define HEAP_BY_DESCR         4
 # define HEAP_BY_TYPE          5
 # define HEAP_BY_TIME          6
@@ -100,17 +96,9 @@ struct PROFILING_FLAGS {
   
 # define CCchar    'C'
 # define MODchar   'M'
-# define GRPchar   'G'
 # define DESCRchar 'D'
 # define TYPEchar  'Y'
 # define TIMEchar  'T'
-
-    char *ccSelector;
-    char *modSelector;
-    char *grpSelector;
-    char *descrSelector;
-    char *typeSelector;
-    char *kindSelector;
 };
 #elif defined(DEBUG)
 # define NO_HEAP_PROFILING     0
@@ -122,7 +110,8 @@ struct PROFILING_FLAGS {
 #endif /* DEBUG || PROFILING */
 
 struct CONCURRENT_FLAGS {
-  int ctxtSwitchTime; /* in milliseconds */
+    int ctxtSwitchTime;                /* in milliseconds */
+    int ctxtSwitchTicks;       /* derived */
 };
 
 #ifdef PAR
@@ -146,9 +135,9 @@ struct PAR_DEBUG_FLAGS {
   rtsBool resume     : 1; /*   16 */
   rtsBool weight     : 1; /*   32 */
   rtsBool fetch      : 1; /*   64 */
-  rtsBool ack        : 1; /*  128 */
-  rtsBool fish       : 1; /*  256 */
-  rtsBool forward    : 1; /*  512 */
+  rtsBool fish       : 1; /*  128 */
+  rtsBool tables     : 1; /*  256 */
+  rtsBool packet     : 1; /*  512 */
   rtsBool pack       : 1; /* 1024 */
 };
 
@@ -248,6 +237,7 @@ struct GRAN_FLAGS {
   struct GRAN_COST_FLAGS Costs;          /* cost metric for simulation */
   struct GRAN_DEBUG_FLAGS Debug;         /* debugging options */
 
+  nat  maxThreads;              // ToDo: share with SMP and GUM
   // rtsBool labelling;
   nat  packBufferSize;
   nat  packBufferSize_internal;