1 /* -----------------------------------------------------------------------------
2 * $Id: StgMiscClosures.h,v 1.10 1999/02/11 17:40:23 simonm Exp $
4 * (c) The GHC Team, 1998-1999
6 * Entry code for various built-in closure types.
8 * ---------------------------------------------------------------------------*/
10 /* The naming scheme here follows the naming scheme for closure types
11 * defined in InfoTables.h. The actual info tables and entry code for
12 * these objects can be found in StgMiscClosures.hc.
18 STGFUN(IND_STATIC_entry);
19 STGFUN(IND_PERM_entry);
20 STGFUN(IND_OLDGEN_entry);
21 STGFUN(IND_OLDGEN_PERM_entry);
22 STGFUN(CAF_UNENTERED_entry);
23 STGFUN(CAF_ENTERED_entry);
24 STGFUN(CAF_BLACKHOLE_entry);
25 STGFUN(BLACKHOLE_entry);
26 STGFUN(BLACKHOLE_BQ_entry);
28 STGFUN(EVACUATED_entry);
29 STGFUN(FOREIGN_entry);
31 STGFUN(NO_FINALIZER_entry);
32 STGFUN(DEAD_WEAK_entry);
33 STGFUN(STABLE_NAME_entry);
35 STGFUN(FULL_MVAR_entry);
36 STGFUN(EMPTY_MVAR_entry);
37 STGFUN(ARR_WORDS_entry);
38 STGFUN(MUT_ARR_PTRS_entry);
39 STGFUN(MUT_ARR_PTRS_FROZEN_entry);
40 STGFUN(MUT_VAR_entry);
41 STGFUN(END_TSO_QUEUE_entry);
42 STGFUN(MUT_CONS_entry);
43 STGFUN(END_MUT_LIST_entry);
44 STGFUN(dummy_ret_entry);
48 extern const StgInfoTable IND_info;
49 extern const StgInfoTable IND_STATIC_info;
50 extern const StgInfoTable IND_PERM_info;
51 extern const StgInfoTable IND_OLDGEN_info;
52 extern const StgInfoTable IND_OLDGEN_PERM_info;
53 extern const StgInfoTable CAF_UNENTERED_info;
54 extern const StgInfoTable CAF_ENTERED_info;
55 extern const StgInfoTable CAF_BLACKHOLE_info;
56 extern const StgInfoTable BLACKHOLE_info;
57 extern const StgInfoTable BLACKHOLE_BQ_info;
58 extern const StgInfoTable BCO_info;
59 extern const StgInfoTable EVACUATED_info;
60 extern const StgInfoTable FOREIGN_info;
61 extern const StgInfoTable WEAK_info;
62 extern const StgInfoTable DEAD_WEAK_info;
63 extern const StgInfoTable NO_FINALIZER_info;
64 extern const StgInfoTable STABLE_NAME_info;
65 extern const StgInfoTable FULL_MVAR_info;
66 extern const StgInfoTable EMPTY_MVAR_info;
67 extern const StgInfoTable TSO_info;
68 extern const StgInfoTable ARR_WORDS_info;
69 extern const StgInfoTable MUT_ARR_PTRS_info;
70 extern const StgInfoTable MUT_ARR_PTRS_FROZEN_info;
71 extern const StgInfoTable MUT_VAR_info;
72 extern const StgInfoTable END_TSO_QUEUE_info;
73 extern const StgInfoTable MUT_CONS_info;
74 extern const StgInfoTable END_MUT_LIST_info;
75 extern const StgInfoTable catch_info;
76 extern const StgInfoTable seq_info;
77 extern const StgInfoTable dummy_ret_info;
81 EXTFUN(Hugs_CONSTR_entry);
82 extern const StgInfoTable ret_bco_info;
84 #endif /* INTERPRETER */
88 extern StgClosure END_TSO_QUEUE_closure;
89 extern StgClosure END_MUT_LIST_closure;
90 extern StgClosure NO_FINALIZER_closure;
91 extern StgClosure dummy_ret_closure;
93 extern StgIntCharlikeClosure CHARLIKE_closure[];
94 extern StgIntCharlikeClosure INTLIKE_closure[];
96 /* standard entry points */
98 extern StgFun stg_error_entry;
100 /* standard selector thunks */
102 EI_ __sel_0_upd_info;
103 EI_ __sel_1_upd_info;
104 EI_ __sel_2_upd_info;
105 EI_ __sel_3_upd_info;
106 EI_ __sel_4_upd_info;
107 EI_ __sel_5_upd_info;
108 EI_ __sel_6_upd_info;
109 EI_ __sel_7_upd_info;
110 EI_ __sel_8_upd_info;
111 EI_ __sel_8_upd_info;
112 EI_ __sel_9_upd_info;
113 EI_ __sel_10_upd_info;
114 EI_ __sel_11_upd_info;
115 EI_ __sel_12_upd_info;
116 EI_ __sel_13_upd_info;
117 EI_ __sel_14_upd_info;
118 EI_ __sel_15_upd_info;
120 EI_ __sel_0_noupd_info;
121 EI_ __sel_1_noupd_info;
122 EI_ __sel_2_noupd_info;
123 EI_ __sel_3_noupd_info;
124 EI_ __sel_4_noupd_info;
125 EI_ __sel_5_noupd_info;
126 EI_ __sel_6_noupd_info;
127 EI_ __sel_7_noupd_info;
128 EI_ __sel_8_noupd_info;
129 EI_ __sel_9_noupd_info;
130 EI_ __sel_10_noupd_info;
131 EI_ __sel_11_noupd_info;
132 EI_ __sel_12_noupd_info;
133 EI_ __sel_13_noupd_info;
134 EI_ __sel_14_noupd_info;
135 EI_ __sel_15_noupd_info;
137 /* standard ap thunks */