Comments only
[ghc-hetmet.git] / includes / rts / Constants.h
index b283bef..0aee60a 100644 (file)
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  *
- * (c) The GHC Team, 1998-2002
+ * (c) The GHC Team, 1998-2009
  *
  * Constants
  *
@@ -12,6 +12,9 @@
  * the system (eg. structure sizes) are generated into the file
  * DerivedConstants.h by a C program (mkDerivedConstantsHdr).
  *
+ * To understand the structure of the RTS headers, see the wiki:
+ *   http://hackage.haskell.org/trac/ghc/wiki/Commentary/SourceTree/Includes
+ *
  * -------------------------------------------------------------------------- */
 
 #ifndef RTS_CONSTANTS_H
 #define MAX_CHARLIKE           255
 #define MIN_CHARLIKE           0
 
+/* Each byte in the card table for an StgMutaArrPtrs covers
+ * (1<<MUT_ARR_PTRS_CARD_BITS) elements in the array.  To find a good
+ * value for this, I used the benchmarks nofib/gc/hash,
+ * nofib/gc/graph, and nofib/gc/gc_bench.
+ */
+#define MUT_ARR_PTRS_CARD_BITS 7
+
 /* -----------------------------------------------------------------------------
    STG Registers.
 
  */
 #define TSO_LINK_DIRTY 32
 
+/*
+ * Used by the sanity checker to check whether TSOs are on the correct
+ * mutable list.
+ */
 #define TSO_MARKED 64
 
+/*
+ * Used to communicate between stackSqueeze() and
+ * threadStackOverflow() that a thread's stack was squeezed and the
+ * stack may not need to be expanded.
+ */
+#define TSO_SQUEEZED 128
+
 /* -----------------------------------------------------------------------------
    RET_DYN stack frames
    -------------------------------------------------------------------------- */