[project @ 2001-02-28 14:23:55 by sewardj]
[ghc-hetmet.git] / ghc / rts / RtsFlags.h
index 6931fe8..62ad3bd 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: RtsFlags.h,v 1.21 2000/02/17 17:19:42 simonmar Exp $
+ * $Id: RtsFlags.h,v 1.30 2000/12/19 12:50:37 simonmar Exp $
  *
  * (c) The GHC Team, 1998-1999
  *
@@ -16,8 +16,10 @@ struct GC_FLAGS {
     FILE   *statsFile;
     nat            giveStats;
 #define NO_GC_STATS     0
-#define SUMMARY_GC_STATS 1
-#define VERBOSE_GC_STATS 2
+#define COLLECT_GC_STATS 1
+#define ONELINE_GC_STATS 2
+#define SUMMARY_GC_STATS 3
+#define VERBOSE_GC_STATS 4
 
     nat     maxStkSize;         /* in *words* */
     nat     initialStkSize;     /* in *words* */
@@ -32,11 +34,11 @@ 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;
+
+    rtsBool frontpanel;
 };
 
 /* Hack: this struct uses bitfields so that we can use a binary arg
@@ -61,12 +63,15 @@ struct DEBUG_FLAGS {
   rtsBool prof        : 1; /* 512 */
   rtsBool gran        : 1; /* 1024 */
   rtsBool par         : 1; /* 2048 */
+
+  /* The object linker */
+  rtsBool linker      : 1; /* 4096 */
 };
 
-#if defined(PROFILING) || defined(PAR)
-    /* with PROFILING, full cost-centre stuff (also PROFILING_FLAGS);
-       with PAR, just the four fixed cost-centres.
-    */
+#define MAX_DEBUG_OPTION     12
+#define DEBUG_MASK(n)        ((nat)(ldexp(1,n)))
+#define MAX_DEBUG_MASK       ((nat)(ldexp(1,(MAX_DEBUG_OPTION+1))-1))
+
 struct COST_CENTRE_FLAGS {
     unsigned int           doCostCentres;
 # define COST_CENTRES_SUMMARY  1
@@ -74,11 +79,9 @@ struct COST_CENTRE_FLAGS {
 # define COST_CENTRES_ALL      3
 # define COST_CENTRES_XML       4
 
-    int            ctxtSwitchTicks; /* derived */
     int            profilerTicks;   /* derived */
     int            msecsPerTick;    /* derived */
 };
-#endif
 
 #ifdef PROFILING
 struct PROFILING_FLAGS {
@@ -87,7 +90,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
@@ -96,17 +98,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
@@ -118,7 +112,8 @@ struct PROFILING_FLAGS {
 #endif /* DEBUG || PROFILING */
 
 struct CONCURRENT_FLAGS {
-  int ctxtSwitchTime; /* in milliseconds */
+    int ctxtSwitchTime;                /* in milliseconds */
+    int ctxtSwitchTicks;       /* derived */
 };
 
 #ifdef PAR
@@ -142,9 +137,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 */
 };
 
@@ -244,6 +239,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;