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