/* ----------------------------------------------------------------------------
- * $Id: ClosureTypes.h,v 1.17 2002/03/26 11:09:34 simonmar Exp $
*
- * (c) The GHC Team, 1998-1999
+ * (c) The GHC Team, 1998-2005
*
- * Closure Type Constants
+ * 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 THUNK_STATIC 24
#define THUNK_SELECTOR 25
#define BCO 26
-#define AP_UPD 27
+#define AP 27
#define PAP 28
-#define IND 29
-#define IND_OLDGEN 30
-#define IND_PERM 31
-#define IND_OLDGEN_PERM 32
-#define IND_STATIC 33
-#define RET_BCO 34
-#define RET_SMALL 35
-#define RET_VEC_SMALL 36
-#define RET_BIG 37
-#define RET_VEC_BIG 38
-#define RET_DYN 39
-#define UPDATE_FRAME 40
-#define CATCH_FRAME 41
-#define STOP_FRAME 42
-#define SEQ_FRAME 43
-#define CAF_BLACKHOLE 44
-#define BLACKHOLE 45
-#define BLACKHOLE_BQ 46
+#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 51
-#define MUT_ARR_PTRS_FROZEN 52
-#define MUT_VAR 53
-#define MUT_CONS 54
-#define WEAK 55
-#define FOREIGN 56
-#define STABLE_NAME 57
-#define TSO 58
-#define BLOCKED_FETCH 59
-#define FETCH_ME 60
-#define FETCH_ME_BQ 61
-#define RBH 62
-#define EVACUATED 63
-#define REMOTE_REF 64
-#define N_CLOSURE_TYPES 65
+#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 */