Switch the default -dynload mode to SystemDependent
[ghc-hetmet.git] / includes / RtsFlags.h
index 88a6346..348a8f5 100644 (file)
@@ -39,6 +39,8 @@ struct GC_FLAGS {
     rtsBool compact;           /* True <=> "compact all the time" */
     double  compactThreshold;
 
+    rtsBool sweep;             /* use "mostly mark-sweep" instead of copying
+                                 * for the oldest generation */
     rtsBool ringBell;
     rtsBool frontpanel;
 
@@ -58,6 +60,7 @@ struct DEBUG_FLAGS {
     rtsBool sanity;         /* 'S'   warning: might be expensive! */
     rtsBool stable;         /* 't' */
     rtsBool prof;           /* 'p' */
+    rtsBool eventlog;       /* 'e' */
     rtsBool gran;           /* 'r' */
     rtsBool par;            /* 'P' */
     rtsBool linker;         /* 'l'   the object linker */
@@ -65,6 +68,7 @@ struct DEBUG_FLAGS {
     rtsBool stm;            /* 'm' */
     rtsBool squeeze;        /* 'z'  stack squeezing & lazy blackholing */
     rtsBool hpc;           /* 'c' coverage */
+    rtsBool timestamp;          /* add timestamps to traces */
 };
 
 struct COST_CENTRE_FLAGS {
@@ -111,6 +115,12 @@ struct PROFILING_FLAGS {
 
 };
 
+#ifdef EVENTLOG
+struct EVENTLOG_FLAGS {
+  rtsBool doEventLogging;
+};
+#endif
+
 struct CONCURRENT_FLAGS {
     int ctxtSwitchTime;                /* in milliseconds */
     int ctxtSwitchTicks;       /* derived */
@@ -119,6 +129,9 @@ struct CONCURRENT_FLAGS {
 struct MISC_FLAGS {
     int tickInterval;     /* in milliseconds */
     rtsBool install_signal_handlers;
+    rtsBool machineReadable;
+    StgWord linkerMemBase;       /* address to ask the OS for memory
+                                  * for the linker, NULL ==> off */
 };
 
 #ifdef PAR
@@ -175,6 +188,11 @@ struct PAR_FLAGS {
   rtsBool        migrate;        /* migrate threads between capabilities */
   rtsBool        wakeupMigrate;  /* migrate a thread on wakeup */
   unsigned int  maxLocalSparks;
+  rtsBool        parGcEnabled;   /* enable parallel GC */
+  rtsBool        parGcGen;       /* do parallel GC in this generation
+                                  * and higher only */
+  rtsBool        parGcLoadBalancing; /* do load-balancing in parallel GC */
+  rtsBool        setAffinity;    /* force thread affinity with CPUs */
 };
 #endif /* THREADED_RTS */
 
@@ -298,16 +316,13 @@ struct TICKY_FLAGS {
     FILE   *tickyFile;
 };
 
-struct TRACE_FLAGS {
-    rtsBool sched;             /* trace scheduler events for profiling */
-    rtsBool timestamp;          /* add timestamps to traces */
-};
-
-/* Put them together: */
-
 #ifdef USE_PAPI
+#define MAX_PAPI_USER_EVENTS 8
+
 struct PAPI_FLAGS {
     nat     eventType;          /* The type of events to count */
+    nat     numUserEvents;
+    char *  userEvents[MAX_PAPI_USER_EVENTS];
 };
 
 #define PAPI_FLAG_CACHE_L1 1
@@ -315,9 +330,12 @@ struct PAPI_FLAGS {
 #define PAPI_FLAG_BRANCH 3
 #define PAPI_FLAG_STALLS 4
 #define PAPI_FLAG_CB_EVENTS 5
+#define PAPI_USER_EVENTS 6
 
 #endif
 
+/* Put them together: */
+
 typedef struct _RTS_FLAGS {
     /* The first portion of RTS_FLAGS is invariant. */
     struct GC_FLAGS         GcFlags;
@@ -326,8 +344,10 @@ typedef struct _RTS_FLAGS {
     struct DEBUG_FLAGS      DebugFlags;
     struct COST_CENTRE_FLAGS CcFlags;
     struct PROFILING_FLAGS   ProfFlags;
+#ifdef EVENTLOG
+    struct EVENTLOG_FLAGS    EventLogFlags;
+#endif
     struct TICKY_FLAGS      TickyFlags;
-    struct TRACE_FLAGS       TraceFlags;
 
 #if defined(THREADED_RTS) || defined(PAR)
     struct PAR_FLAGS   ParFlags;