/* * List of all relocatable machine pointers * Bruno Haible 1990-2008 * Sam Steingold 2005, 2007 */ /* There are three kinds of relocatable pointers: LPSEUDOCODE(fun) local C function defined in stream.d XPSEUDOCODE(rettype,name,arglist) external C function XPSEUDODATA(type,name) external C variable The macro PSEUDO, defined in the including file, determines the macro expansion for these macros. #define PSEUDO PSEUDO_A for the declaration of the code table #define PSEUDO PSEUDO_B for the declaration of the data table #define PSEUDO PSEUDO_C for the declaration of both tables' elements #define PSEUDO PSEUDO_D for the initialization of the code table #define PSEUDO PSEUDO_E for the initialization of the data table */ #define LPSEUDOCODE CONCAT(LCODE_,PSEUDO) #define XPSEUDOCODE CONCAT(XCODE_,PSEUDO) #define XPSEUDODATA CONCAT(XDATA_,PSEUDO) #define LCODE_PSEUDO_A(fun) Pseudofun pseudo_##fun; #define LCODE_PSEUDO_B(fun) #define LCODE_PSEUDO_C(fun) #define LCODE_PSEUDO_D(fun) (Pseudofun)(&fun), #define LCODE_PSEUDO_E(fun) #define XCODE_PSEUDO_A(rettype,name,arglist) Pseudofun pseudo_##name; #define XCODE_PSEUDO_B(rettype,name,arglist) #define XCODE_PSEUDO_C(rettype,name,arglist) extern rettype name arglist; #define XCODE_PSEUDO_D(rettype,name,arglist) (Pseudofun)(&name), #define XCODE_PSEUDO_E(rettype,name,arglist) #define XDATA_PSEUDO_A(type,name) #define XDATA_PSEUDO_B(type,name) Pseudofun pseudo_##name; #define XDATA_PSEUDO_C(type,name) extern type name; #define XDATA_PSEUDO_D(type,name) #define XDATA_PSEUDO_E(type,name) (Pseudofun)(&name), /* For hashtabl.d. */ XPSEUDOCODE(bool, eql, (object obj1, object obj2)) XPSEUDOCODE(bool, equal, (object obj1, object obj2)) XPSEUDOCODE(bool, equalp, (object obj1, object obj2)) XPSEUDOCODE(uint32, hashcode1stable, (object obj)) XPSEUDOCODE(uint32, hashcode2, (object obj)) XPSEUDOCODE(uint32, hashcode2stable, (object obj)) XPSEUDOCODE(uint32, hashcode3, (object obj)) XPSEUDOCODE(uint32, hashcode3stable, (object obj)) XPSEUDOCODE(uint32, hashcode4, (object obj)) XPSEUDOCODE(bool, gcinvariant_hashcode1_p, (object obj)) XPSEUDOCODE(bool, gcinvariant_hashcode1stable_p, (object obj)) XPSEUDOCODE(bool, gcinvariant_hashcode2_p, (object obj)) XPSEUDOCODE(bool, gcinvariant_hashcode2stable_p, (object obj)) XPSEUDOCODE(bool, gcinvariant_hashcode3_p, (object obj)) XPSEUDOCODE(bool, gcinvariant_hashcode3stable_p, (object obj)) XPSEUDOCODE(bool, gcinvariant_hashcode4_p, (object obj)) XPSEUDOCODE(bool, hash_lookup_builtin, (object ht, object obj, bool allowgc, gcv_object_t** KVptr_, gcv_object_t** Iptr_)) #ifndef GENERATIONAL_GC XPSEUDOCODE(bool, hash_lookup_builtin_with_rehash, (object ht, object obj, bool allowgc, gcv_object_t** KVptr_, gcv_object_t** Iptr_)) #endif XPSEUDOCODE(bool, hash_lookup_user, (object ht, object obj, bool allowgc, gcv_object_t** KVptr_, gcv_object_t** Iptr_)) LPSEUDOCODE(rd_by_error) LPSEUDOCODE(rd_by_array_error) LPSEUDOCODE(rd_by_array_dummy) LPSEUDOCODE(wr_by_error) LPSEUDOCODE(wr_by_array_error) LPSEUDOCODE(wr_by_array_dummy) LPSEUDOCODE(rd_ch_error) LPSEUDOCODE(pk_ch_dummy) LPSEUDOCODE(rd_ch_array_error) LPSEUDOCODE(rd_ch_array_dummy) LPSEUDOCODE(wr_ch_error) LPSEUDOCODE(wr_ch_array_error) LPSEUDOCODE(wr_ch_array_dummy) LPSEUDOCODE(wr_ch_pending_newline) LPSEUDOCODE(wr_ch_array_pending_newline) 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) LPSEUDOCODE(wr_by_broad) LPSEUDOCODE(wr_by_array_broad) LPSEUDOCODE(wr_ch_broad) LPSEUDOCODE(wr_ch_array_broad) LPSEUDOCODE(rd_by_concat) LPSEUDOCODE(rd_by_array_concat) LPSEUDOCODE(rd_ch_concat) LPSEUDOCODE(pk_ch_concat) LPSEUDOCODE(rd_ch_array_concat) LPSEUDOCODE(wr_by_twoway) LPSEUDOCODE(wr_by_array_twoway) LPSEUDOCODE(wr_ch_twoway) LPSEUDOCODE(wr_ch_array_twoway) LPSEUDOCODE(rd_by_twoway) LPSEUDOCODE(rd_by_array_twoway) LPSEUDOCODE(rd_ch_twoway) LPSEUDOCODE(pk_ch_twoway) LPSEUDOCODE(rd_ch_array_twoway) LPSEUDOCODE(rd_by_echo) LPSEUDOCODE(rd_by_array_echo) LPSEUDOCODE(rd_ch_echo) LPSEUDOCODE(rd_ch_array_echo) LPSEUDOCODE(rd_ch_str_in) LPSEUDOCODE(rd_ch_array_str_in) LPSEUDOCODE(wr_ch_str_out) LPSEUDOCODE(wr_ch_array_str_out) LPSEUDOCODE(wr_ch_str_push) LPSEUDOCODE(wr_ch_pphelp) LPSEUDOCODE(wr_ch_array_pphelp) LPSEUDOCODE(rd_ch_buff_in) LPSEUDOCODE(wr_ch_buff_out) #ifdef GENERIC_STREAMS 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) #endif LPSEUDOCODE(rd_by_iau_unbuffered) LPSEUDOCODE(rd_by_ias_unbuffered) LPSEUDOCODE(rd_by_iau8_unbuffered) LPSEUDOCODE(rd_by_array_iau8_unbuffered) LPSEUDOCODE(wr_by_iau_unbuffered) LPSEUDOCODE(wr_by_ias_unbuffered) LPSEUDOCODE(wr_by_iau8_unbuffered) LPSEUDOCODE(wr_by_array_iau8_unbuffered) LPSEUDOCODE(rd_ch_unbuffered) LPSEUDOCODE(rd_ch_array_unbuffered) LPSEUDOCODE(wr_ch_unbuffered_unix) LPSEUDOCODE(wr_ch_array_unbuffered_unix) LPSEUDOCODE(wr_ch_unbuffered_mac) LPSEUDOCODE(wr_ch_array_unbuffered_mac) LPSEUDOCODE(wr_ch_unbuffered_dos) LPSEUDOCODE(wr_ch_array_unbuffered_dos) LPSEUDOCODE(rd_ch_buffered) LPSEUDOCODE(rd_ch_array_buffered) LPSEUDOCODE(wr_ch_buffered_unix) LPSEUDOCODE(wr_ch_array_buffered_unix) LPSEUDOCODE(wr_ch_buffered_mac) LPSEUDOCODE(wr_ch_array_buffered_mac) LPSEUDOCODE(wr_ch_buffered_dos) LPSEUDOCODE(wr_ch_array_buffered_dos) 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) LPSEUDOCODE(rd_by_array_iau8_buffered) 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) LPSEUDOCODE(wr_by_array_iau8_buffered) #if defined(KEYBOARD) LPSEUDOCODE(rd_ch_keyboard) #endif #ifdef UNIX LPSEUDOCODE(wr_ch_terminal1) LPSEUDOCODE(rd_ch_terminal1) LPSEUDOCODE(wr_ch_array_terminal1) #if defined(GNU_READLINE) LPSEUDOCODE(wr_ch_terminal3) LPSEUDOCODE(rd_ch_terminal3) LPSEUDOCODE(wr_ch_array_terminal3) #endif #endif #ifdef SCREEN LPSEUDOCODE(wr_ch_window) #endif #ifdef PRINTER LPSEUDOCODE(wr_ch_printer) #endif /* External definitions from ENCODING.D: */ #ifdef ENABLE_UNICODE XPSEUDOCODE(object, base64_range, (object encoding, uintL start, uintL end, uintL maxintervals)) XPSEUDOCODE(uintL, base64_mblen, (object encoding, const uintB* src, const uintB* srcend)) XPSEUDOCODE(void, base64_mbstowcs, (object encoding, object stream, const uintB* *srcp, const uintB* srcend, chart* *destp, chart* destend)) XPSEUDOCODE(uintL, base64_wcslen, (object encoding, const chart* src, const chart* srcend)) XPSEUDOCODE(void, base64_wcstombs, (object encoding, object stream, const chart* *srcp, const chart* srcend, uintB* *destp, uintB* destend)) XPSEUDOCODE(object, all_range, (object encoding, uintL start, uintL end, uintL maxintervals)) XPSEUDOCODE(object, bmp_range, (object encoding, uintL start, uintL end, uintL maxintervals)) XPSEUDOCODE(uintL, uni16_mblen, (object encoding, const uintB* src, const uintB* srcend)) XPSEUDOCODE(void, uni16be_mbstowcs, (object encoding, object stream, const uintB* *srcp, const uintB* srcend, chart* *destp, chart* destend)) XPSEUDOCODE(void, uni16le_mbstowcs, (object encoding, object stream, const uintB* *srcp, const uintB* srcend, chart* *destp, chart* destend)) XPSEUDOCODE(uintL, uni16_wcslen, (object encoding, const chart* src, const chart* srcend)) XPSEUDOCODE(void, uni16be_wcstombs, (object encoding, object stream, const chart* *srcp, const chart* srcend, uintB* *destp, uintB* destend)) XPSEUDOCODE(void, uni16le_wcstombs, (object encoding, object stream, const chart* *srcp, const chart* srcend, uintB* *destp, uintB* destend)) XPSEUDOCODE(uintL, uni32be_mblen, (object encoding, const uintB* src, const uintB* srcend)) XPSEUDOCODE(uintL, uni32le_mblen, (object encoding, const uintB* src, const uintB* srcend)) XPSEUDOCODE(void, uni32be_mbstowcs, (object encoding, object stream, const uintB* *srcp, const uintB* srcend, chart* *destp, chart* destend)) XPSEUDOCODE(void, uni32le_mbstowcs, (object encoding, object stream, const uintB* *srcp, const uintB* srcend, chart* *destp, chart* destend)) XPSEUDOCODE(uintL, uni32_wcslen, (object encoding, const chart* src, const chart* srcend)) XPSEUDOCODE(void, uni32be_wcstombs, (object encoding, object stream, const chart* *srcp, const chart* srcend, uintB* *destp, uintB* destend)) XPSEUDOCODE(void, uni32le_wcstombs, (object encoding, object stream, const chart* *srcp, const chart* srcend, uintB* *destp, uintB* destend)) XPSEUDOCODE(uintL, utf8_mblen, (object encoding, const uintB* src, const uintB* srcend)) XPSEUDOCODE(void, utf8_mbstowcs, (object encoding, object stream, const uintB* *srcp, const uintB* srcend, chart* *destp, chart* destend)) XPSEUDOCODE(uintL, utf8_wcslen, (object encoding, const chart* src, const chart* srcend)) XPSEUDOCODE(void, utf8_wcstombs, (object encoding, object stream, const chart* *srcp, const chart* srcend, uintB* *destp, uintB* destend)) XPSEUDOCODE(uintL, java_mblen, (object encoding, const uintB* src, const uintB* srcend)) XPSEUDOCODE(void, java_mbstowcs, (object encoding, object stream, const uintB* *srcp, const uintB* srcend, chart* *destp, chart* destend)) XPSEUDOCODE(uintL, java_wcslen, (object encoding, const chart* src, const chart* srcend)) XPSEUDOCODE(void, java_wcstombs, (object encoding, object stream, const chart* *srcp, const chart* srcend, uintB* *destp, uintB* destend)) XPSEUDOCODE(uintL, nls_mblen, (object encoding, const uintB* src, const uintB* srcend)) XPSEUDOCODE(void, nls_mbstowcs, (object encoding, object stream, const uintB* *srcp, const uintB* srcend, chart* *destp, chart* destend)) XPSEUDOCODE(uintL, nls_asciiext_mblen, (object encoding, const uintB* src, const uintB* srcend)) XPSEUDOCODE(void, nls_asciiext_mbstowcs, (object encoding, object stream, const uintB* *srcp, const uintB* srcend, chart* *destp, chart* destend)) XPSEUDOCODE(uintL, nls_wcslen, (object encoding, const chart* src, const chart* srcend)) XPSEUDOCODE(void, nls_wcstombs, (object encoding, object stream, const chart* *srcp, const chart* srcend, uintB* *destp, uintB* destend)) XPSEUDOCODE(uintL, nls_asciiext_wcslen, (object encoding, const chart* src, const chart* srcend)) XPSEUDOCODE(void, nls_asciiext_wcstombs, (object encoding, object stream, const chart* *srcp, const chart* srcend, uintB* *destp, uintB* destend)) XPSEUDOCODE(object, nls_range, (object encoding, uintL start, uintL end, uintL maxintervals)) XPSEUDODATA(struct nls_table_t, nls_ascii_table) XPSEUDODATA(struct nls_table_t, nls_iso8859_1_table) XPSEUDODATA(struct nls_table_t, nls_iso8859_2_table) XPSEUDODATA(struct nls_table_t, nls_iso8859_3_table) XPSEUDODATA(struct nls_table_t, nls_iso8859_4_table) XPSEUDODATA(struct nls_table_t, nls_iso8859_5_table) XPSEUDODATA(struct nls_table_t, nls_iso8859_6_table) XPSEUDODATA(struct nls_table_t, nls_iso8859_7_table) XPSEUDODATA(struct nls_table_t, nls_iso8859_8_table) XPSEUDODATA(struct nls_table_t, nls_iso8859_9_table) XPSEUDODATA(struct nls_table_t, nls_iso8859_10_table) XPSEUDODATA(struct nls_table_t, nls_iso8859_13_table) XPSEUDODATA(struct nls_table_t, nls_iso8859_14_table) XPSEUDODATA(struct nls_table_t, nls_iso8859_15_table) XPSEUDODATA(struct nls_table_t, nls_iso8859_16_table) XPSEUDODATA(struct nls_table_t, nls_koi8_r_table) XPSEUDODATA(struct nls_table_t, nls_koi8_u_table) XPSEUDODATA(struct nls_table_t, nls_mac_arabic_table) XPSEUDODATA(struct nls_table_t, nls_mac_centraleurope_table) XPSEUDODATA(struct nls_table_t, nls_mac_croatian_table) XPSEUDODATA(struct nls_table_t, nls_mac_cyrillic_table) XPSEUDODATA(struct nls_table_t, nls_mac_dingbat_table) XPSEUDODATA(struct nls_table_t, nls_mac_greek_table) XPSEUDODATA(struct nls_table_t, nls_mac_hebrew_table) XPSEUDODATA(struct nls_table_t, nls_mac_iceland_table) XPSEUDODATA(struct nls_table_t, nls_mac_roman_table) XPSEUDODATA(struct nls_table_t, nls_mac_romania_table) XPSEUDODATA(struct nls_table_t, nls_mac_symbol_table) XPSEUDODATA(struct nls_table_t, nls_mac_thai_table) XPSEUDODATA(struct nls_table_t, nls_mac_turkish_table) XPSEUDODATA(struct nls_table_t, nls_mac_ukraine_table) XPSEUDODATA(struct nls_table_t, nls_cp437_ms_table) XPSEUDODATA(struct nls_table_t, nls_cp437_ibm_table) XPSEUDODATA(struct nls_table_t, nls_cp737_table) XPSEUDODATA(struct nls_table_t, nls_cp775_table) XPSEUDODATA(struct nls_table_t, nls_cp850_table) XPSEUDODATA(struct nls_table_t, nls_cp852_ms_table) XPSEUDODATA(struct nls_table_t, nls_cp852_ibm_table) XPSEUDODATA(struct nls_table_t, nls_cp855_table) XPSEUDODATA(struct nls_table_t, nls_cp857_table) XPSEUDODATA(struct nls_table_t, nls_cp860_ms_table) XPSEUDODATA(struct nls_table_t, nls_cp860_ibm_table) XPSEUDODATA(struct nls_table_t, nls_cp861_ms_table) XPSEUDODATA(struct nls_table_t, nls_cp861_ibm_table) XPSEUDODATA(struct nls_table_t, nls_cp862_ms_table) XPSEUDODATA(struct nls_table_t, nls_cp862_ibm_table) XPSEUDODATA(struct nls_table_t, nls_cp863_ms_table) XPSEUDODATA(struct nls_table_t, nls_cp863_ibm_table) XPSEUDODATA(struct nls_table_t, nls_cp864_ms_table) XPSEUDODATA(struct nls_table_t, nls_cp864_ibm_table) XPSEUDODATA(struct nls_table_t, nls_cp865_ms_table) XPSEUDODATA(struct nls_table_t, nls_cp865_ibm_table) XPSEUDODATA(struct nls_table_t, nls_cp866_table) XPSEUDODATA(struct nls_table_t, nls_cp869_ms_table) XPSEUDODATA(struct nls_table_t, nls_cp869_ibm_table) XPSEUDODATA(struct nls_table_t, nls_cp874_ms_table) XPSEUDODATA(struct nls_table_t, nls_cp874_ibm_table) XPSEUDODATA(struct nls_table_t, nls_cp1250_table) XPSEUDODATA(struct nls_table_t, nls_cp1251_table) XPSEUDODATA(struct nls_table_t, nls_cp1252_table) XPSEUDODATA(struct nls_table_t, nls_cp1253_table) XPSEUDODATA(struct nls_table_t, nls_cp1254_table) XPSEUDODATA(struct nls_table_t, nls_cp1256_table) XPSEUDODATA(struct nls_table_t, nls_cp1257_table) XPSEUDODATA(struct nls_table_t, nls_hp_roman8_table) XPSEUDODATA(struct nls_table_t, nls_jisx0201_table) #ifdef HAVE_GOOD_ICONV XPSEUDOCODE(uintL, iconv_mblen, (object encoding, const uintB* src, const uintB* srcend)) XPSEUDOCODE(void, iconv_mbstowcs, (object encoding, object stream, const uintB* *srcp, const uintB* srcend, chart* *destp, chart* destend)) XPSEUDOCODE(uintL, iconv_wcslen, (object encoding, const chart* src, const chart* srcend)) XPSEUDOCODE(void, iconv_wcstombs, (object encoding, object stream, const chart* *srcp, const chart* srcend, uintB* *destp, uintB* destend)) XPSEUDOCODE(object, iconv_range, (object encoding, uintL start, uintL end, uintL maxintervals)) #endif #endif