X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/bed601927f5ca7f54b544d9e5ce1f77461311b68..9fe371da3bdc2d1a5eae907101756f87eb5d2168:/perlapi.h diff --git a/perlapi.h b/perlapi.h index 524e84b..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 */ @@ -218,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 @@ -250,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 @@ -420,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 @@ -430,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 @@ -480,6 +514,10 @@ 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 @@ -490,6 +528,10 @@ END_EXTERN_C #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 @@ -506,8 +548,6 @@ END_EXTERN_C #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 @@ -526,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 @@ -542,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 @@ -622,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 @@ -646,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 @@ -666,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 @@ -768,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 @@ -858,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 @@ -930,29 +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_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_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_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_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: */