X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=includes%2Frts%2Fstorage%2FClosureTypes.h;fp=includes%2Frts%2Fstorage%2FClosureTypes.h;h=3415d423a35487504d6df6311a5374d623cbc2f8;hb=a2a67cd520b9841114d69a87a423dabcb3b4368e;hp=0000000000000000000000000000000000000000;hpb=5d379cbe65e406d5c3a848fe7fcd090cafbfeb78;p=ghc-hetmet.git diff --git a/includes/rts/storage/ClosureTypes.h b/includes/rts/storage/ClosureTypes.h new file mode 100644 index 0000000..3415d42 --- /dev/null +++ b/includes/rts/storage/ClosureTypes.h @@ -0,0 +1,96 @@ +/* ---------------------------------------------------------------------------- + * + * (c) The GHC Team, 1998-2005 + * + * Closure Type Constants: out here because the native code generator + * needs to get at them. + * + * -------------------------------------------------------------------------- */ + +#ifndef RTS_STORAGE_CLOSURETYPES_H +#define RTS_STORAGE_CLOSURETYPES_H + +/* + * 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_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_STATIC 7 +#define CONSTR_NOCAF_STATIC 8 +#define FUN 9 +#define FUN_1_0 10 +#define FUN_0_1 11 +#define FUN_2_0 12 +#define FUN_1_1 13 +#define FUN_0_2 14 +#define FUN_STATIC 15 +#define THUNK 16 +#define THUNK_1_0 17 +#define THUNK_0_1 18 +#define THUNK_2_0 19 +#define THUNK_1_1 20 +#define THUNK_0_2 21 +#define THUNK_STATIC 22 +#define THUNK_SELECTOR 23 +#define BCO 24 +#define AP 25 +#define PAP 26 +#define AP_STACK 27 +#define IND 28 +#define IND_OLDGEN 29 +#define IND_PERM 30 +#define IND_OLDGEN_PERM 31 +#define IND_STATIC 32 +#define RET_BCO 33 +#define RET_SMALL 34 +#define RET_BIG 35 +#define RET_DYN 36 +#define RET_FUN 37 +#define UPDATE_FRAME 38 +#define CATCH_FRAME 39 +#define STOP_FRAME 40 +#define CAF_BLACKHOLE 41 +#define BLACKHOLE 42 +#define MVAR_CLEAN 43 +#define MVAR_DIRTY 44 +#define ARR_WORDS 45 +#define MUT_ARR_PTRS_CLEAN 46 +#define MUT_ARR_PTRS_DIRTY 47 +#define MUT_ARR_PTRS_FROZEN0 48 +#define MUT_ARR_PTRS_FROZEN 49 +#define MUT_VAR_CLEAN 50 +#define MUT_VAR_DIRTY 51 +#define WEAK 52 +#define STABLE_NAME 53 +#define TSO 54 +#define BLOCKED_FETCH 55 +#define FETCH_ME 56 +#define FETCH_ME_BQ 57 +#define RBH 58 +#define REMOTE_REF 59 +#define TVAR_WATCH_QUEUE 60 +#define INVARIANT_CHECK_QUEUE 61 +#define ATOMIC_INVARIANT 62 +#define TVAR 63 +#define TREC_CHUNK 64 +#define TREC_HEADER 65 +#define ATOMICALLY_FRAME 66 +#define CATCH_RETRY_FRAME 67 +#define CATCH_STM_FRAME 68 +#define WHITEHOLE 69 +#define N_CLOSURE_TYPES 70 + +#endif /* RTS_STORAGE_CLOSURETYPES_H */