[project @ 1998-12-02 13:17:09 by simonm]
[ghc-hetmet.git] / ghc / includes / StgMiscClosures.h
1 /* -----------------------------------------------------------------------------
2  * $Id: StgMiscClosures.h,v 1.2 1998/12/02 13:21:39 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(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(ARR_PTRS_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(dummy_ret_entry);
40
41 /* info tables */
42
43 extern const StgInfoTable IND_info;
44 extern const StgInfoTable IND_STATIC_info;
45 extern const StgInfoTable IND_PERM_info;
46 extern const StgInfoTable IND_OLDGEN_info;
47 extern const StgInfoTable IND_OLDGEN_PERM_info;
48 extern const StgInfoTable CAF_UNENTERED_info;
49 extern const StgInfoTable CAF_ENTERED_info;
50 extern const StgInfoTable CAF_BLACKHOLE_info;
51 extern const StgInfoTable BLACKHOLE_info;
52 extern const StgInfoTable BCO_info;
53 extern const StgInfoTable EVACUATED_info;
54 extern const StgInfoTable FOREIGN_info;
55 extern const StgInfoTable WEAK_info;
56 extern const StgInfoTable DEAD_WEAK_info;
57 extern const StgInfoTable FULL_MVAR_info;
58 extern const StgInfoTable EMPTY_MVAR_info;
59 extern const StgInfoTable TSO_info;
60 extern const StgInfoTable ARR_WORDS_info;
61 extern const StgInfoTable MUT_ARR_WORDS_info;
62 extern const StgInfoTable ARR_PTRS_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 catch_info;
68 extern const StgInfoTable seq_info;
69 extern const StgInfoTable dummy_ret_info;
70
71 #ifdef INTERPRETER
72
73 EXTFUN(Hugs_CONSTR_entry);
74 extern const StgInfoTable ret_bco_info;
75
76 #endif /* INTERPRETER */
77
78 /* closures */
79
80 extern const StgClosure END_TSO_QUEUE_closure;
81 extern const StgClosure dummy_ret_closure;
82
83 extern StgIntCharlikeClosure CHARLIKE_closure[];
84 extern StgIntCharlikeClosure INTLIKE_closure[];
85
86 /* standard entry points */
87
88 extern StgFun stg_error_entry;
89
90 /* standard selector thunks */
91
92 EI_ __sel_0_upd_info;
93 EI_ __sel_1_upd_info;
94 EI_ __sel_2_upd_info;
95 EI_ __sel_3_upd_info;
96 EI_ __sel_4_upd_info;
97 EI_ __sel_5_upd_info;
98 EI_ __sel_6_upd_info;
99 EI_ __sel_7_upd_info;
100 EI_ __sel_8_upd_info;
101 EI_ __sel_8_upd_info;
102 EI_ __sel_9_upd_info;
103 EI_ __sel_10_upd_info;
104 EI_ __sel_11_upd_info;
105 EI_ __sel_12_upd_info;
106 EI_ __sel_13_upd_info;
107 EI_ __sel_14_upd_info;
108 EI_ __sel_15_upd_info;
109
110 EI_ __sel_0_noupd_info;
111 EI_ __sel_1_noupd_info;
112 EI_ __sel_2_noupd_info;
113 EI_ __sel_3_noupd_info;
114 EI_ __sel_4_noupd_info;
115 EI_ __sel_5_noupd_info;
116 EI_ __sel_6_noupd_info;
117 EI_ __sel_7_noupd_info;
118 EI_ __sel_8_noupd_info;
119 EI_ __sel_9_noupd_info;
120 EI_ __sel_10_noupd_info;
121 EI_ __sel_11_noupd_info;
122 EI_ __sel_12_noupd_info;
123 EI_ __sel_13_noupd_info;
124 EI_ __sel_14_noupd_info;
125 EI_ __sel_15_noupd_info;
126
127 /* standard ap thunks */
128
129 EI_ __ap_1_upd_info;
130 EI_ __ap_2_upd_info;
131 EI_ __ap_3_upd_info;
132 EI_ __ap_4_upd_info;
133 EI_ __ap_5_upd_info;
134 EI_ __ap_6_upd_info;
135 EI_ __ap_7_upd_info;
136 EI_ __ap_8_upd_info;
137