1 /* -----------------------------------------------------------------------------
3 * (c) The GHC Team, 1998-2005
5 * Prelude identifiers that we sometimes need to refer to in the RTS.
7 * ---------------------------------------------------------------------------*/
11 /* These definitions are required by the RTS .cmm files too, so we
12 * need declarations that we can #include into the generated .hc files.
15 #define PRELUDE_INFO(i) extern W_(i)[]
16 #define PRELUDE_CLOSURE(i) extern W_(i)[]
18 #define PRELUDE_INFO(i) extern const StgInfoTable DLL_IMPORT_DATA_VARNAME(i)
19 #define PRELUDE_CLOSURE(i) extern StgClosure DLL_IMPORT_DATA_VARNAME(i)
22 /* See Note [Wired-in exceptions are not CAFfy] in GHC.Core.Make. */
23 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziPrimziPanic_absentSumFieldError_closure
);
25 /* Define canonical names so we can abstract away from the actual
26 * modules these names are defined in.
29 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziTuple_Z0T_closure
);
30 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziTypes_True_closure
);
31 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziTypes_False_closure
);
32 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziPack_unpackCString_closure
);
33 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziPack_unpackCStringUtf8_closure
);
34 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziWeak_runFinalizzerBatch_closure
);
35 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziWeakziFinalizze_runFinalizzerBatch_closure
);
37 #if defined(IN_STG_CODE)
38 extern W_ ZCMain_main_closure
[];
40 extern StgClosure ZCMain_main_closure
;
43 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziIOziException_stackOverflow_closure
);
44 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziIOziException_heapOverflow_closure
);
45 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziIOziException_allocationLimitExceeded_closure
);
46 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziIOziException_blockedIndefinitelyOnMVar_closure
);
47 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziIOziException_blockedIndefinitelyOnSTM_closure
);
48 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziIOziException_cannotCompactFunction_closure
);
49 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziIOziException_cannotCompactPinned_closure
);
50 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziIOziException_cannotCompactMutable_closure
);
51 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziIOPort_doubleReadException_closure
);
52 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziControlziExceptionziBase_nonTermination_closure
);
53 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziControlziExceptionziBase_nestedAtomically_closure
);
54 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziEventziThread_blockedOnBadFD_closure
);
55 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziExceptionziType_divZZeroException_closure
);
56 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziExceptionziType_underflowException_closure
);
57 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziExceptionziType_overflowException_closure
);
59 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziConcziSync_runSparks_closure
);
60 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziConcziIO_ensureIOManagerIsRunning_closure
);
61 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziConcziIO_interruptIOManager_closure
);
62 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziConcziIO_ioManagerCapabilitiesChanged_closure
);
63 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziConcziSignal_runHandlersPtr_closure
);
64 #if defined(mingw32_HOST_OS)
65 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziEventziWindows_processRemoteCompletion_closure
);
68 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziTopHandler_flushStdHandles_closure
);
69 PRELUDE_CLOSURE(ghczminternal_GHCziInternalziTopHandler_runMainIO_closure
);
71 PRELUDE_INFO(ghczminternal_GHCziInternalziCString_unpackCStringzh_info
);
72 PRELUDE_INFO(ghczminternal_GHCziInternalziTypes_Czh_con_info
);
73 PRELUDE_INFO(ghczminternal_GHCziInternalziTypes_Izh_con_info
);
74 PRELUDE_INFO(ghczminternal_GHCziInternalziTypes_Fzh_con_info
);
75 PRELUDE_INFO(ghczminternal_GHCziInternalziTypes_Dzh_con_info
);
76 PRELUDE_INFO(ghczminternal_GHCziInternalziTypes_Wzh_con_info
);
78 PRELUDE_INFO(ghczminternal_GHCziInternalziPtr_Ptr_con_info
);
79 PRELUDE_INFO(ghczminternal_GHCziInternalziPtr_FunPtr_con_info
);
80 PRELUDE_INFO(ghczminternal_GHCziInternalziInt_I8zh_con_info
);
81 PRELUDE_INFO(ghczminternal_GHCziInternalziInt_I16zh_con_info
);
82 PRELUDE_INFO(ghczminternal_GHCziInternalziInt_I32zh_con_info
);
83 PRELUDE_INFO(ghczminternal_GHCziInternalziInt_I64zh_con_info
);
84 PRELUDE_INFO(ghczminternal_GHCziInternalziWord_W8zh_con_info
);
85 PRELUDE_INFO(ghczminternal_GHCziInternalziWord_W16zh_con_info
);
86 PRELUDE_INFO(ghczminternal_GHCziInternalziWord_W32zh_con_info
);
87 PRELUDE_INFO(ghczminternal_GHCziInternalziWord_W64zh_con_info
);
88 PRELUDE_INFO(ghczminternal_GHCziInternalziStable_StablePtr_con_info
);
90 #define Unit_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziTuple_Z0T_closure)
91 #define True_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziTypes_True_closure)
92 #define False_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziTypes_False_closure)
93 #define unpackCString_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziPack_unpackCString_closure)
94 #define runFinalizerBatch_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziWeakziFinalizze_runFinalizzerBatch_closure)
95 #define mainIO_closure (&ZCMain_main_closure)
97 #define runSparks_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziConcziSync_runSparks_closure)
98 #define ensureIOManagerIsRunning_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziConcziIO_ensureIOManagerIsRunning_closure)
99 #define interruptIOManager_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziConcziIO_interruptIOManager_closure)
100 #define ioManagerCapabilitiesChanged_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziConcziIO_ioManagerCapabilitiesChanged_closure)
101 #define runHandlersPtr_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziConcziSignal_runHandlersPtr_closure)
102 #if defined(mingw32_HOST_OS)
103 #define processRemoteCompletion_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziEventziWindows_processRemoteCompletion_closure)
106 #define flushStdHandles_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziTopHandler_flushStdHandles_closure)
107 #define runMainIO_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziTopHandler_runMainIO_closure)
109 #define stackOverflow_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziIOziException_stackOverflow_closure)
110 #define heapOverflow_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziIOziException_heapOverflow_closure)
111 #define allocationLimitExceeded_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziIOziException_allocationLimitExceeded_closure)
112 #define blockedIndefinitelyOnMVar_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziIOziException_blockedIndefinitelyOnMVar_closure)
113 #define blockedIndefinitelyOnSTM_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziIOziException_blockedIndefinitelyOnSTM_closure)
114 #define cannotCompactFunction_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziIOziException_cannotCompactFunction_closure)
115 #define cannotCompactPinned_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziIOziException_cannotCompactPinned_closure)
116 #define cannotCompactMutable_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziIOziException_cannotCompactMutable_closure)
117 #define nonTermination_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziControlziExceptionziBase_nonTermination_closure)
118 #define nestedAtomically_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziControlziExceptionziBase_nestedAtomically_closure)
119 #define doubleReadException DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziIOPort_doubleReadException_closure)
120 #define absentSumFieldError_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziPrimziPanic_absentSumFieldError_closure)
121 #define underflowException_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziExceptionziType_underflowException_closure)
122 #define overflowException_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziExceptionziType_overflowException_closure)
123 #define divZeroException_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziExceptionziType_divZZeroException_closure)
125 #define blockedOnBadFD_closure DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziEventziThread_blockedOnBadFD_closure)
127 #define Czh_con_info DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziTypes_Czh_con_info)
128 #define Izh_con_info DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziTypes_Izh_con_info)
129 #define Fzh_con_info DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziTypes_Fzh_con_info)
130 #define Dzh_con_info DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziTypes_Dzh_con_info)
131 #define Wzh_con_info DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziTypes_Wzh_con_info)
132 #define W8zh_con_info DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziWord_W8zh_con_info)
133 #define W16zh_con_info DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziWord_W16zh_con_info)
134 #define W32zh_con_info DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziWord_W32zh_con_info)
135 #define W64zh_con_info DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziWord_W64zh_con_info)
136 #define I8zh_con_info DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziInt_I8zh_con_info)
137 #define I16zh_con_info DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziInt_I16zh_con_info)
138 #define I32zh_con_info DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziInt_I32zh_con_info)
139 #define I64zh_con_info DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziInt_I64zh_con_info)
140 #define I64zh_con_info DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziInt_I64zh_con_info)
141 #define Ptr_con_info DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziPtr_Ptr_con_info)
142 #define FunPtr_con_info DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziPtr_FunPtr_con_info)
143 #define StablePtr_static_info DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziStable_StablePtr_static_info)
144 #define StablePtr_con_info DLL_IMPORT_DATA_REF(ghczminternal_GHCziInternalziStable_StablePtr_con_info)