%************************************************************************ %* * \section[SMcopying]{Code labels for two-space copying collectors} %* * %************************************************************************ Multi-slurp protection: \begin{code} #ifndef SMCOPYING_H #define SMCOPYING_H \end{code} \begin{code} typedef P_ (StgEvacFun)PROTO((P_)); typedef P_ (*StgEvacPtr)PROTO((P_)); typedef void (StgScavFun)(STG_NO_ARGS); typedef void (*StgScavPtr)(STG_NO_ARGS); extern StgEvacFun _Evacuate_1; extern StgEvacFun _Evacuate_2; extern StgEvacFun _Evacuate_3; extern StgEvacFun _Evacuate_4; extern StgEvacFun _Evacuate_5; extern StgEvacFun _Evacuate_6; extern StgEvacFun _Evacuate_7; extern StgEvacFun _Evacuate_8; extern StgEvacFun _Evacuate_9; extern StgEvacFun _Evacuate_10; extern StgEvacFun _Evacuate_11; extern StgEvacFun _Evacuate_12; extern StgEvacFun _EvacuateSelector_0; /* 0-origin */ extern StgEvacFun _EvacuateSelector_1; extern StgEvacFun _EvacuateSelector_2; extern StgEvacFun _EvacuateSelector_3; extern StgEvacFun _EvacuateSelector_4; extern StgEvacFun _EvacuateSelector_5; extern StgEvacFun _EvacuateSelector_6; extern StgEvacFun _EvacuateSelector_7; extern StgEvacFun _EvacuateSelector_8; extern StgEvacFun _EvacuateSelector_9; extern StgEvacFun _EvacuateSelector_10; extern StgEvacFun _EvacuateSelector_11; extern StgEvacFun _EvacuateSelector_12; extern StgScavFun _Scavenge_1_0; extern StgScavFun _Scavenge_2_0; extern StgScavFun _Scavenge_3_0; extern StgScavFun _Scavenge_4_0; extern StgScavFun _Scavenge_5_0; extern StgScavFun _Scavenge_2_1; /* 1 ptr, 1 non-ptr */ extern StgScavFun _Scavenge_3_1; /* 1 ptr, 2 non-ptrs */ extern StgScavFun _Scavenge_3_2; /* 2 ptrs, 1 non-ptr */ extern StgScavFun _Scavenge_1_1; extern StgScavFun _Scavenge_2_2; extern StgScavFun _Scavenge_3_3; extern StgScavFun _Scavenge_4_4; extern StgScavFun _Scavenge_5_5; extern StgScavFun _Scavenge_6_6; extern StgScavFun _Scavenge_7_7; extern StgScavFun _Scavenge_8_8; extern StgScavFun _Scavenge_9_9; extern StgScavFun _Scavenge_10_10; extern StgScavFun _Scavenge_11_11; extern StgScavFun _Scavenge_12_12; extern StgEvacFun _Evacuate_S; extern StgScavFun _Scavenge_S_N; extern StgEvacFun _Evacuate_Dyn; extern StgScavFun _Scavenge_Dyn; extern StgEvacFun _Evacuate_Tuple; extern StgScavFun _Scavenge_Tuple; extern StgEvacFun _Evacuate_Data; extern StgScavFun _Scavenge_Data; extern StgEvacFun _Evacuate_MuTuple; extern StgScavFun _Scavenge_MuTuple; #ifdef PAR extern StgEvacFun _Evacuate_RBH_2; extern StgEvacFun _Evacuate_RBH_3; extern StgEvacFun _Evacuate_RBH_4; extern StgEvacFun _Evacuate_RBH_5; extern StgEvacFun _Evacuate_RBH_6; extern StgEvacFun _Evacuate_RBH_7; extern StgEvacFun _Evacuate_RBH_8; extern StgEvacFun _Evacuate_RBH_9; extern StgEvacFun _Evacuate_RBH_10; extern StgEvacFun _Evacuate_RBH_11; extern StgEvacFun _Evacuate_RBH_12; extern StgEvacFun _Evacuate_RBH_S; extern StgEvacFun _Evacuate_FetchMe; extern StgEvacFun _Evacuate_BF; extern StgScavFun _Scavenge_RBH_2_1; extern StgScavFun _Scavenge_RBH_3_1; extern StgScavFun _Scavenge_RBH_3_3; extern StgScavFun _Scavenge_RBH_4_1; extern StgScavFun _Scavenge_RBH_4_4; extern StgScavFun _Scavenge_RBH_5_1; extern StgScavFun _Scavenge_RBH_5_5; extern StgScavFun _Scavenge_RBH_6_6; extern StgScavFun _Scavenge_RBH_7_7; extern StgScavFun _Scavenge_RBH_8_8; extern StgScavFun _Scavenge_RBH_9_9; extern StgScavFun _Scavenge_RBH_10_10; extern StgScavFun _Scavenge_RBH_11_11; extern StgScavFun _Scavenge_RBH_12_12; extern StgScavFun _Scavenge_RBH_N; extern StgScavFun _Scavenge_FetchMe; extern StgScavFun _Scavenge_BF; #else extern StgEvacFun _Evacuate_MallocPtr; extern StgScavFun _Scavenge_MallocPtr; #endif /* PAR */ extern StgEvacFun _Evacuate_BH_N; extern StgScavFun _Scavenge_BH_N; extern StgEvacFun _Evacuate_BH_U; extern StgScavFun _Scavenge_BH_U; extern StgEvacFun _Evacuate_Static; extern StgScavFun _Scavenge_Static; extern StgEvacFun _Evacuate_Ind; extern StgScavFun _Scavenge_Ind; extern StgEvacFun _Evacuate_Caf; extern StgScavFun _Scavenge_Caf; #ifdef USE_COST_CENTRES extern StgEvacFun _Evacuate_PI; extern StgScavFun _Scavenge_PI; #endif extern StgEvacFun _Evacuate_Const; extern StgScavFun _Scavenge_Const; extern StgEvacFun _Evacuate_CharLike; extern StgScavFun _Scavenge_CharLike; extern StgEvacFun _Evacuate_IntLike; extern StgScavFun _Scavenge_IntLike; #ifdef CONCURRENT extern StgEvacFun _Evacuate_BQ; extern StgScavFun _Scavenge_BQ; extern StgEvacFun _Evacuate_TSO; extern StgScavFun _Scavenge_TSO; extern StgEvacFun _Evacuate_StkO; extern StgScavFun _Scavenge_StkO; #endif \end{code} \begin{code} EXTFUN(Caf_Evac_Upd_entry); #if defined(GCgn) EXTFUN(Forward_Ref_New_entry); EXTFUN(Forward_Ref_Old_entry); EXTFUN(OldRoot_Forward_Ref_entry); #else EXTFUN(Forward_Ref_entry); #endif \end{code} End of multi-slurp protection: \begin{code} #endif /* SMCOPYING_H */ \end{code}