/* -----------------------------------------------------------------------------
- * $Id: Rts.h,v 1.4 1999/01/21 10:31:43 simonm Exp $
+ * $Id: Rts.h,v 1.13 2000/04/05 14:26:31 panne Exp $
+ *
+ * (c) The GHC Team, 1998-1999
*
* Top-level include file for the RTS itself
*
#ifndef RTS_H
#define RTS_H
-#ifndef NO_REGS
-#define NO_REGS /* don't define fixed registers */
+#ifndef IN_STG_CODE
+#define IN_STG_CODE 0
#endif
#include "Stg.h"
/* -----------------------------------------------------------------------------
- Miscellaneous garbage
+ RTS Exit codes
-------------------------------------------------------------------------- */
#if ! defined(EXIT_SUCCESS) || ! defined(EXIT_FAILURE)
#define EXIT_FAILURE 1
#endif
+/* 255 is allegedly used by dynamic linkers to report linking failure */
+#define EXIT_INTERNAL_ERROR 254
+#define EXIT_DEADLOCK 253
+#define EXIT_INTERRUPTED 252
+#define EXIT_HEAPOVERFLOW 251
+#define EXIT_KILLED 250
+
+/* -----------------------------------------------------------------------------
+ Miscellaneous garbage
+ -------------------------------------------------------------------------- */
+
/* declarations for runtime flags/values */
#define MAX_RTS_ARGS 32
/* -----------------------------------------------------------------------------
- Useful typedefs
+ Assertions and Debuggery
-------------------------------------------------------------------------- */
-typedef unsigned int nat; /* at least 32 bits (like int) */
-typedef unsigned long lnat; /* at least 32 bits */
-typedef unsigned long long ullong; /* at least 32 bits */
-
-typedef enum {
- rtsFalse = 0,
- rtsTrue
-} rtsBool;
+#define IF_RTSFLAGS(c,s) if (RtsFlags.c) { s; }
/* -----------------------------------------------------------------------------
Assertions and Debuggery
-------------------------------------------------------------------------- */
-#ifndef DEBUG
+#ifdef DEBUG
+#define IF_DEBUG(c,s) if (RtsFlags.DebugFlags.c) { s; }
+#else
#define IF_DEBUG(c,s) doNothing()
+#endif
+
+#if defined(GRAN) && defined(DEBUG)
+#define IF_GRAN_DEBUG(c,s) if (RtsFlags.GranFlags.Debug.c) { s; }
#else
-#define IF_DEBUG(c,s) if (RtsFlags.DebugFlags.c) { s; }
+#define IF_GRAN_DEBUG(c,s) doNothing()
+#endif
+
+#if defined(PAR) && defined(DEBUG)
+#define IF_PAR_DEBUG(c,s) if (RtsFlags.ParFlags.Debug.c) { s; }
+#else
+#define IF_PAR_DEBUG(c,s) doNothing()
#endif
/* -----------------------------------------------------------------------------
#define stg_min(a,b) ({typeof(a) _a = (a), _b = (b); _a <= _b ? _a : _b; })
#define stg_max(a,b) ({typeof(a) _a = (a), _b = (b); _a <= _b ? _b : _a; })
-
-#define UNUSED __attribute__((unused))
-
-#endif RTS_H
+#endif /* RTS_H */