RTS tidyup sweep, first phase
[ghc-hetmet.git] / includes / rts / storage / ClosureTypes.h
1 /* ----------------------------------------------------------------------------
2  * 
3  * (c) The GHC Team, 1998-2005
4  *
5  * Closure Type Constants: out here because the native code generator
6  * needs to get at them.
7  *
8  * -------------------------------------------------------------------------- */
9
10 #ifndef RTS_STORAGE_CLOSURETYPES_H
11 #define RTS_STORAGE_CLOSURETYPES_H
12
13 /* 
14  * WARNING WARNING WARNING
15  *
16  * Keep the closure tags contiguous: rts/ClosureFlags.c relies on
17  * this.
18  *
19  * If you add or delete any closure types, don't forget to update
20  * the closure flags table in rts/ClosureFlags.c.
21  */
22
23 /* Object tag 0 raises an internal error */
24 #define INVALID_OBJECT          0
25 #define CONSTR                  1
26 #define CONSTR_1_0              2
27 #define CONSTR_0_1              3
28 #define CONSTR_2_0              4
29 #define CONSTR_1_1              5
30 #define CONSTR_0_2              6
31 #define CONSTR_STATIC           7
32 #define CONSTR_NOCAF_STATIC     8
33 #define FUN                     9 
34 #define FUN_1_0                 10
35 #define FUN_0_1                 11
36 #define FUN_2_0                 12
37 #define FUN_1_1                 13
38 #define FUN_0_2                 14
39 #define FUN_STATIC              15
40 #define THUNK                   16
41 #define THUNK_1_0               17
42 #define THUNK_0_1               18
43 #define THUNK_2_0               19
44 #define THUNK_1_1               20
45 #define THUNK_0_2               21
46 #define THUNK_STATIC            22
47 #define THUNK_SELECTOR          23
48 #define BCO                     24
49 #define AP                      25
50 #define PAP                     26
51 #define AP_STACK                27
52 #define IND                     28
53 #define IND_OLDGEN              29
54 #define IND_PERM                30
55 #define IND_OLDGEN_PERM         31
56 #define IND_STATIC              32
57 #define RET_BCO                 33
58 #define RET_SMALL               34
59 #define RET_BIG                 35
60 #define RET_DYN                 36
61 #define RET_FUN                 37
62 #define UPDATE_FRAME            38
63 #define CATCH_FRAME             39
64 #define STOP_FRAME              40
65 #define CAF_BLACKHOLE           41
66 #define BLACKHOLE               42
67 #define MVAR_CLEAN              43
68 #define MVAR_DIRTY              44
69 #define ARR_WORDS               45
70 #define MUT_ARR_PTRS_CLEAN      46
71 #define MUT_ARR_PTRS_DIRTY      47
72 #define MUT_ARR_PTRS_FROZEN0    48
73 #define MUT_ARR_PTRS_FROZEN     49
74 #define MUT_VAR_CLEAN           50
75 #define MUT_VAR_DIRTY           51
76 #define WEAK                    52
77 #define STABLE_NAME             53
78 #define TSO                     54
79 #define BLOCKED_FETCH           55
80 #define FETCH_ME                56
81 #define FETCH_ME_BQ             57
82 #define RBH                     58
83 #define REMOTE_REF              59
84 #define TVAR_WATCH_QUEUE        60
85 #define INVARIANT_CHECK_QUEUE   61
86 #define ATOMIC_INVARIANT        62
87 #define TVAR                    63
88 #define TREC_CHUNK              64
89 #define TREC_HEADER             65
90 #define ATOMICALLY_FRAME        66
91 #define CATCH_RETRY_FRAME       67
92 #define CATCH_STM_FRAME         68
93 #define WHITEHOLE               69
94 #define N_CLOSURE_TYPES         70
95
96 #endif /* RTS_STORAGE_CLOSURETYPES_H */