RTS tidyup sweep, first phase
[ghc-hetmet.git] / includes / RtsFlags.h
index ab6f298..778fccf 100644 (file)
@@ -1,239 +1,2 @@
-/* -----------------------------------------------------------------------------
- *
- * (c) The GHC Team, 1998-1999
- *
- * Datatypes that holds the command-line flag settings.
- *
- * ---------------------------------------------------------------------------*/
-
-#ifndef RTSFLAGS_H
-#define RTSFLAGS_H
-
-#include <stdio.h>
-
-/* For defaults, see the @initRtsFlagsDefaults@ routine. */
-
-struct GC_FLAGS {
-    FILE   *statsFile;
-    nat            giveStats;
-#define NO_GC_STATS     0
-#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* */
-
-    nat            maxHeapSize;        /* in *blocks* */
-    nat     minAllocAreaSize;   /* in *blocks* */
-    nat     minOldGenSize;      /* in *blocks* */
-    nat     heapSizeSuggestion; /* in *blocks* */
-    double  oldGenFactor;
-    double  pcFreeHeap;
-
-    nat     generations;
-    nat     steps;
-    rtsBool squeezeUpdFrames;
-
-    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;
-
-    int idleGCDelayTime;       /* in milliseconds */
-
-    StgWord heapBase;           /* address to ask the OS for memory */
-};
-
-struct DEBUG_FLAGS {  
-    /* flags to control debugging output & extra checking in various subsystems */
-    rtsBool scheduler;      /* 's' */
-    rtsBool interpreter;    /* 'i' */
-    rtsBool weak;           /* 'w' */
-    rtsBool gccafs;         /* 'G' */
-    rtsBool gc;             /* 'g' */
-    rtsBool block_alloc;    /* 'b' */
-    rtsBool sanity;         /* 'S'   warning: might be expensive! */
-    rtsBool stable;         /* 't' */
-    rtsBool prof;           /* 'p' */
-    rtsBool eventlog;       /* 'e' */
-    rtsBool linker;         /* 'l'   the object linker */
-    rtsBool apply;          /* 'a' */
-    rtsBool stm;            /* 'm' */
-    rtsBool squeeze;        /* 'z'  stack squeezing & lazy blackholing */
-    rtsBool hpc;           /* 'c' coverage */
-    rtsBool timestamp;          /* add timestamps to traces */
-};
-
-struct COST_CENTRE_FLAGS {
-    unsigned int           doCostCentres;
-# define COST_CENTRES_SUMMARY  1
-# define COST_CENTRES_VERBOSE  2 /* incl. serial time profile */
-# define COST_CENTRES_ALL      3
-# define COST_CENTRES_XML       4
-
-    int            profilerTicks;   /* derived */
-    int            msecsPerTick;    /* derived */
-};
-
-struct PROFILING_FLAGS {
-    unsigned int       doHeapProfile;
-# 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_RETAINER       6
-# define HEAP_BY_LDV            7
-
-# define HEAP_BY_CLOSURE_TYPE   8
-
-    nat                 profileInterval;      /* delta between samples (in ms) */
-    nat                 profileIntervalTicks; /* delta between samples (in 'ticks') */
-    rtsBool             includeTSOs;
-
-
-    rtsBool            showCCSOnException;
-
-    nat                 maxRetainerSetSize;
-
-    nat                 ccsLength;
-
-    char*               modSelector;
-    char*               descrSelector;
-    char*               typeSelector;
-    char*               ccSelector;
-    char*               ccsSelector;
-    char*               retainerSelector;
-    char*               bioSelector;
-
-};
-
-#ifdef EVENTLOG
-struct EVENTLOG_FLAGS {
-  rtsBool doEventLogging;
-};
-#endif
-
-struct CONCURRENT_FLAGS {
-    int ctxtSwitchTime;                /* in milliseconds */
-    int ctxtSwitchTicks;       /* derived */
-};
-
-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 THREADED_RTS
-struct PAR_FLAGS {
-  nat            nNodes;         /* number of threads to run simultaneously */
-  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 */
-
-struct TICKY_FLAGS {
-    rtsBool showTickyStats;
-    FILE   *tickyFile;
-};
-
-#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
-#define PAPI_FLAG_CACHE_L2 2
-#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;
-    struct CONCURRENT_FLAGS  ConcFlags;
-    struct MISC_FLAGS        MiscFlags;
-    struct DEBUG_FLAGS      DebugFlags;
-    struct COST_CENTRE_FLAGS CcFlags;
-    struct PROFILING_FLAGS   ProfFlags;
-#ifdef EVENTLOG
-    struct EVENTLOG_FLAGS    EventLogFlags;
-#endif
-    struct TICKY_FLAGS      TickyFlags;
-
-#if defined(THREADED_RTS)
-    struct PAR_FLAGS   ParFlags;
-#endif
-#ifdef USE_PAPI
-    struct PAPI_FLAGS   PapiFlags;
-#endif
-} RTS_FLAGS;
-
-#ifdef COMPILING_RTS_MAIN
-extern DLLIMPORT RTS_FLAGS RtsFlags;
-#elif IN_STG_CODE
-/* Hack because the C code generator can't generate '&label'. */
-extern RTS_FLAGS RtsFlags[];
-#else
-extern RTS_FLAGS RtsFlags;
-#endif
-
-/* Routines that operate-on/to-do-with RTS flags: */
-
-extern void initRtsFlagsDefaults(void);
-extern void setupRtsFlags(int *argc, char *argv[], int *rts_argc, char *rts_argv[]);
-extern void setProgName(char *argv[]);
-
-
-/*
- * The printf formats are here, so we are less likely to make
- * overly-long filenames (with disastrous results).  No more than 128
- * chars, please!  
- */
-
-#define STATS_FILENAME_MAXLEN  128
-
-#define GR_FILENAME_FMT                "%0.124s.gr"
-#define GR_FILENAME_FMT_GUM    "%0.120s.%03d.%s"
-#define HP_FILENAME_FMT                "%0.124s.hp"
-#define LIFE_FILENAME_FMT      "%0.122s.life"
-#define PROF_FILENAME_FMT      "%0.122s.prof"
-#define PROF_FILENAME_FMT_GUM  "%0.118s.%03d.prof"
-#define QP_FILENAME_FMT                "%0.124s.qp"
-#define STAT_FILENAME_FMT      "%0.122s.stat"
-#define TICKY_FILENAME_FMT     "%0.121s.ticky"
-#define TIME_FILENAME_FMT      "%0.122s.time"
-#define TIME_FILENAME_FMT_GUM  "%0.118s.%03d.time"
-
-/* 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[];
-
-#endif /* RTSFLAGS_H */
+#warning RtsFlags.h is DEPRECATED; please just #include "Rts.h"
+#include "Rts.h"