[project @ 2000-08-21 15:27:18 by simonmar]
[ghc-hetmet.git] / ghc / rts / ClosureFlags.c
index ded6c03..89e98e4 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: ClosureFlags.c,v 1.1 1999/03/15 16:30:27 simonm 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,14 +55,14 @@ 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|              _UPT     ),
+/* CAF_BLACKHOLE       */ (     _BTM|_NS|         _MUT|_UPT     ),
 /* RET_BCO             */ (     _BTM                            ),
 /* RET_SMALL           */ (     _BTM|                       _SRT),
 /* RET_VEC_SMALL       */ (     _BTM|                       _SRT),
@@ -65,8 +73,10 @@ StgWord16 closure_flags[] = {
 /* CATCH_FRAME         */ (     _BTM                            ),
 /* STOP_FRAME          */ (     _BTM                            ),
 /* SEQ_FRAME           */ (     _BTM                            ),
-/* BLACKHOLE           */ (          _NS|              _UPT     ),
+/* BLACKHOLE           */ (          _NS|         _MUT|_UPT     ),
 /* BLACKHOLE_BQ                */ (          _NS|         _MUT|_UPT     ),
+/* SE_BLACKHOLE                */ (          _NS|              _UPT     ),
+/* SE_CAF_BLACKHOLE    */ (          _NS|              _UPT     ),
 /* MVAR                        */ (_HNF|     _NS|         _MUT|_UPT     ),
 /* ARR_WORDS           */ (_HNF|     _NS|              _UPT     ),
 /* MUT_ARR_PTRS                */ (_HNF|     _NS|         _MUT|_UPT     ),
@@ -75,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                                   )
 };