[project @ 2006-01-17 16:13:18 by simonmar]
[ghc-hetmet.git] / ghc / includes / ClosureTypes.h
index eb0a12a..f884026 100644 (file)
@@ -1,62 +1,99 @@
 /* ----------------------------------------------------------------------------
- * $Id: ClosureTypes.h,v 1.4 1999/01/14 16:57:07 simonm Exp $
  * 
- * Closure Type Constants
+ * (c) The GHC Team, 1998-2005
+ *
+ * Closure Type Constants: out here because the native code generator
+ * needs to get at them.
  *
  * -------------------------------------------------------------------------- */
 
 #ifndef CLOSURETYPES_H
 #define CLOSURETYPES_H
 
-/* Out here because the native code generator needs to get at them. */
+/* 
+ * WARNING WARNING WARNING
+ *
+ * Keep the closure tags contiguous: rts/ClosureFlags.c relies on
+ * this.
+ *
+ * If you add or delete any closure types, don't forget to update
+ * the closure flags table in rts/ClosureFlags.c.
+ */
 
 /* Object tag 0 raises an internal error */
 #define INVALID_OBJECT          0
 #define CONSTR                  1
-/* #define CONSTR_p_np */       
-#define CONSTR_INTLIKE         2
-#define CONSTR_CHARLIKE                3
-#define CONSTR_STATIC          4
-#define CONSTR_NOCAF_STATIC     5
-#define FUN                    6
-#define FUN_STATIC             7
-#define THUNK                  8
-/* #define THUNK_p_np */        
-#define THUNK_STATIC           9
-#define THUNK_SELECTOR         10
-#define BCO                    11
-#define AP_UPD                 12
-#define PAP                    13
-#define IND                    14
-#define IND_OLDGEN             15
-#define IND_PERM               16
-#define IND_OLDGEN_PERM                17
-#define IND_STATIC             18
-#define CAF_UNENTERED           19
-#define CAF_ENTERED            20
-#define CAF_BLACKHOLE          21
-#define RET_BCO                 22
-#define RET_SMALL              23
-#define RET_VEC_SMALL          24
-#define RET_BIG                        25
-#define RET_VEC_BIG            26
-#define RET_DYN                        27
-#define UPDATE_FRAME           28
-#define CATCH_FRAME            29
-#define STOP_FRAME             30
-#define SEQ_FRAME              31
-#define BLACKHOLE              32
-#define MVAR                   33
-#define ARR_WORDS              34
-#define MUT_ARR_WORDS          35
-#define MUT_ARR_PTRS           36
-#define MUT_ARR_PTRS_FROZEN     37
-#define MUT_VAR                        38
-#define WEAK                   49
-#define FOREIGN                        40
-#define TSO                    41
-#define BLOCKED_FETCH          42
-#define FETCH_ME                43
-#define EVACUATED               44
+#define        CONSTR_1_0              2
+#define        CONSTR_0_1              3
+#define        CONSTR_2_0              4
+#define        CONSTR_1_1              5
+#define        CONSTR_0_2              6
+#define CONSTR_INTLIKE         7 
+#define CONSTR_CHARLIKE                8 
+#define CONSTR_STATIC          9 
+#define CONSTR_NOCAF_STATIC     10
+#define FUN                    11
+#define        FUN_1_0                 12
+#define        FUN_0_1                 13
+#define        FUN_2_0                 14
+#define        FUN_1_1                 15
+#define        FUN_0_2                 16
+#define FUN_STATIC             17
+#define THUNK                  18
+#define        THUNK_1_0               19
+#define        THUNK_0_1               20
+#define        THUNK_2_0               21
+#define        THUNK_1_1               22
+#define        THUNK_0_2               23
+#define THUNK_STATIC           24
+#define THUNK_SELECTOR         25
+#define BCO                    26
+#define AP                     27
+#define PAP                    28
+#define AP_STACK                29
+#define IND                    30
+#define IND_OLDGEN             31
+#define IND_PERM               32
+#define IND_OLDGEN_PERM                33
+#define IND_STATIC             34
+#define RET_BCO                 35
+#define RET_SMALL              36
+#define RET_VEC_SMALL          37
+#define RET_BIG                        38
+#define RET_VEC_BIG            39
+#define RET_DYN                        40
+#define RET_FUN                 41
+#define UPDATE_FRAME           42
+#define CATCH_FRAME            43
+#define STOP_FRAME             44
+#define CAF_BLACKHOLE          45
+#define BLACKHOLE              46
+#define SE_BLACKHOLE           47
+#define SE_CAF_BLACKHOLE       48
+#define MVAR                   49
+#define ARR_WORDS              50
+#define MUT_ARR_PTRS_CLEAN      51
+#define MUT_ARR_PTRS_DIRTY      52
+#define MUT_ARR_PTRS_FROZEN0    53
+#define MUT_ARR_PTRS_FROZEN     54
+#define MUT_VAR_CLEAN          55
+#define MUT_VAR_DIRTY          56
+#define WEAK                   57
+#define STABLE_NAME            58
+#define TSO                    59
+#define BLOCKED_FETCH          60
+#define FETCH_ME                61
+#define FETCH_ME_BQ             62
+#define RBH                     63
+#define EVACUATED               64
+#define REMOTE_REF              65
+#define TVAR_WAIT_QUEUE         66
+#define TVAR                    67
+#define TREC_CHUNK              68
+#define TREC_HEADER             69
+#define ATOMICALLY_FRAME        70
+#define CATCH_RETRY_FRAME       71
+#define CATCH_STM_FRAME         72
+#define N_CLOSURE_TYPES         73
 
-#endif CLOSURETYPES_H
+#endif /* CLOSURETYPES_H */