1 /*
2  * List of all relocatable machine pointers
3  * Bruno Haible 1990-2008, 2017
4  * Sam Steingold 2005, 2007
5  */
6 
7 /* There are three kinds of relocatable pointers:
8    LPSEUDOCODE(fun)                    local C function defined in stream.d
9    XPSEUDOCODE(rettype,name,arglist)   external C function
10    XPSEUDODATA(type,name)              external C variable
11 
12  The macro PSEUDO, defined in the including file, determines the macro
13  expansion for these macros.
14    #define PSEUDO PSEUDO_A   for the declaration of the code table
15    #define PSEUDO PSEUDO_B   for the declaration of the data table
16    #define PSEUDO PSEUDO_C   for the declaration of both tables' elements
17    #define PSEUDO PSEUDO_D   for the initialization of the code table
18    #define PSEUDO PSEUDO_E   for the initialization of the data table
19    #define PSEUDO PSEUDO_F   for the initialization of the code name table
20    #define PSEUDO PSEUDO_G   for the initialization of the data name table
21 
22  When a source file defines symbols used in this file, it must be compiled
23  with FALIGNFLAGS. When you add a new file, update makemake.in accordingly. */
24 
25 #define LPSEUDOCODE CONCAT(LCODE_,PSEUDO)
26 #define XPSEUDOCODE CONCAT(XCODE_,PSEUDO)
27 #define XPSEUDODATA CONCAT(XDATA_,PSEUDO)
28 
29 #define LCODE_PSEUDO_A(fun)  Pseudofun pseudo_##fun;
30 #define LCODE_PSEUDO_B(fun)
31 #define LCODE_PSEUDO_C(fun)
32 #define LCODE_PSEUDO_D(fun)  (Pseudofun)(&fun),
33 #define LCODE_PSEUDO_E(fun)
34 #define LCODE_PSEUDO_F(fun)  STRING(fun),
35 #define LCODE_PSEUDO_G(fun)
36 #define XCODE_PSEUDO_A(rettype,name,arglist)  Pseudofun pseudo_##name;
37 #define XCODE_PSEUDO_B(rettype,name,arglist)
38 #define XCODE_PSEUDO_C(rettype,name,arglist)  extern rettype name arglist;
39 #define XCODE_PSEUDO_D(rettype,name,arglist)  (Pseudofun)(&name),
40 #define XCODE_PSEUDO_E(rettype,name,arglist)
41 #define XCODE_PSEUDO_F(rettype,name,arglist)  STRING(name),
42 #define XCODE_PSEUDO_G(rettype,name,arglist)
43 #define XDATA_PSEUDO_A(type,name)
44 #define XDATA_PSEUDO_B(type,name)  Pseudofun pseudo_##name;
45 #define XDATA_PSEUDO_C(type,name)  extern type name;
46 #define XDATA_PSEUDO_D(type,name)
47 #define XDATA_PSEUDO_E(type,name)  (Pseudofun)(&name),
48 #define XDATA_PSEUDO_F(type,name)
49 #define XDATA_PSEUDO_G(type,name)  STRING(name),
50 
51 
52 /* Defined in predtype.d, for hashtabl.d. */
53 XPSEUDOCODE(bool, eql, (object obj1, object obj2))
54 XPSEUDOCODE(bool, equal, (object obj1, object obj2))
55 XPSEUDOCODE(bool, equalp, (object obj1, object obj2))
56 /* Defined in hashtabl.d. */
57 XPSEUDOCODE(uint32, hashcode1stable, (object obj))
58 XPSEUDOCODE(uint32, hashcode2, (object obj))
59 XPSEUDOCODE(uint32, hashcode2stable, (object obj))
60 XPSEUDOCODE(uint32, hashcode3, (object obj))
61 XPSEUDOCODE(uint32, hashcode3stable, (object obj))
62 XPSEUDOCODE(uint32, hashcode4, (object obj))
63 XPSEUDOCODE(bool, gcinvariant_hashcode1_p, (object obj))
64 XPSEUDOCODE(bool, gcinvariant_hashcode1stable_p, (object obj))
65 XPSEUDOCODE(bool, gcinvariant_hashcode2_p, (object obj))
66 XPSEUDOCODE(bool, gcinvariant_hashcode2stable_p, (object obj))
67 XPSEUDOCODE(bool, gcinvariant_hashcode3_p, (object obj))
68 XPSEUDOCODE(bool, gcinvariant_hashcode3stable_p, (object obj))
69 XPSEUDOCODE(bool, gcinvariant_hashcode4_p, (object obj))
70 XPSEUDOCODE(bool, hash_lookup_builtin, (object ht, object obj, bool allowgc, gcv_object_t** KVptr_, gcv_object_t** Iptr_))
71 #ifndef GENERATIONAL_GC
72 XPSEUDOCODE(bool, hash_lookup_builtin_with_rehash, (object ht, object obj, bool allowgc, gcv_object_t** KVptr_, gcv_object_t** Iptr_))
73 #endif
74 XPSEUDOCODE(bool, hash_lookup_user, (object ht, object obj, bool allowgc, gcv_object_t** KVptr_, gcv_object_t** Iptr_))
75 
76 /* Defined in stream.d. */
77 
78 LPSEUDOCODE(rd_by_error) LPSEUDOCODE(rd_by_array_error) LPSEUDOCODE(rd_by_array_dummy)
79 LPSEUDOCODE(wr_by_error) LPSEUDOCODE(wr_by_array_error) LPSEUDOCODE(wr_by_array_dummy)
80 LPSEUDOCODE(rd_ch_error) LPSEUDOCODE(pk_ch_dummy) LPSEUDOCODE(rd_ch_array_error) LPSEUDOCODE(rd_ch_array_dummy)
81 LPSEUDOCODE(wr_ch_error) LPSEUDOCODE(wr_ch_array_error) LPSEUDOCODE(wr_ch_array_dummy)
82 LPSEUDOCODE(wr_ch_pending_newline) LPSEUDOCODE(wr_ch_array_pending_newline)
83 
84 LPSEUDOCODE(rd_by_synonym) LPSEUDOCODE(rd_by_array_synonym) LPSEUDOCODE(wr_by_synonym) LPSEUDOCODE(wr_by_array_synonym) LPSEUDOCODE(rd_ch_synonym) LPSEUDOCODE(pk_ch_synonym) LPSEUDOCODE(rd_ch_array_synonym) LPSEUDOCODE(wr_ch_synonym) LPSEUDOCODE(wr_ch_array_synonym)
85 LPSEUDOCODE(wr_by_broad) LPSEUDOCODE(wr_by_array_broad) LPSEUDOCODE(wr_ch_broad) LPSEUDOCODE(wr_ch_array_broad)
86 LPSEUDOCODE(rd_by_concat) LPSEUDOCODE(rd_by_array_concat) LPSEUDOCODE(rd_ch_concat) LPSEUDOCODE(pk_ch_concat) LPSEUDOCODE(rd_ch_array_concat)
87 LPSEUDOCODE(wr_by_twoway) LPSEUDOCODE(wr_by_array_twoway) LPSEUDOCODE(wr_ch_twoway) LPSEUDOCODE(wr_ch_array_twoway)
88 LPSEUDOCODE(rd_by_twoway) LPSEUDOCODE(rd_by_array_twoway) LPSEUDOCODE(rd_ch_twoway) LPSEUDOCODE(pk_ch_twoway) LPSEUDOCODE(rd_ch_array_twoway)
89 LPSEUDOCODE(rd_by_echo) LPSEUDOCODE(rd_by_array_echo) LPSEUDOCODE(rd_ch_echo) LPSEUDOCODE(rd_ch_array_echo)
90 LPSEUDOCODE(rd_ch_str_in) LPSEUDOCODE(rd_ch_array_str_in)
91 LPSEUDOCODE(wr_ch_str_out) LPSEUDOCODE(wr_ch_array_str_out)
92 LPSEUDOCODE(wr_ch_str_push)
93 LPSEUDOCODE(wr_ch_pphelp) LPSEUDOCODE(wr_ch_array_pphelp)
94 LPSEUDOCODE(rd_ch_buff_in)
95 LPSEUDOCODE(wr_ch_buff_out)
96 #ifdef GENERIC_STREAMS
97 LPSEUDOCODE(rd_ch_generic) LPSEUDOCODE(pk_ch_generic) LPSEUDOCODE(wr_ch_generic) LPSEUDOCODE(wr_ch_array_generic) LPSEUDOCODE(rd_by_generic) LPSEUDOCODE(wr_by_generic)
98 #endif
99 
100 LPSEUDOCODE(rd_by_iau_unbuffered) LPSEUDOCODE(rd_by_ias_unbuffered) LPSEUDOCODE(rd_by_iau8_unbuffered) LPSEUDOCODE(rd_by_array_iau8_unbuffered)
101 LPSEUDOCODE(wr_by_iau_unbuffered) LPSEUDOCODE(wr_by_ias_unbuffered) LPSEUDOCODE(wr_by_iau8_unbuffered) LPSEUDOCODE(wr_by_array_iau8_unbuffered)
102 LPSEUDOCODE(rd_ch_unbuffered) LPSEUDOCODE(rd_ch_array_unbuffered)
103 LPSEUDOCODE(wr_ch_unbuffered_unix) LPSEUDOCODE(wr_ch_array_unbuffered_unix)
104 LPSEUDOCODE(wr_ch_unbuffered_mac) LPSEUDOCODE(wr_ch_array_unbuffered_mac)
105 LPSEUDOCODE(wr_ch_unbuffered_dos) LPSEUDOCODE(wr_ch_array_unbuffered_dos)
106 LPSEUDOCODE(rd_ch_buffered) LPSEUDOCODE(rd_ch_array_buffered)
107 LPSEUDOCODE(wr_ch_buffered_unix) LPSEUDOCODE(wr_ch_array_buffered_unix)
108 LPSEUDOCODE(wr_ch_buffered_mac) LPSEUDOCODE(wr_ch_array_buffered_mac)
109 LPSEUDOCODE(wr_ch_buffered_dos) LPSEUDOCODE(wr_ch_array_buffered_dos)
110 LPSEUDOCODE(rd_by_iau_buffered) LPSEUDOCODE(rd_by_ias_buffered) LPSEUDOCODE(rd_by_ibu_buffered) LPSEUDOCODE(rd_by_ibs_buffered) LPSEUDOCODE(rd_by_icu_buffered) LPSEUDOCODE(rd_by_ics_buffered) LPSEUDOCODE(rd_by_iau8_buffered)
111 LPSEUDOCODE(rd_by_array_iau8_buffered)
112 LPSEUDOCODE(wr_by_iau_buffered) LPSEUDOCODE(wr_by_ias_buffered) LPSEUDOCODE(wr_by_ibu_buffered) LPSEUDOCODE(wr_by_ibs_buffered) LPSEUDOCODE(wr_by_icu_buffered) LPSEUDOCODE(wr_by_ics_buffered) LPSEUDOCODE(wr_by_iau8_buffered)
113 LPSEUDOCODE(wr_by_array_iau8_buffered)
114 #if defined(KEYBOARD)
115 LPSEUDOCODE(rd_ch_keyboard)
116 #endif
117 #ifdef UNIX
118 LPSEUDOCODE(wr_ch_terminal1) LPSEUDOCODE(rd_ch_terminal1) LPSEUDOCODE(wr_ch_array_terminal1)
119 #if defined(GNU_READLINE)
120 LPSEUDOCODE(wr_ch_terminal3) LPSEUDOCODE(rd_ch_terminal3) LPSEUDOCODE(wr_ch_array_terminal3)
121 #endif
122 #endif
123 #ifdef SCREEN
124 LPSEUDOCODE(wr_ch_window)
125 #endif
126 #ifdef PRINTER
127 LPSEUDOCODE(wr_ch_printer)
128 #endif
129 
130 /* External definitions from ENCODING.D: */
131 
132 #ifdef ENABLE_UNICODE
133 XPSEUDOCODE(object, base64_range, (object encoding, uintL start, uintL end, uintL maxintervals))
134 XPSEUDOCODE(uintL, base64_mblen, (object encoding, const uintB* src, const uintB* srcend))
135 XPSEUDOCODE(void, base64_mbstowcs, (object encoding, object stream, const uintB* *srcp, const uintB* srcend, chart* *destp, chart* destend))
136 XPSEUDOCODE(uintL, base64_wcslen, (object encoding, const chart* src, const chart* srcend))
137 XPSEUDOCODE(void, base64_wcstombs, (object encoding, object stream, const chart* *srcp, const chart* srcend, uintB* *destp, uintB* destend))
138 XPSEUDOCODE(object, all_range, (object encoding, uintL start, uintL end, uintL maxintervals))
139 XPSEUDOCODE(object, bmp_range, (object encoding, uintL start, uintL end, uintL maxintervals))
140 XPSEUDOCODE(uintL, uni16_mblen, (object encoding, const uintB* src, const uintB* srcend))
141 XPSEUDOCODE(void, uni16be_mbstowcs, (object encoding, object stream, const uintB* *srcp, const uintB* srcend, chart* *destp, chart* destend))
142 XPSEUDOCODE(void, uni16le_mbstowcs, (object encoding, object stream, const uintB* *srcp, const uintB* srcend, chart* *destp, chart* destend))
143 XPSEUDOCODE(uintL, uni16_wcslen, (object encoding, const chart* src, const chart* srcend))
144 XPSEUDOCODE(void, uni16be_wcstombs, (object encoding, object stream, const chart* *srcp, const chart* srcend, uintB* *destp, uintB* destend))
145 XPSEUDOCODE(void, uni16le_wcstombs, (object encoding, object stream, const chart* *srcp, const chart* srcend, uintB* *destp, uintB* destend))
146 XPSEUDOCODE(uintL, uni32be_mblen, (object encoding, const uintB* src, const uintB* srcend))
147 XPSEUDOCODE(uintL, uni32le_mblen, (object encoding, const uintB* src, const uintB* srcend))
148 XPSEUDOCODE(void, uni32be_mbstowcs, (object encoding, object stream, const uintB* *srcp, const uintB* srcend, chart* *destp, chart* destend))
149 XPSEUDOCODE(void, uni32le_mbstowcs, (object encoding, object stream, const uintB* *srcp, const uintB* srcend, chart* *destp, chart* destend))
150 XPSEUDOCODE(uintL, uni32_wcslen, (object encoding, const chart* src, const chart* srcend))
151 XPSEUDOCODE(void, uni32be_wcstombs, (object encoding, object stream, const chart* *srcp, const chart* srcend, uintB* *destp, uintB* destend))
152 XPSEUDOCODE(void, uni32le_wcstombs, (object encoding, object stream, const chart* *srcp, const chart* srcend, uintB* *destp, uintB* destend))
153 XPSEUDOCODE(uintL, utf8_mblen, (object encoding, const uintB* src, const uintB* srcend))
154 XPSEUDOCODE(void, utf8_mbstowcs, (object encoding, object stream, const uintB* *srcp, const uintB* srcend, chart* *destp, chart* destend))
155 XPSEUDOCODE(uintL, utf8_wcslen, (object encoding, const chart* src, const chart* srcend))
156 XPSEUDOCODE(void, utf8_wcstombs, (object encoding, object stream, const chart* *srcp, const chart* srcend, uintB* *destp, uintB* destend))
157 XPSEUDOCODE(uintL, java_mblen, (object encoding, const uintB* src, const uintB* srcend))
158 XPSEUDOCODE(void, java_mbstowcs, (object encoding, object stream, const uintB* *srcp, const uintB* srcend, chart* *destp, chart* destend))
159 XPSEUDOCODE(uintL, java_wcslen, (object encoding, const chart* src, const chart* srcend))
160 XPSEUDOCODE(void, java_wcstombs, (object encoding, object stream, const chart* *srcp, const chart* srcend, uintB* *destp, uintB* destend))
161 XPSEUDOCODE(uintL, nls_mblen, (object encoding, const uintB* src, const uintB* srcend))
162 XPSEUDOCODE(void, nls_mbstowcs, (object encoding, object stream, const uintB* *srcp, const uintB* srcend, chart* *destp, chart* destend))
163 XPSEUDOCODE(uintL, nls_asciiext_mblen, (object encoding, const uintB* src, const uintB* srcend))
164 XPSEUDOCODE(void, nls_asciiext_mbstowcs, (object encoding, object stream, const uintB* *srcp, const uintB* srcend, chart* *destp, chart* destend))
165 XPSEUDOCODE(uintL, nls_wcslen, (object encoding, const chart* src, const chart* srcend))
166 XPSEUDOCODE(void, nls_wcstombs, (object encoding, object stream, const chart* *srcp, const chart* srcend, uintB* *destp, uintB* destend))
167 XPSEUDOCODE(uintL, nls_asciiext_wcslen, (object encoding, const chart* src, const chart* srcend))
168 XPSEUDOCODE(void, nls_asciiext_wcstombs, (object encoding, object stream, const chart* *srcp, const chart* srcend, uintB* *destp, uintB* destend))
169 XPSEUDOCODE(object, nls_range, (object encoding, uintL start, uintL end, uintL maxintervals))
170 XPSEUDODATA(struct nls_table_t, nls_ascii_table)
171 XPSEUDODATA(struct nls_table_t, nls_iso8859_1_table)
172 XPSEUDODATA(struct nls_table_t, nls_iso8859_2_table)
173 XPSEUDODATA(struct nls_table_t, nls_iso8859_3_table)
174 XPSEUDODATA(struct nls_table_t, nls_iso8859_4_table)
175 XPSEUDODATA(struct nls_table_t, nls_iso8859_5_table)
176 XPSEUDODATA(struct nls_table_t, nls_iso8859_6_table)
177 XPSEUDODATA(struct nls_table_t, nls_iso8859_7_table)
178 XPSEUDODATA(struct nls_table_t, nls_iso8859_8_table)
179 XPSEUDODATA(struct nls_table_t, nls_iso8859_9_table)
180 XPSEUDODATA(struct nls_table_t, nls_iso8859_10_table)
181 XPSEUDODATA(struct nls_table_t, nls_iso8859_13_table)
182 XPSEUDODATA(struct nls_table_t, nls_iso8859_14_table)
183 XPSEUDODATA(struct nls_table_t, nls_iso8859_15_table)
184 XPSEUDODATA(struct nls_table_t, nls_iso8859_16_table)
185 XPSEUDODATA(struct nls_table_t, nls_koi8_r_table)
186 XPSEUDODATA(struct nls_table_t, nls_koi8_u_table)
187 XPSEUDODATA(struct nls_table_t, nls_mac_arabic_table)
188 XPSEUDODATA(struct nls_table_t, nls_mac_centraleurope_table)
189 XPSEUDODATA(struct nls_table_t, nls_mac_croatian_table)
190 XPSEUDODATA(struct nls_table_t, nls_mac_cyrillic_table)
191 XPSEUDODATA(struct nls_table_t, nls_mac_dingbat_table)
192 XPSEUDODATA(struct nls_table_t, nls_mac_greek_table)
193 XPSEUDODATA(struct nls_table_t, nls_mac_hebrew_table)
194 XPSEUDODATA(struct nls_table_t, nls_mac_iceland_table)
195 XPSEUDODATA(struct nls_table_t, nls_mac_roman_table)
196 XPSEUDODATA(struct nls_table_t, nls_mac_romania_table)
197 XPSEUDODATA(struct nls_table_t, nls_mac_symbol_table)
198 XPSEUDODATA(struct nls_table_t, nls_mac_thai_table)
199 XPSEUDODATA(struct nls_table_t, nls_mac_turkish_table)
200 XPSEUDODATA(struct nls_table_t, nls_mac_ukraine_table)
201 XPSEUDODATA(struct nls_table_t, nls_cp437_ms_table)
202 XPSEUDODATA(struct nls_table_t, nls_cp437_ibm_table)
203 XPSEUDODATA(struct nls_table_t, nls_cp737_table)
204 XPSEUDODATA(struct nls_table_t, nls_cp775_table)
205 XPSEUDODATA(struct nls_table_t, nls_cp850_table)
206 XPSEUDODATA(struct nls_table_t, nls_cp852_ms_table)
207 XPSEUDODATA(struct nls_table_t, nls_cp852_ibm_table)
208 XPSEUDODATA(struct nls_table_t, nls_cp855_table)
209 XPSEUDODATA(struct nls_table_t, nls_cp857_table)
210 XPSEUDODATA(struct nls_table_t, nls_cp860_ms_table)
211 XPSEUDODATA(struct nls_table_t, nls_cp860_ibm_table)
212 XPSEUDODATA(struct nls_table_t, nls_cp861_ms_table)
213 XPSEUDODATA(struct nls_table_t, nls_cp861_ibm_table)
214 XPSEUDODATA(struct nls_table_t, nls_cp862_ms_table)
215 XPSEUDODATA(struct nls_table_t, nls_cp862_ibm_table)
216 XPSEUDODATA(struct nls_table_t, nls_cp863_ms_table)
217 XPSEUDODATA(struct nls_table_t, nls_cp863_ibm_table)
218 XPSEUDODATA(struct nls_table_t, nls_cp864_ms_table)
219 XPSEUDODATA(struct nls_table_t, nls_cp864_ibm_table)
220 XPSEUDODATA(struct nls_table_t, nls_cp865_ms_table)
221 XPSEUDODATA(struct nls_table_t, nls_cp865_ibm_table)
222 XPSEUDODATA(struct nls_table_t, nls_cp866_table)
223 XPSEUDODATA(struct nls_table_t, nls_cp869_ms_table)
224 XPSEUDODATA(struct nls_table_t, nls_cp869_ibm_table)
225 XPSEUDODATA(struct nls_table_t, nls_cp874_ms_table)
226 XPSEUDODATA(struct nls_table_t, nls_cp874_ibm_table)
227 XPSEUDODATA(struct nls_table_t, nls_cp1250_table)
228 XPSEUDODATA(struct nls_table_t, nls_cp1251_table)
229 XPSEUDODATA(struct nls_table_t, nls_cp1252_table)
230 XPSEUDODATA(struct nls_table_t, nls_cp1253_table)
231 XPSEUDODATA(struct nls_table_t, nls_cp1254_table)
232 XPSEUDODATA(struct nls_table_t, nls_cp1256_table)
233 XPSEUDODATA(struct nls_table_t, nls_cp1257_table)
234 XPSEUDODATA(struct nls_table_t, nls_hp_roman8_table)
235 XPSEUDODATA(struct nls_table_t, nls_jisx0201_table)
236 #ifdef HAVE_GOOD_ICONV
237 XPSEUDOCODE(uintL, iconv_mblen, (object encoding, const uintB* src, const uintB* srcend))
238 XPSEUDOCODE(void, iconv_mbstowcs, (object encoding, object stream, const uintB* *srcp, const uintB* srcend, chart* *destp, chart* destend))
239 XPSEUDOCODE(uintL, iconv_wcslen, (object encoding, const chart* src, const chart* srcend))
240 XPSEUDOCODE(void, iconv_wcstombs, (object encoding, object stream, const chart* *srcp, const chart* srcend, uintB* *destp, uintB* destend))
241 XPSEUDOCODE(object, iconv_range, (object encoding, uintL start, uintL end, uintL maxintervals))
242 #endif
243 #endif
244