[project @ 1999-06-25 09:18:49 by simonmar]
[ghc-hetmet.git] / ghc / rts / RtsFlags.h
index 9678a98..a0e6205 100644 (file)
@@ -1,5 +1,7 @@
 /* -----------------------------------------------------------------------------
- * $Id: RtsFlags.h,v 1.7 1999/01/26 16:16:29 simonm Exp $
+ * $Id: RtsFlags.h,v 1.14 1999/06/25 09:18:49 simonmar Exp $
+ *
+ * (c) The GHC Team, 1998-1999
  *
  * Datatypes that holds the command-line flag settings.
  *
 
 struct GC_FLAGS {
     FILE   *statsFile;
-    nat            giveStats; /* ToDo: replace with enum type? */
+    nat            giveStats;
 #define NO_GC_STATS     0
-#define VERBOSE_GC_STATS 1
+#define SUMMARY_GC_STATS 1
+#define VERBOSE_GC_STATS 2
 
     nat     maxStkSize;         /* in *words* */
     nat     initialStkSize;     /* in *words* */
@@ -22,6 +25,7 @@ struct GC_FLAGS {
     nat            maxHeapSize;        /* in *blocks* */
     nat     minAllocAreaSize;   /* in *blocks* */
     nat     minOldGenSize;      /* in *blocks* */
+    nat     heapSizeSuggestion; /* in *blocks* */
     double  oldGenFactor;
     double  pcFreeHeap;
 
@@ -36,7 +40,9 @@ struct GC_FLAGS {
 };
 
 /* Hack: this struct uses bitfields so that we can use a binary arg
- * with the -D flag
+ * with the -D flag.
+ * Remember to update the corresponding bit of RtsFlags.c if you
+ * change/extend this struct.
  */
 struct DEBUG_FLAGS {  
   /* flags to control debugging output in various subsystems */
@@ -52,6 +58,7 @@ struct DEBUG_FLAGS {
   rtsBool sanity      : 1; /* 128 */
 
   rtsBool stable      : 1; /* 256 */
+  rtsBool prof        : 1; /* 512 */
 };
 
 #if defined(PROFILING) || defined(PAR)
@@ -214,8 +221,6 @@ struct GRAN_FLAGS {
 struct TICKY_FLAGS {
     rtsBool showTickyStats;
     FILE   *tickyFile;
-
-    /* see also: doUpdEntryCounts in AllFlags */
 };
 #endif /* TICKY_TICKY */
 
@@ -244,7 +249,11 @@ struct RTS_FLAGS {
 #endif
 };
 
+#ifdef COMPILING_RTS_MAIN
+extern DLLIMPORT struct RTS_FLAGS RtsFlags;
+#else
 extern struct RTS_FLAGS RtsFlags;
+#endif
 
 /* Routines that operate-on/to-do-with RTS flags: */
 
@@ -271,8 +280,11 @@ void setupRtsFlags(int *argc, char *argv[], int *rts_argc, char *rts_argv[]);
 #define TIME_FILENAME_FMT      "%0.122s.time"
 #define TIME_FILENAME_FMT_GUM  "%0.118s.%03d.time"
 
-extern int     prog_argc; /* an "int" so as to match normal "argc" */
+/* an "int" so as to match normal "argc" */
+/* Now defined in Stg.h (lib/std/cbits need these too.)
+extern int     prog_argc;
 extern char  **prog_argv;
+*/
 extern int     rts_argc;  /* ditto */
 extern char   *rts_argv[];