X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/195c09c3629c17448fb78757b0012553fb092895..9e7f2f8cb5962d385bbc6391a6b737bba4502087:/perlapi.h diff --git a/perlapi.h b/perlapi.h index 945ce26..a9c3c25 100644 --- a/perlapi.h +++ b/perlapi.h @@ -1,7 +1,9 @@ -/* +/* -*- buffer-read-only: t -*- + * * perlapi.h * - * Copyright (C) 1999, 2000, 2001, 2002, 2003, by Larry Wall and others + * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, + * 2000, 2001, 2002, 2003, 2004, 2005, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -26,11 +28,14 @@ START_EXTERN_C #undef PERLVARA #undef PERLVARI #undef PERLVARIC +#undef PERLVARISC #define PERLVAR(v,t) EXTERN_C t* Perl_##v##_ptr(pTHX); #define PERLVARA(v,n,t) typedef t PL_##v##_t[n]; \ EXTERN_C PL_##v##_t* Perl_##v##_ptr(pTHX); #define PERLVARI(v,t,i) PERLVAR(v,t) #define PERLVARIC(v,t,i) PERLVAR(v, const t) +#define PERLVARISC(v,i) typedef const char PL_##v##_t[sizeof(i)]; \ + EXTERN_C PL_##v##_t* Perl_##v##_ptr(pTHX); #include "thrdvar.h" #include "intrpvar.h" @@ -40,6 +45,16 @@ START_EXTERN_C #undef PERLVARA #undef PERLVARI #undef PERLVARIC +#undef PERLVARISC + +#ifndef PERL_GLOBAL_STRUCT +EXTERN_C Perl_ppaddr_t** Perl_Gppaddr_ptr(pTHX); +EXTERN_C Perl_check_t** Perl_Gcheck_ptr(pTHX); +EXTERN_C unsigned char** Perl_Gfold_locale_ptr(pTHX); +#define Perl_ppaddr_ptr Perl_Gppaddr_ptr +#define Perl_check_ptr Perl_Gcheck_ptr +#define Perl_fold_locale_ptr Perl_Gfold_locale_ptr +#endif END_EXTERN_C @@ -55,9 +70,9 @@ END_EXTERN_C START_EXTERN_C #ifndef DOINIT -EXT void *PL_force_link_funcs[]; +EXTCONST void * const PL_force_link_funcs[]; #else -EXT void *PL_force_link_funcs[] = { +EXTCONST void * const PL_force_link_funcs[] = { #undef PERLVAR #undef PERLVARA #undef PERLVARI @@ -66,15 +81,34 @@ EXT void *PL_force_link_funcs[] = { #define PERLVARA(v,n,t) PERLVAR(v,t) #define PERLVARI(v,t,i) PERLVAR(v,t) #define PERLVARIC(v,t,i) PERLVAR(v,t) +#define PERLVARISC(v,i) PERLVAR(v,char) + +/* In Tru64 (__DEC && __osf__) the cc option -std1 causes that one + * cannot cast between void pointers and function pointers without + * info level warnings. The PL_force_link_funcs[] would cause a few + * hundred of those warnings. In code one can circumnavigate this by using + * unions that overlay the different pointers, but in declarations one + * cannot use this trick. Therefore we just disable the warning here + * for the duration of the PL_force_link_funcs[] declaration. */ + +#if defined(__DECC) && defined(__osf__) +#pragma message save +#pragma message disable (nonstandcast) +#endif #include "thrdvar.h" #include "intrpvar.h" #include "perlvars.h" +#if defined(__DECC) && defined(__osf__) +#pragma message restore +#endif + #undef PERLVAR #undef PERLVARA #undef PERLVARI #undef PERLVARIC +#undef PERLVARISC }; #endif /* DOINIT */ @@ -196,6 +230,8 @@ END_EXTERN_C #define PL_custom_op_descs (*Perl_Icustom_op_descs_ptr(aTHX)) #undef PL_custom_op_names #define PL_custom_op_names (*Perl_Icustom_op_names_ptr(aTHX)) +#undef PL_cv_has_eval +#define PL_cv_has_eval (*Perl_Icv_has_eval_ptr(aTHX)) #undef PL_dbargs #define PL_dbargs (*Perl_Idbargs_ptr(aTHX)) #undef PL_debstash @@ -216,6 +252,8 @@ END_EXTERN_C #define PL_doswitches (*Perl_Idoswitches_ptr(aTHX)) #undef PL_dowarn #define PL_dowarn (*Perl_Idowarn_ptr(aTHX)) +#undef PL_dumper_fd +#define PL_dumper_fd (*Perl_Idumper_fd_ptr(aTHX)) #undef PL_e_script #define PL_e_script (*Perl_Ie_script_ptr(aTHX)) #undef PL_egid @@ -248,6 +286,8 @@ END_EXTERN_C #define PL_expect (*Perl_Iexpect_ptr(aTHX)) #undef PL_fdpid #define PL_fdpid (*Perl_Ifdpid_ptr(aTHX)) +#undef PL_fdscript +#define PL_fdscript (*Perl_Ifdscript_ptr(aTHX)) #undef PL_filemode #define PL_filemode (*Perl_Ifilemode_ptr(aTHX)) #undef PL_forkprocess @@ -264,6 +304,10 @@ END_EXTERN_C #define PL_glob_index (*Perl_Iglob_index_ptr(aTHX)) #undef PL_globalstash #define PL_globalstash (*Perl_Iglobalstash_ptr(aTHX)) +#undef PL_hash_seed +#define PL_hash_seed (*Perl_Ihash_seed_ptr(aTHX)) +#undef PL_hash_seed_set +#define PL_hash_seed_set (*Perl_Ihash_seed_set_ptr(aTHX)) #undef PL_he_arenaroot #define PL_he_arenaroot (*Perl_Ihe_arenaroot_ptr(aTHX)) #undef PL_he_root @@ -350,6 +394,8 @@ END_EXTERN_C #define PL_linestr (*Perl_Ilinestr_ptr(aTHX)) #undef PL_localpatches #define PL_localpatches (*Perl_Ilocalpatches_ptr(aTHX)) +#undef PL_lockhook +#define PL_lockhook (*Perl_Ilockhook_ptr(aTHX)) #undef PL_main_cv #define PL_main_cv (*Perl_Imain_cv_ptr(aTHX)) #undef PL_main_root @@ -412,8 +458,6 @@ END_EXTERN_C #define PL_numeric_radix_sv (*Perl_Inumeric_radix_sv_ptr(aTHX)) #undef PL_numeric_standard #define PL_numeric_standard (*Perl_Inumeric_standard_ptr(aTHX)) -#undef PL_ofmt -#define PL_ofmt (*Perl_Iofmt_ptr(aTHX)) #undef PL_oldbufptr #define PL_oldbufptr (*Perl_Ioldbufptr_ptr(aTHX)) #undef PL_oldname @@ -422,8 +466,6 @@ END_EXTERN_C #define PL_oldoldbufptr (*Perl_Ioldoldbufptr_ptr(aTHX)) #undef PL_op_mask #define PL_op_mask (*Perl_Iop_mask_ptr(aTHX)) -#undef PL_op_seqmax -#define PL_op_seqmax (*Perl_Iop_seqmax_ptr(aTHX)) #undef PL_origalen #define PL_origalen (*Perl_Iorigalen_ptr(aTHX)) #undef PL_origargc @@ -456,6 +498,8 @@ END_EXTERN_C #define PL_perlio (*Perl_Iperlio_ptr(aTHX)) #undef PL_pidstatus #define PL_pidstatus (*Perl_Ipidstatus_ptr(aTHX)) +#undef PL_ppid +#define PL_ppid (*Perl_Ippid_ptr(aTHX)) #undef PL_preambleav #define PL_preambleav (*Perl_Ipreambleav_ptr(aTHX)) #undef PL_preambled @@ -470,14 +514,24 @@ END_EXTERN_C #define PL_psig_pend (*Perl_Ipsig_pend_ptr(aTHX)) #undef PL_psig_ptr #define PL_psig_ptr (*Perl_Ipsig_ptr_ptr(aTHX)) +#undef PL_pte_arenaroot +#define PL_pte_arenaroot (*Perl_Ipte_arenaroot_ptr(aTHX)) +#undef PL_pte_root +#define PL_pte_root (*Perl_Ipte_root_ptr(aTHX)) #undef PL_ptr_table #define PL_ptr_table (*Perl_Iptr_table_ptr(aTHX)) #undef PL_reentrant_buffer #define PL_reentrant_buffer (*Perl_Ireentrant_buffer_ptr(aTHX)) +#undef PL_reentrant_retint +#define PL_reentrant_retint (*Perl_Ireentrant_retint_ptr(aTHX)) #undef PL_regex_pad #define PL_regex_pad (*Perl_Iregex_pad_ptr(aTHX)) #undef PL_regex_padav #define PL_regex_padav (*Perl_Iregex_padav_ptr(aTHX)) +#undef PL_rehash_seed +#define PL_rehash_seed (*Perl_Irehash_seed_ptr(aTHX)) +#undef PL_rehash_seed_set +#define PL_rehash_seed_set (*Perl_Irehash_seed_set_ptr(aTHX)) #undef PL_replgv #define PL_replgv (*Perl_Ireplgv_ptr(aTHX)) #undef PL_rsfp @@ -486,12 +540,16 @@ END_EXTERN_C #define PL_rsfp_filters (*Perl_Irsfp_filters_ptr(aTHX)) #undef PL_runops #define PL_runops (*Perl_Irunops_ptr(aTHX)) +#undef PL_runops_dbg +#define PL_runops_dbg (*Perl_Irunops_dbg_ptr(aTHX)) +#undef PL_runops_std +#define PL_runops_std (*Perl_Irunops_std_ptr(aTHX)) #undef PL_savebegin #define PL_savebegin (*Perl_Isavebegin_ptr(aTHX)) #undef PL_sawampersand #define PL_sawampersand (*Perl_Isawampersand_ptr(aTHX)) -#undef PL_sh_path_compat -#define PL_sh_path_compat (*Perl_Ish_path_compat_ptr(aTHX)) +#undef PL_sharehook +#define PL_sharehook (*Perl_Isharehook_ptr(aTHX)) #undef PL_sig_pending #define PL_sig_pending (*Perl_Isig_pending_ptr(aTHX)) #undef PL_sighandlerp @@ -508,6 +566,8 @@ END_EXTERN_C #define PL_stashcache (*Perl_Istashcache_ptr(aTHX)) #undef PL_statusvalue #define PL_statusvalue (*Perl_Istatusvalue_ptr(aTHX)) +#undef PL_statusvalue_posix +#define PL_statusvalue_posix (*Perl_Istatusvalue_posix_ptr(aTHX)) #undef PL_statusvalue_vms #define PL_statusvalue_vms (*Perl_Istatusvalue_vms_ptr(aTHX)) #undef PL_stderrgv @@ -524,6 +584,8 @@ END_EXTERN_C #define PL_subline (*Perl_Isubline_ptr(aTHX)) #undef PL_subname #define PL_subname (*Perl_Isubname_ptr(aTHX)) +#undef PL_suidscript +#define PL_suidscript (*Perl_Isuidscript_ptr(aTHX)) #undef PL_sv_arenaroot #define PL_sv_arenaroot (*Perl_Isv_arenaroot_ptr(aTHX)) #undef PL_sv_count @@ -544,12 +606,16 @@ END_EXTERN_C #define PL_taint_warn (*Perl_Itaint_warn_ptr(aTHX)) #undef PL_tainting #define PL_tainting (*Perl_Itainting_ptr(aTHX)) +#undef PL_threadhook +#define PL_threadhook (*Perl_Ithreadhook_ptr(aTHX)) #undef PL_tokenbuf #define PL_tokenbuf (*Perl_Itokenbuf_ptr(aTHX)) #undef PL_uid #define PL_uid (*Perl_Iuid_ptr(aTHX)) #undef PL_unicode #define PL_unicode (*Perl_Iunicode_ptr(aTHX)) +#undef PL_unlockhook +#define PL_unlockhook (*Perl_Iunlockhook_ptr(aTHX)) #undef PL_unsafe #define PL_unsafe (*Perl_Iunsafe_ptr(aTHX)) #undef PL_utf8_alnum @@ -600,10 +666,6 @@ END_EXTERN_C #define PL_warnhook (*Perl_Iwarnhook_ptr(aTHX)) #undef PL_widesyscalls #define PL_widesyscalls (*Perl_Iwidesyscalls_ptr(aTHX)) -#undef PL_xiv_arenaroot -#define PL_xiv_arenaroot (*Perl_Ixiv_arenaroot_ptr(aTHX)) -#undef PL_xiv_root -#define PL_xiv_root (*Perl_Ixiv_root_ptr(aTHX)) #undef PL_xnv_arenaroot #define PL_xnv_arenaroot (*Perl_Ixnv_arenaroot_ptr(aTHX)) #undef PL_xnv_root @@ -624,6 +686,10 @@ END_EXTERN_C #define PL_xpvcv_arenaroot (*Perl_Ixpvcv_arenaroot_ptr(aTHX)) #undef PL_xpvcv_root #define PL_xpvcv_root (*Perl_Ixpvcv_root_ptr(aTHX)) +#undef PL_xpvgv_arenaroot +#define PL_xpvgv_arenaroot (*Perl_Ixpvgv_arenaroot_ptr(aTHX)) +#undef PL_xpvgv_root +#define PL_xpvgv_root (*Perl_Ixpvgv_root_ptr(aTHX)) #undef PL_xpvhv_arenaroot #define PL_xpvhv_arenaroot (*Perl_Ixpvhv_arenaroot_ptr(aTHX)) #undef PL_xpvhv_root @@ -644,22 +710,10 @@ END_EXTERN_C #define PL_xpvnv_arenaroot (*Perl_Ixpvnv_arenaroot_ptr(aTHX)) #undef PL_xpvnv_root #define PL_xpvnv_root (*Perl_Ixpvnv_root_ptr(aTHX)) -#undef PL_xrv_arenaroot -#define PL_xrv_arenaroot (*Perl_Ixrv_arenaroot_ptr(aTHX)) -#undef PL_xrv_root -#define PL_xrv_root (*Perl_Ixrv_root_ptr(aTHX)) -#undef PL_yychar -#define PL_yychar (*Perl_Iyychar_ptr(aTHX)) -#undef PL_yydebug -#define PL_yydebug (*Perl_Iyydebug_ptr(aTHX)) -#undef PL_yyerrflag -#define PL_yyerrflag (*Perl_Iyyerrflag_ptr(aTHX)) -#undef PL_yylval -#define PL_yylval (*Perl_Iyylval_ptr(aTHX)) -#undef PL_yynerrs -#define PL_yynerrs (*Perl_Iyynerrs_ptr(aTHX)) -#undef PL_yyval -#define PL_yyval (*Perl_Iyyval_ptr(aTHX)) +#undef PL_yycharp +#define PL_yycharp (*Perl_Iyycharp_ptr(aTHX)) +#undef PL_yylvalp +#define PL_yylvalp (*Perl_Iyylvalp_ptr(aTHX)) #undef PL_Sv #define PL_Sv (*Perl_TSv_ptr(aTHX)) #undef PL_Xpv @@ -746,8 +800,6 @@ END_EXTERN_C #define PL_opsave (*Perl_Topsave_ptr(aTHX)) #undef PL_peepp #define PL_peepp (*Perl_Tpeepp_ptr(aTHX)) -#undef PL_protect -#define PL_protect (*Perl_Tprotect_ptr(aTHX)) #undef PL_reg_call_cc #define PL_reg_call_cc (*Perl_Treg_call_cc_ptr(aTHX)) #undef PL_reg_curpm @@ -836,12 +888,6 @@ END_EXTERN_C #define PL_regtill (*Perl_Tregtill_ptr(aTHX)) #undef PL_restartop #define PL_restartop (*Perl_Trestartop_ptr(aTHX)) -#undef PL_retstack -#define PL_retstack (*Perl_Tretstack_ptr(aTHX)) -#undef PL_retstack_ix -#define PL_retstack_ix (*Perl_Tretstack_ix_ptr(aTHX)) -#undef PL_retstack_max -#define PL_retstack_max (*Perl_Tretstack_max_ptr(aTHX)) #undef PL_rs #define PL_rs (*Perl_Trs_ptr(aTHX)) #undef PL_savestack @@ -908,41 +954,68 @@ END_EXTERN_C #define PL_No (*Perl_GNo_ptr(NULL)) #undef PL_Yes #define PL_Yes (*Perl_GYes_ptr(NULL)) +#undef PL_appctx +#define PL_appctx (*Perl_Gappctx_ptr(NULL)) +#undef PL_check +#define PL_check (*Perl_Gcheck_ptr(NULL)) +#undef PL_csighandlerp +#define PL_csighandlerp (*Perl_Gcsighandlerp_ptr(NULL)) #undef PL_curinterp #define PL_curinterp (*Perl_Gcurinterp_ptr(NULL)) #undef PL_do_undump #define PL_do_undump (*Perl_Gdo_undump_ptr(NULL)) #undef PL_dollarzero_mutex #define PL_dollarzero_mutex (*Perl_Gdollarzero_mutex_ptr(NULL)) +#undef PL_fold_locale +#define PL_fold_locale (*Perl_Gfold_locale_ptr(NULL)) #undef PL_hexdigit #define PL_hexdigit (*Perl_Ghexdigit_ptr(NULL)) -#undef PL_lockhook -#define PL_lockhook (*Perl_Glockhook_ptr(NULL)) #undef PL_malloc_mutex #define PL_malloc_mutex (*Perl_Gmalloc_mutex_ptr(NULL)) +#undef PL_mmap_page_size +#define PL_mmap_page_size (*Perl_Gmmap_page_size_ptr(NULL)) #undef PL_op_mutex #define PL_op_mutex (*Perl_Gop_mutex_ptr(NULL)) +#undef PL_op_seq +#define PL_op_seq (*Perl_Gop_seq_ptr(NULL)) +#undef PL_op_sequence +#define PL_op_sequence (*Perl_Gop_sequence_ptr(NULL)) #undef PL_patleave #define PL_patleave (*Perl_Gpatleave_ptr(NULL)) -#undef PL_ppid -#define PL_ppid (*Perl_Gppid_ptr(NULL)) -#undef PL_runops_dbg -#define PL_runops_dbg (*Perl_Grunops_dbg_ptr(NULL)) -#undef PL_runops_std -#define PL_runops_std (*Perl_Grunops_std_ptr(NULL)) +#undef PL_perlio_debug_fd +#define PL_perlio_debug_fd (*Perl_Gperlio_debug_fd_ptr(NULL)) +#undef PL_perlio_fd_refcnt +#define PL_perlio_fd_refcnt (*Perl_Gperlio_fd_refcnt_ptr(NULL)) +#undef PL_ppaddr +#define PL_ppaddr (*Perl_Gppaddr_ptr(NULL)) #undef PL_sh_path #define PL_sh_path (*Perl_Gsh_path_ptr(NULL)) -#undef PL_sharehook -#define PL_sharehook (*Perl_Gsharehook_ptr(NULL)) +#undef PL_sig_defaulting +#define PL_sig_defaulting (*Perl_Gsig_defaulting_ptr(NULL)) +#undef PL_sig_handlers_initted +#define PL_sig_handlers_initted (*Perl_Gsig_handlers_initted_ptr(NULL)) +#undef PL_sig_ignoring +#define PL_sig_ignoring (*Perl_Gsig_ignoring_ptr(NULL)) +#undef PL_sig_sv +#define PL_sig_sv (*Perl_Gsig_sv_ptr(NULL)) +#undef PL_sig_trapped +#define PL_sig_trapped (*Perl_Gsig_trapped_ptr(NULL)) +#undef PL_sigfpe_saved +#define PL_sigfpe_saved (*Perl_Gsigfpe_saved_ptr(NULL)) +#undef PL_sv_placeholder +#define PL_sv_placeholder (*Perl_Gsv_placeholder_ptr(NULL)) #undef PL_thr_key #define PL_thr_key (*Perl_Gthr_key_ptr(NULL)) -#undef PL_threadhook -#define PL_threadhook (*Perl_Gthreadhook_ptr(NULL)) -#undef PL_unlockhook -#define PL_unlockhook (*Perl_Gunlockhook_ptr(NULL)) +#undef PL_timesbase +#define PL_timesbase (*Perl_Gtimesbase_ptr(NULL)) +#undef PL_use_safe_putenv +#define PL_use_safe_putenv (*Perl_Guse_safe_putenv_ptr(NULL)) +#undef PL_watch_pvx +#define PL_watch_pvx (*Perl_Gwatch_pvx_ptr(NULL)) #endif /* !PERL_CORE */ #endif /* MULTIPLICITY */ #endif /* __perlapi_h__ */ +/* ex: set ro: */