[project @ 1996-01-08 20:28:12 by partain]
[ghc-hetmet.git] / ghc / includes / SMcopying.lh
1 %************************************************************************
2 %*                                                                      *
3 \section[SMcopying]{Code labels for two-space copying collectors}
4 %*                                                                      *
5 %************************************************************************
6 Multi-slurp protection:
7 \begin{code}
8 #ifndef SMCOPYING_H
9 #define SMCOPYING_H
10 \end{code}
11
12 \begin{code}
13 typedef P_ (StgEvacFun)PROTO((P_));
14 typedef P_ (*StgEvacPtr)PROTO((P_));
15
16 typedef void (StgScavFun)(STG_NO_ARGS);
17 typedef void (*StgScavPtr)(STG_NO_ARGS);
18
19 extern StgEvacFun _Evacuate_1;
20 extern StgEvacFun _Evacuate_2;
21 extern StgEvacFun _Evacuate_3;
22 extern StgEvacFun _Evacuate_4;
23 extern StgEvacFun _Evacuate_5;
24 extern StgEvacFun _Evacuate_6;
25 extern StgEvacFun _Evacuate_7;
26 extern StgEvacFun _Evacuate_8;
27 extern StgEvacFun _Evacuate_9;
28 extern StgEvacFun _Evacuate_10;
29 extern StgEvacFun _Evacuate_11;
30 extern StgEvacFun _Evacuate_12;
31
32 extern StgEvacFun _EvacuateSelector_0; /* 0-origin */
33 extern StgEvacFun _EvacuateSelector_1;
34 extern StgEvacFun _EvacuateSelector_2;
35 extern StgEvacFun _EvacuateSelector_3;
36 extern StgEvacFun _EvacuateSelector_4;
37 extern StgEvacFun _EvacuateSelector_5;
38 extern StgEvacFun _EvacuateSelector_6;
39 extern StgEvacFun _EvacuateSelector_7;
40 extern StgEvacFun _EvacuateSelector_8;
41 extern StgEvacFun _EvacuateSelector_9;
42 extern StgEvacFun _EvacuateSelector_10;
43 extern StgEvacFun _EvacuateSelector_11;
44 extern StgEvacFun _EvacuateSelector_12;
45
46 extern StgScavFun _Scavenge_1_0;
47 extern StgScavFun _Scavenge_2_0;
48 extern StgScavFun _Scavenge_3_0;
49 extern StgScavFun _Scavenge_4_0;
50 extern StgScavFun _Scavenge_5_0;
51
52 extern StgScavFun _Scavenge_2_1; /* 1 ptr,  1 non-ptr  */
53 extern StgScavFun _Scavenge_3_1; /* 1 ptr,  2 non-ptrs */
54 extern StgScavFun _Scavenge_3_2; /* 2 ptrs, 1 non-ptr  */
55
56 extern StgScavFun _Scavenge_1_1;
57 extern StgScavFun _Scavenge_2_2;
58 extern StgScavFun _Scavenge_3_3;
59 extern StgScavFun _Scavenge_4_4;
60 extern StgScavFun _Scavenge_5_5;
61 extern StgScavFun _Scavenge_6_6;
62 extern StgScavFun _Scavenge_7_7;
63 extern StgScavFun _Scavenge_8_8;
64 extern StgScavFun _Scavenge_9_9;
65 extern StgScavFun _Scavenge_10_10;
66 extern StgScavFun _Scavenge_11_11;
67 extern StgScavFun _Scavenge_12_12;
68
69 extern StgEvacFun _Evacuate_S;
70 extern StgScavFun _Scavenge_S_N;
71
72 extern StgEvacFun _Evacuate_Dyn;
73 extern StgScavFun _Scavenge_Dyn;
74
75 extern StgEvacFun _Evacuate_Tuple;
76 extern StgScavFun _Scavenge_Tuple;
77
78 extern StgEvacFun _Evacuate_Data;
79 extern StgScavFun _Scavenge_Data;
80
81 extern StgEvacFun _Evacuate_MuTuple;
82 extern StgScavFun _Scavenge_MuTuple;
83
84 #ifdef PAR
85 extern StgEvacFun _Evacuate_RBH_2;
86 extern StgEvacFun _Evacuate_RBH_3;
87 extern StgEvacFun _Evacuate_RBH_4;
88 extern StgEvacFun _Evacuate_RBH_5;
89 extern StgEvacFun _Evacuate_RBH_6;
90 extern StgEvacFun _Evacuate_RBH_7;
91 extern StgEvacFun _Evacuate_RBH_8;
92 extern StgEvacFun _Evacuate_RBH_9;
93 extern StgEvacFun _Evacuate_RBH_10;
94 extern StgEvacFun _Evacuate_RBH_11;
95 extern StgEvacFun _Evacuate_RBH_12;
96 extern StgEvacFun _Evacuate_RBH_S;
97 extern StgEvacFun _Evacuate_FetchMe;
98 extern StgEvacFun _Evacuate_BF;
99
100 extern StgScavFun _Scavenge_RBH_2_1;
101 extern StgScavFun _Scavenge_RBH_3_1;
102 extern StgScavFun _Scavenge_RBH_3_3;
103 extern StgScavFun _Scavenge_RBH_4_1;
104 extern StgScavFun _Scavenge_RBH_4_4;
105 extern StgScavFun _Scavenge_RBH_5_1;
106 extern StgScavFun _Scavenge_RBH_5_5;
107 extern StgScavFun _Scavenge_RBH_6_6;
108 extern StgScavFun _Scavenge_RBH_7_7;
109 extern StgScavFun _Scavenge_RBH_8_8;
110 extern StgScavFun _Scavenge_RBH_9_9;
111 extern StgScavFun _Scavenge_RBH_10_10;
112 extern StgScavFun _Scavenge_RBH_11_11;
113 extern StgScavFun _Scavenge_RBH_12_12;
114 extern StgScavFun _Scavenge_RBH_N;
115 extern StgScavFun _Scavenge_FetchMe;
116 extern StgScavFun _Scavenge_BF;
117 #else
118 extern StgEvacFun _Evacuate_MallocPtr;
119 extern StgScavFun _Scavenge_MallocPtr;
120 #endif /* PAR */
121
122 extern StgEvacFun _Evacuate_BH_N;
123 extern StgScavFun _Scavenge_BH_N;
124
125 extern StgEvacFun _Evacuate_BH_U;
126 extern StgScavFun _Scavenge_BH_U;
127
128 extern StgEvacFun _Evacuate_Static;
129 extern StgScavFun _Scavenge_Static;
130
131 extern StgEvacFun _Evacuate_Ind;
132 extern StgScavFun _Scavenge_Ind;
133
134 extern StgEvacFun _Evacuate_Caf;
135 extern StgScavFun _Scavenge_Caf;
136
137 #ifdef USE_COST_CENTRES
138 extern StgEvacFun _Evacuate_PI;
139 extern StgScavFun _Scavenge_PI;
140 #endif
141
142 extern StgEvacFun _Evacuate_Const;
143 extern StgScavFun _Scavenge_Const;
144
145 extern StgEvacFun _Evacuate_CharLike;
146 extern StgScavFun _Scavenge_CharLike;
147
148 extern StgEvacFun _Evacuate_IntLike;
149 extern StgScavFun _Scavenge_IntLike;
150
151 #ifdef CONCURRENT
152 extern StgEvacFun _Evacuate_BQ;
153 extern StgScavFun _Scavenge_BQ;
154
155 extern StgEvacFun _Evacuate_TSO;
156 extern StgScavFun _Scavenge_TSO;
157
158 extern StgEvacFun _Evacuate_StkO;
159 extern StgScavFun _Scavenge_StkO;
160 #endif
161
162 \end{code}
163
164 \begin{code}
165 EXTFUN(Caf_Evac_Upd_entry);
166 #if defined(GCgn)
167 EXTFUN(Forward_Ref_New_entry);
168 EXTFUN(Forward_Ref_Old_entry);
169 EXTFUN(OldRoot_Forward_Ref_entry);
170 #else
171 EXTFUN(Forward_Ref_entry);
172 #endif
173
174 \end{code}
175
176 End of multi-slurp protection:
177 \begin{code}
178 #endif /* SMCOPYING_H */
179 \end{code}