[project @ 1999-01-15 17:57:03 by simonm]
[ghc-hetmet.git] / ghc / includes / StgMiscClosures.h
1 /* -----------------------------------------------------------------------------
2  * $Id: StgMiscClosures.h,v 1.5 1999/01/15 17:57:04 simonm 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(BLACKHOLE_BQ_entry);
25 STGFUN(BCO_entry);
26 STGFUN(EVACUATED_entry);
27 STGFUN(FOREIGN_entry);
28 STGFUN(WEAK_entry);
29 STGFUN(DEAD_WEAK_entry);
30 STGFUN(TSO_entry);
31 STGFUN(FULL_MVAR_entry);
32 STGFUN(EMPTY_MVAR_entry);
33 STGFUN(ARR_WORDS_entry);
34 STGFUN(MUT_ARR_WORDS_entry);
35 STGFUN(MUT_ARR_PTRS_entry);
36 STGFUN(MUT_ARR_PTRS_FROZEN_entry);
37 STGFUN(MUT_VAR_entry);
38 STGFUN(END_TSO_QUEUE_entry);
39 STGFUN(MUT_CONS_entry);
40 STGFUN(END_MUT_LIST_entry);
41 STGFUN(dummy_ret_entry);
42
43 /* info tables */
44
45 extern const StgInfoTable IND_info;
46 extern const StgInfoTable IND_STATIC_info;
47 extern const StgInfoTable IND_PERM_info;
48 extern const StgInfoTable IND_OLDGEN_info;
49 extern const StgInfoTable IND_OLDGEN_PERM_info;
50 extern const StgInfoTable CAF_UNENTERED_info;
51 extern const StgInfoTable CAF_ENTERED_info;
52 extern const StgInfoTable CAF_BLACKHOLE_info;
53 extern const StgInfoTable BLACKHOLE_info;
54 extern const StgInfoTable BLACKHOLE_BQ_info;
55 extern const StgInfoTable BCO_info;
56 extern const StgInfoTable EVACUATED_info;
57 extern const StgInfoTable FOREIGN_info;
58 extern const StgInfoTable WEAK_info;
59 extern const StgInfoTable DEAD_WEAK_info;
60 extern const StgInfoTable FULL_MVAR_info;
61 extern const StgInfoTable EMPTY_MVAR_info;
62 extern const StgInfoTable TSO_info;
63 extern const StgInfoTable ARR_WORDS_info;
64 extern const StgInfoTable MUT_ARR_WORDS_info;
65 extern const StgInfoTable MUT_ARR_PTRS_info;
66 extern const StgInfoTable MUT_ARR_PTRS_FROZEN_info;
67 extern const StgInfoTable MUT_VAR_info;
68 extern const StgInfoTable END_TSO_QUEUE_info;
69 extern const StgInfoTable MUT_CONS_info;
70 extern const StgInfoTable END_MUT_LIST_info;
71 extern const StgInfoTable catch_info;
72 extern const StgInfoTable seq_info;
73 extern const StgInfoTable dummy_ret_info;
74
75 #ifdef INTERPRETER
76
77 EXTFUN(Hugs_CONSTR_entry);
78 extern const StgInfoTable ret_bco_info;
79
80 #endif /* INTERPRETER */
81
82 /* closures */
83
84 extern StgClosure END_TSO_QUEUE_closure;
85 extern StgClosure END_MUT_LIST_closure;
86 extern StgClosure dummy_ret_closure;
87
88 extern StgIntCharlikeClosure CHARLIKE_closure[];
89 extern StgIntCharlikeClosure INTLIKE_closure[];
90
91 /* standard entry points */
92
93 extern StgFun stg_error_entry;
94
95 /* standard selector thunks */
96
97 EI_ __sel_0_upd_info;
98 EI_ __sel_1_upd_info;
99 EI_ __sel_2_upd_info;
100 EI_ __sel_3_upd_info;
101 EI_ __sel_4_upd_info;
102 EI_ __sel_5_upd_info;
103 EI_ __sel_6_upd_info;
104 EI_ __sel_7_upd_info;
105 EI_ __sel_8_upd_info;
106 EI_ __sel_8_upd_info;
107 EI_ __sel_9_upd_info;
108 EI_ __sel_10_upd_info;
109 EI_ __sel_11_upd_info;
110 EI_ __sel_12_upd_info;
111 EI_ __sel_13_upd_info;
112 EI_ __sel_14_upd_info;
113 EI_ __sel_15_upd_info;
114
115 EI_ __sel_0_noupd_info;
116 EI_ __sel_1_noupd_info;
117 EI_ __sel_2_noupd_info;
118 EI_ __sel_3_noupd_info;
119 EI_ __sel_4_noupd_info;
120 EI_ __sel_5_noupd_info;
121 EI_ __sel_6_noupd_info;
122 EI_ __sel_7_noupd_info;
123 EI_ __sel_8_noupd_info;
124 EI_ __sel_9_noupd_info;
125 EI_ __sel_10_noupd_info;
126 EI_ __sel_11_noupd_info;
127 EI_ __sel_12_noupd_info;
128 EI_ __sel_13_noupd_info;
129 EI_ __sel_14_noupd_info;
130 EI_ __sel_15_noupd_info;
131
132 /* standard ap thunks */
133
134 EI_ __ap_1_upd_info;
135 EI_ __ap_2_upd_info;
136 EI_ __ap_3_upd_info;
137 EI_ __ap_4_upd_info;
138 EI_ __ap_5_upd_info;
139 EI_ __ap_6_upd_info;
140 EI_ __ap_7_upd_info;
141 EI_ __ap_8_upd_info;
142