summaryrefslogtreecommitdiff
path: root/ghc/includes/Prelude.h
blob: 33015c5f2356167bfa3b3e82c53dc13ae530d869 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
/* -----------------------------------------------------------------------------
 * $Id: Prelude.h,v 1.9 1999/07/14 11:15:09 simonmar Exp $
 *
 * (c) The GHC Team, 1998-1999
 *
 * Prelude identifiers that we sometimes need to refer to in the RTS.
 *
 * ---------------------------------------------------------------------------*/

#ifndef PRELUDE_H
#define PRELUDE_H

#ifdef COMPILING_RTS

#ifdef COMPILER
extern DLL_IMPORT const StgClosure PrelBase_Z91Z93_static_closure;
extern DLL_IMPORT const StgClosure PrelBase_Z40Z41_static_closure;
extern DLL_IMPORT const StgClosure PrelBase_True_static_closure;
extern DLL_IMPORT const StgClosure PrelBase_False_static_closure;
extern DLL_IMPORT const StgClosure PrelPack_unpackCString_closure;
extern DLL_IMPORT const StgClosure PrelException_stackOverflow_closure;
extern DLL_IMPORT const StgClosure PrelException_heapOverflow_closure;
extern DLL_IMPORT const StgClosure PrelException_NonTermination_static_closure;
extern const StgClosure PrelMain_mainIO_closure;

extern DLL_IMPORT const StgInfoTable PrelBase_Czh_static_info;
extern DLL_IMPORT const StgInfoTable PrelBase_Izh_static_info;
extern DLL_IMPORT const StgInfoTable PrelBase_Fzh_static_info;
extern DLL_IMPORT const StgInfoTable PrelBase_Dzh_static_info;
extern DLL_IMPORT const StgInfoTable PrelAddr_Azh_static_info;
extern DLL_IMPORT const StgInfoTable PrelAddr_Wzh_static_info;
extern DLL_IMPORT const StgInfoTable PrelBase_Czh_con_info;
extern DLL_IMPORT const StgInfoTable PrelBase_Izh_con_info;
extern DLL_IMPORT const StgInfoTable PrelBase_Fzh_con_info;
extern DLL_IMPORT const StgInfoTable PrelBase_Dzh_con_info;
extern DLL_IMPORT const StgInfoTable PrelAddr_Azh_con_info;
extern DLL_IMPORT const StgInfoTable PrelAddr_Wzh_con_info;
extern DLL_IMPORT const StgInfoTable PrelAddr_I64zh_con_info;
extern DLL_IMPORT const StgInfoTable PrelAddr_W64zh_con_info;
extern DLL_IMPORT const StgInfoTable PrelStable_StablePtr_static_info;
extern DLL_IMPORT const StgInfoTable PrelStable_StablePtr_con_info;

/* Define canonical names so we can abstract away from the actual
 * module these names are defined in.
 */

#define Nil_closure            PrelBase_ZMZN_static_closure
#define Unit_closure           PrelBase_Z0T_static_closure
#define True_closure           PrelBase_True_static_closure
#define False_closure          PrelBase_False_static_closure
#define stackOverflow_closure  PrelException_stackOverflow_closure
#define heapOverflow_closure   PrelException_heapOverflow_closure
#define NonTermination_closure PrelException_NonTermination_static_closure
#define Czh_static_info        PrelBase_Czh_static_info
#define Izh_static_info        PrelBase_Izh_static_info
#define Fzh_static_info        PrelBase_Fzh_static_info
#define Dzh_static_info        PrelBase_Dzh_static_info
#define Azh_static_info        PrelAddr_Azh_static_info
#define Wzh_static_info        PrelAddr_Wzh_static_info
#define Czh_con_info           PrelBase_Czh_con_info
#define Izh_con_info           PrelBase_Izh_con_info
#define Fzh_con_info           PrelBase_Fzh_con_info
#define Dzh_con_info           PrelBase_Dzh_con_info
#define Azh_con_info           PrelAddr_Azh_con_info
#define Wzh_con_info           PrelAddr_Wzh_con_info
#define W64zh_con_info         PrelAddr_W64zh_con_info
#define I64zh_con_info         PrelAddr_I64zh_con_info
#define StablePtr_static_info  PrelStable_StablePtr_static_info
#define StablePtr_con_info     PrelStable_StablePtr_con_info

#define mainIO_closure         PrelMain_mainIO_closure
#define unpackCString_closure  PrelPack_unpackCString_closure

#else /* INTERPRETER, I guess */

extern const StgInfoTable Czh_con_info;
extern const StgInfoTable Izh_con_info;
extern const StgInfoTable I64zh_con_info;
extern const StgInfoTable Fzh_con_info;
extern const StgInfoTable Dzh_con_info;
extern const StgInfoTable Azh_con_info;
extern const StgInfoTable Wzh_con_info;
extern const StgInfoTable StablePtr_con_info;

extern const StgInfoTable Czh_static_info;
extern const StgInfoTable Izh_static_info;
extern const StgInfoTable I64zh_static_info;
extern const StgInfoTable Fzh_static_info;
extern const StgInfoTable Dzh_static_info;
extern const StgInfoTable Azh_static_info;
extern const StgInfoTable Wzh_static_info;
extern const StgInfoTable StablePtr_static_info;

#define W64zh_con_info        I64zh_con_info
#define W64zh_static_info     I64zh_con_info

#endif

#endif /* COMPILING_RTS */

#endif /* PRELUDE_H */