[project @ 2000-05-15 12:53:39 by rrt]
[ghc-hetmet.git] / ghc / rts / ClosureFlags.c
index 17b6892..89e98e4 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: ClosureFlags.c,v 1.4 1999/11/09 15:46:49 simonmar Exp $
+ * $Id: ClosureFlags.c,v 1.6 2000/01/13 14:34:02 hwloidl Exp $
  *
  * (c) The GHC Team 1998-1999
  *
@@ -16,6 +16,14 @@ StgWord16 closure_flags[] = {
  * ClosureTypes.h.
  */
 
+/* ToDo: some of these flags seem to be duplicated.
+ *       - NS is the same as HNF, and the negation of THU
+ * (however, we set NS for indirections, which is probably the
+ *  right thing to do, since we never get indirections pointing
+ *  to thunks.)
+ */
+
+/*                             0    1    2    3    4   5   6   7 */
 /*                          HNF  BTM   NS  STA  THU MUT UPT SRT */
                                                                    
 /* INVALID_OBJECT       */ ( 0                                   ),
@@ -47,11 +55,11 @@ StgWord16 closure_flags[] = {
 /* BCO                 */ (_HNF|     _NS                        ),
 /* AP_UPD              */ (     _BTM|         _THU              ),
 /* PAP                 */ (_HNF|     _NS                        ),
-/* IND                 */ ( 0                                   ),
-/* IND_OLDGEN          */ ( 0                                   ),
-/* IND_PERM            */ ( 0                                   ),
-/* IND_OLDGEN_PERM     */ ( 0                                   ),
-/* IND_STATIC          */ (              _STA                   ),
+/* IND                 */ (          _NS                        ),
+/* IND_OLDGEN          */ (          _NS                        ),
+/* IND_PERM            */ (          _NS                        ),
+/* IND_OLDGEN_PERM     */ (          _NS                        ),
+/* IND_STATIC          */ (          _NS|_STA                   ),
 /* CAF_UNENTERED        */ ( 0                                   ),
 /* CAF_ENTERED          */ ( 0                                   ),
 /* CAF_BLACKHOLE       */ (     _BTM|_NS|         _MUT|_UPT     ),
@@ -77,8 +85,14 @@ StgWord16 closure_flags[] = {
 /* WEAK                        */ (_HNF|     _NS|              _UPT     ),
 /* FOREIGN             */ (_HNF|     _NS|              _UPT     ),
 /* STABLE_NAME         */ (_HNF|     _NS|              _UPT     ),
+
 /* TSO                  */ (_HNF|     _NS|         _MUT|_UPT     ),
-/* BLOCKED_FETCH       */ (_HNF|     _NS                        ),
-/* FETCH_ME            */ (_HNF|     _NS                        ),
-/* EVACUATED           */ ( 0                                   )
+/* BLOCKED_FETCH       */ (_HNF|     _NS|         _MUT|_UPT     ),
+/* FETCH_ME            */ (_HNF|     _NS|         _MUT|_UPT     ),
+/* FETCH_ME_BQ          */ (         _NS|         _MUT|_UPT     ),
+/* RBH                  */ (         _NS|         _MUT|_UPT     ),
+
+/* EVACUATED           */ ( 0                                   ),
+
+/* N_CLOSURE_TYPES      */ ( 0                                   )
 };