[project @ 1999-01-15 12:47:19 by sewardj]
[ghc-hetmet.git] / ghc / includes / StgMiscClosures.h
1 /* -----------------------------------------------------------------------------
2  * $Id: StgMiscClosures.h,v 1.4 1999/01/15 12:47:19 sewardj Exp $
3  *
4  * Entry code for various built-in closure types.
5  *
6  * ---------------------------------------------------------------------------*/
7
8 /* The naming scheme here follows the naming scheme for closure types
9  * defined in InfoTables.h.  The actual info tables and entry code for
10  * these objects can be found in StgMiscClosures.hc.
11  */
12
13 /* entry code */
14
15 STGFUN(IND_entry);
16 STGFUN(IND_STATIC_entry);
17 STGFUN(IND_PERM_entry);
18 STGFUN(IND_OLDGEN_entry);
19 STGFUN(IND_OLDGEN_PERM_entry);
20 STGFUN(CAF_UNENTERED_entry);
21 STGFUN(CAF_ENTERED_entry);
22 STGFUN(CAF_BLACKHOLE_entry);
23 STGFUN(BLACKHOLE_entry);
24 STGFUN(BCO_entry);
25 STGFUN(EVACUATED_entry);
26 STGFUN(FOREIGN_entry);
27 STGFUN(WEAK_entry);
28 STGFUN(DEAD_WEAK_entry);
29 STGFUN(TSO_entry);
30 STGFUN(FULL_MVAR_entry);
31 STGFUN(EMPTY_MVAR_entry);
32 STGFUN(ARR_WORDS_entry);
33 STGFUN(MUT_ARR_WORDS_entry);
34 STGFUN(MUT_ARR_PTRS_entry);
35 STGFUN(MUT_ARR_PTRS_FROZEN_entry);
36 STGFUN(MUT_VAR_entry);
37 STGFUN(END_TSO_QUEUE_entry);
38 STGFUN(MUT_CONS_entry);
39 STGFUN(END_MUT_LIST_entry);
40 STGFUN(dummy_ret_entry);
41
42 /* info tables */
43
44 extern const StgInfoTable IND_info;
45 extern const StgInfoTable IND_STATIC_info;
46 extern const StgInfoTable IND_PERM_info;
47 extern const StgInfoTable IND_OLDGEN_info;
48 extern const StgInfoTable IND_OLDGEN_PERM_info;
49 extern const StgInfoTable CAF_UNENTERED_info;
50 extern const StgInfoTable CAF_ENTERED_info;
51 extern const StgInfoTable CAF_BLACKHOLE_info;
52 extern const StgInfoTable BLACKHOLE_info;
53 extern const StgInfoTable BCO_info;
54 extern const StgInfoTable EVACUATED_info;
55 extern const StgInfoTable FOREIGN_info;
56 extern const StgInfoTable WEAK_info;
57 extern const StgInfoTable DEAD_WEAK_info;
58 extern const StgInfoTable FULL_MVAR_info;
59 extern const StgInfoTable EMPTY_MVAR_info;
60 extern const StgInfoTable TSO_info;
61 extern const StgInfoTable ARR_WORDS_info;
62 extern const StgInfoTable MUT_ARR_WORDS_info;
63 extern const StgInfoTable MUT_ARR_PTRS_info;
64 extern const StgInfoTable MUT_ARR_PTRS_FROZEN_info;
65 extern const StgInfoTable MUT_VAR_info;
66 extern const StgInfoTable END_TSO_QUEUE_info;
67 extern const StgInfoTable MUT_CONS_info;
68 extern const StgInfoTable END_MUT_LIST_info;
69 extern const StgInfoTable catch_info;
70 extern const StgInfoTable seq_info;
71 extern const StgInfoTable dummy_ret_info;
72
73 #ifdef INTERPRETER
74
75 EXTFUN(Hugs_CONSTR_entry);
76 extern const StgInfoTable ret_bco_info;
77
78 #endif /* INTERPRETER */
79
80 /* closures */
81
82 extern StgClosure END_TSO_QUEUE_closure;
83 extern StgClosure END_MUT_LIST_closure;
84 extern StgClosure dummy_ret_closure;
85
86 extern StgIntCharlikeClosure CHARLIKE_closure[];
87 extern StgIntCharlikeClosure INTLIKE_closure[];
88
89 /* standard entry points */
90
91 extern StgFun stg_error_entry;
92
93 /* standard selector thunks */
94
95 EI_ __sel_0_upd_info;
96 EI_ __sel_1_upd_info;
97 EI_ __sel_2_upd_info;
98 EI_ __sel_3_upd_info;
99 EI_ __sel_4_upd_info;
100 EI_ __sel_5_upd_info;
101 EI_ __sel_6_upd_info;
102 EI_ __sel_7_upd_info;
103 EI_ __sel_8_upd_info;
104 EI_ __sel_8_upd_info;
105 EI_ __sel_9_upd_info;
106 EI_ __sel_10_upd_info;
107 EI_ __sel_11_upd_info;
108 EI_ __sel_12_upd_info;
109 EI_ __sel_13_upd_info;
110 EI_ __sel_14_upd_info;
111 EI_ __sel_15_upd_info;
112
113 EI_ __sel_0_noupd_info;
114 EI_ __sel_1_noupd_info;
115 EI_ __sel_2_noupd_info;
116 EI_ __sel_3_noupd_info;
117 EI_ __sel_4_noupd_info;
118 EI_ __sel_5_noupd_info;
119 EI_ __sel_6_noupd_info;
120 EI_ __sel_7_noupd_info;
121 EI_ __sel_8_noupd_info;
122 EI_ __sel_9_noupd_info;
123 EI_ __sel_10_noupd_info;
124 EI_ __sel_11_noupd_info;
125 EI_ __sel_12_noupd_info;
126 EI_ __sel_13_noupd_info;
127 EI_ __sel_14_noupd_info;
128 EI_ __sel_15_noupd_info;
129
130 /* standard ap thunks */
131
132 EI_ __ap_1_upd_info;
133 EI_ __ap_2_upd_info;
134 EI_ __ap_3_upd_info;
135 EI_ __ap_4_upd_info;
136 EI_ __ap_5_upd_info;
137 EI_ __ap_6_upd_info;
138 EI_ __ap_7_upd_info;
139 EI_ __ap_8_upd_info;
140