summaryrefslogtreecommitdiff
path: root/perlapi.h
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2010-08-19 15:54:12 +0100
committerNicholas Clark <nick@ccl4.org>2010-09-21 11:28:07 +0100
commit87b9e16005b9e39b8a24388159e899fe54b95979 (patch)
treea169b5176afb3e487997abf9759ba5ee0cc8af7f /perlapi.h
parent4e9f151b596c7350249666fbb39df1a4283b8b9c (diff)
downloadperl-87b9e16005b9e39b8a24388159e899fe54b95979.tar.gz
Eliminate PL_* accessor functions under ithreads.
When MULTIPLICITY was first developed, and interpreter state moved into an interpreter struct, thread and interpreter local PL_* variables were defined as macros that called accessor functions, returning the address of the value, outside of the perl core. The intent was to allow members within the interpreter struct to change size without breaking binary compatibility, so that bug fixes could be merged to a maintenance branch that necessitated such a size change. However, some non-core code defines PERL_CORE, sometimes intentionally to bypass this mechanism for speed reasons, sometimes for other reasons but with the inadvertent side effect of bypassing this mechanism. As some of this code is widespread in production use, the result is that the core *can't* change the size of members of the interpreter struct, as it will break such modules compiled against a previous release on that maintenance branch. The upshot is that this mechanism is redundant, and well-behaved code is penalised by it. Hence it can and should be removed. Accessor functions are still needed for globals when PERL_GLOBAL_STRUCT is defined.
Diffstat (limited to 'perlapi.h')
-rw-r--r--perlapi.h667
1 files changed, 3 insertions, 664 deletions
diff --git a/perlapi.h b/perlapi.h
index f41a31e128..454e8d12bd 100644
--- a/perlapi.h
+++ b/perlapi.h
@@ -20,7 +20,7 @@
#ifndef __perlapi_h__
#define __perlapi_h__
-#if defined (MULTIPLICITY)
+#if defined (MULTIPLICITY) && defined (PERL_GLOBAL_STRUCT)
START_EXTERN_C
@@ -37,7 +37,6 @@ START_EXTERN_C
#define PERLVARISC(v,i) typedef const char PL_##v##_t[sizeof(i)]; \
EXTERN_C PL_##v##_t* Perl_##v##_ptr(pTHX);
-#include "intrpvar.h"
#include "perlvars.h"
#undef PERLVAR
@@ -46,20 +45,11 @@ START_EXTERN_C
#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
#if defined(PERL_CORE)
-/* accessor functions for Perl variables (provide binary compatibility) */
+/* accessor functions for Perl "global" variables */
/* these need to be mentioned here, or most linkers won't put them in
the perl executable */
@@ -95,7 +85,6 @@ EXTCONST void * const PL_force_link_funcs[] = {
#pragma message disable (nonstandcast)
#endif
-#include "intrpvar.h"
#include "perlvars.h"
#if defined(__DECC) && defined(__osf__)
@@ -116,656 +105,6 @@ END_EXTERN_C
#else /* !PERL_CORE */
-#undef PL_Argv
-#define PL_Argv (*Perl_IArgv_ptr(aTHX))
-#undef PL_Cmd
-#define PL_Cmd (*Perl_ICmd_ptr(aTHX))
-#undef PL_DBcv
-#define PL_DBcv (*Perl_IDBcv_ptr(aTHX))
-#undef PL_DBgv
-#define PL_DBgv (*Perl_IDBgv_ptr(aTHX))
-#undef PL_DBline
-#define PL_DBline (*Perl_IDBline_ptr(aTHX))
-#undef PL_DBsignal
-#define PL_DBsignal (*Perl_IDBsignal_ptr(aTHX))
-#undef PL_DBsingle
-#define PL_DBsingle (*Perl_IDBsingle_ptr(aTHX))
-#undef PL_DBsub
-#define PL_DBsub (*Perl_IDBsub_ptr(aTHX))
-#undef PL_DBtrace
-#define PL_DBtrace (*Perl_IDBtrace_ptr(aTHX))
-#undef PL_Dir
-#define PL_Dir (*Perl_IDir_ptr(aTHX))
-#undef PL_Env
-#define PL_Env (*Perl_IEnv_ptr(aTHX))
-#undef PL_LIO
-#define PL_LIO (*Perl_ILIO_ptr(aTHX))
-#undef PL_Mem
-#define PL_Mem (*Perl_IMem_ptr(aTHX))
-#undef PL_MemParse
-#define PL_MemParse (*Perl_IMemParse_ptr(aTHX))
-#undef PL_MemShared
-#define PL_MemShared (*Perl_IMemShared_ptr(aTHX))
-#undef PL_OpPtr
-#define PL_OpPtr (*Perl_IOpPtr_ptr(aTHX))
-#undef PL_OpSlab
-#define PL_OpSlab (*Perl_IOpSlab_ptr(aTHX))
-#undef PL_OpSpace
-#define PL_OpSpace (*Perl_IOpSpace_ptr(aTHX))
-#undef PL_Proc
-#define PL_Proc (*Perl_IProc_ptr(aTHX))
-#undef PL_Sock
-#define PL_Sock (*Perl_ISock_ptr(aTHX))
-#undef PL_StdIO
-#define PL_StdIO (*Perl_IStdIO_ptr(aTHX))
-#undef PL_Sv
-#define PL_Sv (*Perl_ISv_ptr(aTHX))
-#undef PL_Xpv
-#define PL_Xpv (*Perl_IXpv_ptr(aTHX))
-#undef PL_amagic_generation
-#define PL_amagic_generation (*Perl_Iamagic_generation_ptr(aTHX))
-#undef PL_an
-#define PL_an (*Perl_Ian_ptr(aTHX))
-#undef PL_apiversion
-#define PL_apiversion (*Perl_Iapiversion_ptr(aTHX))
-#undef PL_argvgv
-#define PL_argvgv (*Perl_Iargvgv_ptr(aTHX))
-#undef PL_argvout_stack
-#define PL_argvout_stack (*Perl_Iargvout_stack_ptr(aTHX))
-#undef PL_argvoutgv
-#define PL_argvoutgv (*Perl_Iargvoutgv_ptr(aTHX))
-#undef PL_basetime
-#define PL_basetime (*Perl_Ibasetime_ptr(aTHX))
-#undef PL_beginav
-#define PL_beginav (*Perl_Ibeginav_ptr(aTHX))
-#undef PL_beginav_save
-#define PL_beginav_save (*Perl_Ibeginav_save_ptr(aTHX))
-#undef PL_blockhooks
-#define PL_blockhooks (*Perl_Iblockhooks_ptr(aTHX))
-#undef PL_body_arenas
-#define PL_body_arenas (*Perl_Ibody_arenas_ptr(aTHX))
-#undef PL_body_roots
-#define PL_body_roots (*Perl_Ibody_roots_ptr(aTHX))
-#undef PL_bodytarget
-#define PL_bodytarget (*Perl_Ibodytarget_ptr(aTHX))
-#undef PL_breakable_sub_gen
-#define PL_breakable_sub_gen (*Perl_Ibreakable_sub_gen_ptr(aTHX))
-#undef PL_checkav
-#define PL_checkav (*Perl_Icheckav_ptr(aTHX))
-#undef PL_checkav_save
-#define PL_checkav_save (*Perl_Icheckav_save_ptr(aTHX))
-#undef PL_chopset
-#define PL_chopset (*Perl_Ichopset_ptr(aTHX))
-#undef PL_clocktick
-#define PL_clocktick (*Perl_Iclocktick_ptr(aTHX))
-#undef PL_collation_ix
-#define PL_collation_ix (*Perl_Icollation_ix_ptr(aTHX))
-#undef PL_collation_name
-#define PL_collation_name (*Perl_Icollation_name_ptr(aTHX))
-#undef PL_collation_standard
-#define PL_collation_standard (*Perl_Icollation_standard_ptr(aTHX))
-#undef PL_collxfrm_base
-#define PL_collxfrm_base (*Perl_Icollxfrm_base_ptr(aTHX))
-#undef PL_collxfrm_mult
-#define PL_collxfrm_mult (*Perl_Icollxfrm_mult_ptr(aTHX))
-#undef PL_colors
-#define PL_colors (*Perl_Icolors_ptr(aTHX))
-#undef PL_colorset
-#define PL_colorset (*Perl_Icolorset_ptr(aTHX))
-#undef PL_compcv
-#define PL_compcv (*Perl_Icompcv_ptr(aTHX))
-#undef PL_compiling
-#define PL_compiling (*Perl_Icompiling_ptr(aTHX))
-#undef PL_comppad
-#define PL_comppad (*Perl_Icomppad_ptr(aTHX))
-#undef PL_comppad_name
-#define PL_comppad_name (*Perl_Icomppad_name_ptr(aTHX))
-#undef PL_comppad_name_fill
-#define PL_comppad_name_fill (*Perl_Icomppad_name_fill_ptr(aTHX))
-#undef PL_comppad_name_floor
-#define PL_comppad_name_floor (*Perl_Icomppad_name_floor_ptr(aTHX))
-#undef PL_cop_seqmax
-#define PL_cop_seqmax (*Perl_Icop_seqmax_ptr(aTHX))
-#undef PL_cryptseen
-#define PL_cryptseen (*Perl_Icryptseen_ptr(aTHX))
-#undef PL_curcop
-#define PL_curcop (*Perl_Icurcop_ptr(aTHX))
-#undef PL_curcopdb
-#define PL_curcopdb (*Perl_Icurcopdb_ptr(aTHX))
-#undef PL_curpad
-#define PL_curpad (*Perl_Icurpad_ptr(aTHX))
-#undef PL_curpm
-#define PL_curpm (*Perl_Icurpm_ptr(aTHX))
-#undef PL_curstack
-#define PL_curstack (*Perl_Icurstack_ptr(aTHX))
-#undef PL_curstackinfo
-#define PL_curstackinfo (*Perl_Icurstackinfo_ptr(aTHX))
-#undef PL_curstash
-#define PL_curstash (*Perl_Icurstash_ptr(aTHX))
-#undef PL_curstname
-#define PL_curstname (*Perl_Icurstname_ptr(aTHX))
-#undef PL_custom_op_descs
-#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
-#define PL_debstash (*Perl_Idebstash_ptr(aTHX))
-#undef PL_debug
-#define PL_debug (*Perl_Idebug_ptr(aTHX))
-#undef PL_debug_pad
-#define PL_debug_pad (*Perl_Idebug_pad_ptr(aTHX))
-#undef PL_def_layerlist
-#define PL_def_layerlist (*Perl_Idef_layerlist_ptr(aTHX))
-#undef PL_defgv
-#define PL_defgv (*Perl_Idefgv_ptr(aTHX))
-#undef PL_defoutgv
-#define PL_defoutgv (*Perl_Idefoutgv_ptr(aTHX))
-#undef PL_defstash
-#define PL_defstash (*Perl_Idefstash_ptr(aTHX))
-#undef PL_delaymagic
-#define PL_delaymagic (*Perl_Idelaymagic_ptr(aTHX))
-#undef PL_destroyhook
-#define PL_destroyhook (*Perl_Idestroyhook_ptr(aTHX))
-#undef PL_diehook
-#define PL_diehook (*Perl_Idiehook_ptr(aTHX))
-#undef PL_dirty
-#define PL_dirty (*Perl_Idirty_ptr(aTHX))
-#undef PL_doextract
-#define PL_doextract (*Perl_Idoextract_ptr(aTHX))
-#undef PL_doswitches
-#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_dumpindent
-#define PL_dumpindent (*Perl_Idumpindent_ptr(aTHX))
-#undef PL_e_script
-#define PL_e_script (*Perl_Ie_script_ptr(aTHX))
-#undef PL_efloatbuf
-#define PL_efloatbuf (*Perl_Iefloatbuf_ptr(aTHX))
-#undef PL_efloatsize
-#define PL_efloatsize (*Perl_Iefloatsize_ptr(aTHX))
-#undef PL_egid
-#define PL_egid (*Perl_Iegid_ptr(aTHX))
-#undef PL_encoding
-#define PL_encoding (*Perl_Iencoding_ptr(aTHX))
-#undef PL_endav
-#define PL_endav (*Perl_Iendav_ptr(aTHX))
-#undef PL_envgv
-#define PL_envgv (*Perl_Ienvgv_ptr(aTHX))
-#undef PL_errgv
-#define PL_errgv (*Perl_Ierrgv_ptr(aTHX))
-#undef PL_errors
-#define PL_errors (*Perl_Ierrors_ptr(aTHX))
-#undef PL_euid
-#define PL_euid (*Perl_Ieuid_ptr(aTHX))
-#undef PL_eval_root
-#define PL_eval_root (*Perl_Ieval_root_ptr(aTHX))
-#undef PL_eval_start
-#define PL_eval_start (*Perl_Ieval_start_ptr(aTHX))
-#undef PL_evalseq
-#define PL_evalseq (*Perl_Ievalseq_ptr(aTHX))
-#undef PL_exit_flags
-#define PL_exit_flags (*Perl_Iexit_flags_ptr(aTHX))
-#undef PL_exitlist
-#define PL_exitlist (*Perl_Iexitlist_ptr(aTHX))
-#undef PL_exitlistlen
-#define PL_exitlistlen (*Perl_Iexitlistlen_ptr(aTHX))
-#undef PL_fdpid
-#define PL_fdpid (*Perl_Ifdpid_ptr(aTHX))
-#undef PL_filemode
-#define PL_filemode (*Perl_Ifilemode_ptr(aTHX))
-#undef PL_firstgv
-#define PL_firstgv (*Perl_Ifirstgv_ptr(aTHX))
-#undef PL_forkprocess
-#define PL_forkprocess (*Perl_Iforkprocess_ptr(aTHX))
-#undef PL_formfeed
-#define PL_formfeed (*Perl_Iformfeed_ptr(aTHX))
-#undef PL_formtarget
-#define PL_formtarget (*Perl_Iformtarget_ptr(aTHX))
-#undef PL_generation
-#define PL_generation (*Perl_Igeneration_ptr(aTHX))
-#undef PL_gensym
-#define PL_gensym (*Perl_Igensym_ptr(aTHX))
-#undef PL_gid
-#define PL_gid (*Perl_Igid_ptr(aTHX))
-#undef PL_glob_index
-#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_hintgv
-#define PL_hintgv (*Perl_Ihintgv_ptr(aTHX))
-#undef PL_hints
-#define PL_hints (*Perl_Ihints_ptr(aTHX))
-#undef PL_hv_fetch_ent_mh
-#define PL_hv_fetch_ent_mh (*Perl_Ihv_fetch_ent_mh_ptr(aTHX))
-#undef PL_in_clean_all
-#define PL_in_clean_all (*Perl_Iin_clean_all_ptr(aTHX))
-#undef PL_in_clean_objs
-#define PL_in_clean_objs (*Perl_Iin_clean_objs_ptr(aTHX))
-#undef PL_in_eval
-#define PL_in_eval (*Perl_Iin_eval_ptr(aTHX))
-#undef PL_in_load_module
-#define PL_in_load_module (*Perl_Iin_load_module_ptr(aTHX))
-#undef PL_incgv
-#define PL_incgv (*Perl_Iincgv_ptr(aTHX))
-#undef PL_initav
-#define PL_initav (*Perl_Iinitav_ptr(aTHX))
-#undef PL_inplace
-#define PL_inplace (*Perl_Iinplace_ptr(aTHX))
-#undef PL_isarev
-#define PL_isarev (*Perl_Iisarev_ptr(aTHX))
-#undef PL_known_layers
-#define PL_known_layers (*Perl_Iknown_layers_ptr(aTHX))
-#undef PL_last_in_gv
-#define PL_last_in_gv (*Perl_Ilast_in_gv_ptr(aTHX))
-#undef PL_last_swash_hv
-#define PL_last_swash_hv (*Perl_Ilast_swash_hv_ptr(aTHX))
-#undef PL_last_swash_key
-#define PL_last_swash_key (*Perl_Ilast_swash_key_ptr(aTHX))
-#undef PL_last_swash_klen
-#define PL_last_swash_klen (*Perl_Ilast_swash_klen_ptr(aTHX))
-#undef PL_last_swash_slen
-#define PL_last_swash_slen (*Perl_Ilast_swash_slen_ptr(aTHX))
-#undef PL_last_swash_tmps
-#define PL_last_swash_tmps (*Perl_Ilast_swash_tmps_ptr(aTHX))
-#undef PL_lastfd
-#define PL_lastfd (*Perl_Ilastfd_ptr(aTHX))
-#undef PL_lastgotoprobe
-#define PL_lastgotoprobe (*Perl_Ilastgotoprobe_ptr(aTHX))
-#undef PL_lastscream
-#define PL_lastscream (*Perl_Ilastscream_ptr(aTHX))
-#undef PL_laststatval
-#define PL_laststatval (*Perl_Ilaststatval_ptr(aTHX))
-#undef PL_laststype
-#define PL_laststype (*Perl_Ilaststype_ptr(aTHX))
-#undef PL_localizing
-#define PL_localizing (*Perl_Ilocalizing_ptr(aTHX))
-#undef PL_localpatches
-#define PL_localpatches (*Perl_Ilocalpatches_ptr(aTHX))
-#undef PL_lockhook
-#define PL_lockhook (*Perl_Ilockhook_ptr(aTHX))
-#undef PL_madskills
-#define PL_madskills (*Perl_Imadskills_ptr(aTHX))
-#undef PL_main_cv
-#define PL_main_cv (*Perl_Imain_cv_ptr(aTHX))
-#undef PL_main_root
-#define PL_main_root (*Perl_Imain_root_ptr(aTHX))
-#undef PL_main_start
-#define PL_main_start (*Perl_Imain_start_ptr(aTHX))
-#undef PL_mainstack
-#define PL_mainstack (*Perl_Imainstack_ptr(aTHX))
-#undef PL_markstack
-#define PL_markstack (*Perl_Imarkstack_ptr(aTHX))
-#undef PL_markstack_max
-#define PL_markstack_max (*Perl_Imarkstack_max_ptr(aTHX))
-#undef PL_markstack_ptr
-#define PL_markstack_ptr (*Perl_Imarkstack_ptr_ptr(aTHX))
-#undef PL_max_intro_pending
-#define PL_max_intro_pending (*Perl_Imax_intro_pending_ptr(aTHX))
-#undef PL_maxo
-#define PL_maxo (*Perl_Imaxo_ptr(aTHX))
-#undef PL_maxscream
-#define PL_maxscream (*Perl_Imaxscream_ptr(aTHX))
-#undef PL_maxsysfd
-#define PL_maxsysfd (*Perl_Imaxsysfd_ptr(aTHX))
-#undef PL_memory_debug_header
-#define PL_memory_debug_header (*Perl_Imemory_debug_header_ptr(aTHX))
-#undef PL_mess_sv
-#define PL_mess_sv (*Perl_Imess_sv_ptr(aTHX))
-#undef PL_min_intro_pending
-#define PL_min_intro_pending (*Perl_Imin_intro_pending_ptr(aTHX))
-#undef PL_minus_E
-#define PL_minus_E (*Perl_Iminus_E_ptr(aTHX))
-#undef PL_minus_F
-#define PL_minus_F (*Perl_Iminus_F_ptr(aTHX))
-#undef PL_minus_a
-#define PL_minus_a (*Perl_Iminus_a_ptr(aTHX))
-#undef PL_minus_c
-#define PL_minus_c (*Perl_Iminus_c_ptr(aTHX))
-#undef PL_minus_l
-#define PL_minus_l (*Perl_Iminus_l_ptr(aTHX))
-#undef PL_minus_n
-#define PL_minus_n (*Perl_Iminus_n_ptr(aTHX))
-#undef PL_minus_p
-#define PL_minus_p (*Perl_Iminus_p_ptr(aTHX))
-#undef PL_modcount
-#define PL_modcount (*Perl_Imodcount_ptr(aTHX))
-#undef PL_modglobal
-#define PL_modglobal (*Perl_Imodglobal_ptr(aTHX))
-#undef PL_my_cxt_keys
-#define PL_my_cxt_keys (*Perl_Imy_cxt_keys_ptr(aTHX))
-#undef PL_my_cxt_list
-#define PL_my_cxt_list (*Perl_Imy_cxt_list_ptr(aTHX))
-#undef PL_my_cxt_size
-#define PL_my_cxt_size (*Perl_Imy_cxt_size_ptr(aTHX))
-#undef PL_na
-#define PL_na (*Perl_Ina_ptr(aTHX))
-#undef PL_nomemok
-#define PL_nomemok (*Perl_Inomemok_ptr(aTHX))
-#undef PL_numeric_local
-#define PL_numeric_local (*Perl_Inumeric_local_ptr(aTHX))
-#undef PL_numeric_name
-#define PL_numeric_name (*Perl_Inumeric_name_ptr(aTHX))
-#undef PL_numeric_radix_sv
-#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_ofsgv
-#define PL_ofsgv (*Perl_Iofsgv_ptr(aTHX))
-#undef PL_oldname
-#define PL_oldname (*Perl_Ioldname_ptr(aTHX))
-#undef PL_op
-#define PL_op (*Perl_Iop_ptr(aTHX))
-#undef PL_op_mask
-#define PL_op_mask (*Perl_Iop_mask_ptr(aTHX))
-#undef PL_opfreehook
-#define PL_opfreehook (*Perl_Iopfreehook_ptr(aTHX))
-#undef PL_opsave
-#define PL_opsave (*Perl_Iopsave_ptr(aTHX))
-#undef PL_origalen
-#define PL_origalen (*Perl_Iorigalen_ptr(aTHX))
-#undef PL_origargc
-#define PL_origargc (*Perl_Iorigargc_ptr(aTHX))
-#undef PL_origargv
-#define PL_origargv (*Perl_Iorigargv_ptr(aTHX))
-#undef PL_origenviron
-#define PL_origenviron (*Perl_Iorigenviron_ptr(aTHX))
-#undef PL_origfilename
-#define PL_origfilename (*Perl_Iorigfilename_ptr(aTHX))
-#undef PL_ors_sv
-#define PL_ors_sv (*Perl_Iors_sv_ptr(aTHX))
-#undef PL_osname
-#define PL_osname (*Perl_Iosname_ptr(aTHX))
-#undef PL_pad_reset_pending
-#define PL_pad_reset_pending (*Perl_Ipad_reset_pending_ptr(aTHX))
-#undef PL_padix
-#define PL_padix (*Perl_Ipadix_ptr(aTHX))
-#undef PL_padix_floor
-#define PL_padix_floor (*Perl_Ipadix_floor_ptr(aTHX))
-#undef PL_parser
-#define PL_parser (*Perl_Iparser_ptr(aTHX))
-#undef PL_patchlevel
-#define PL_patchlevel (*Perl_Ipatchlevel_ptr(aTHX))
-#undef PL_peepp
-#define PL_peepp (*Perl_Ipeepp_ptr(aTHX))
-#undef PL_perl_destruct_level
-#define PL_perl_destruct_level (*Perl_Iperl_destruct_level_ptr(aTHX))
-#undef PL_perldb
-#define PL_perldb (*Perl_Iperldb_ptr(aTHX))
-#undef PL_perlio
-#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_profiledata
-#define PL_profiledata (*Perl_Iprofiledata_ptr(aTHX))
-#undef PL_psig_name
-#define PL_psig_name (*Perl_Ipsig_name_ptr(aTHX))
-#undef PL_psig_pend
-#define PL_psig_pend (*Perl_Ipsig_pend_ptr(aTHX))
-#undef PL_psig_ptr
-#define PL_psig_ptr (*Perl_Ipsig_ptr_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_reg_state
-#define PL_reg_state (*Perl_Ireg_state_ptr(aTHX))
-#undef PL_regdummy
-#define PL_regdummy (*Perl_Iregdummy_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_reginterp_cnt
-#define PL_reginterp_cnt (*Perl_Ireginterp_cnt_ptr(aTHX))
-#undef PL_registered_mros
-#define PL_registered_mros (*Perl_Iregistered_mros_ptr(aTHX))
-#undef PL_regmatch_slab
-#define PL_regmatch_slab (*Perl_Iregmatch_slab_ptr(aTHX))
-#undef PL_regmatch_state
-#define PL_regmatch_state (*Perl_Iregmatch_state_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_restartjmpenv
-#define PL_restartjmpenv (*Perl_Irestartjmpenv_ptr(aTHX))
-#undef PL_restartop
-#define PL_restartop (*Perl_Irestartop_ptr(aTHX))
-#undef PL_rpeepp
-#define PL_rpeepp (*Perl_Irpeepp_ptr(aTHX))
-#undef PL_rs
-#define PL_rs (*Perl_Irs_ptr(aTHX))
-#undef PL_runops
-#define PL_runops (*Perl_Irunops_ptr(aTHX))
-#undef PL_savebegin
-#define PL_savebegin (*Perl_Isavebegin_ptr(aTHX))
-#undef PL_savestack
-#define PL_savestack (*Perl_Isavestack_ptr(aTHX))
-#undef PL_savestack_ix
-#define PL_savestack_ix (*Perl_Isavestack_ix_ptr(aTHX))
-#undef PL_savestack_max
-#define PL_savestack_max (*Perl_Isavestack_max_ptr(aTHX))
-#undef PL_sawampersand
-#define PL_sawampersand (*Perl_Isawampersand_ptr(aTHX))
-#undef PL_scopestack
-#define PL_scopestack (*Perl_Iscopestack_ptr(aTHX))
-#undef PL_scopestack_ix
-#define PL_scopestack_ix (*Perl_Iscopestack_ix_ptr(aTHX))
-#undef PL_scopestack_max
-#define PL_scopestack_max (*Perl_Iscopestack_max_ptr(aTHX))
-#undef PL_scopestack_name
-#define PL_scopestack_name (*Perl_Iscopestack_name_ptr(aTHX))
-#undef PL_screamfirst
-#define PL_screamfirst (*Perl_Iscreamfirst_ptr(aTHX))
-#undef PL_screamnext
-#define PL_screamnext (*Perl_Iscreamnext_ptr(aTHX))
-#undef PL_secondgv
-#define PL_secondgv (*Perl_Isecondgv_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
-#define PL_sighandlerp (*Perl_Isighandlerp_ptr(aTHX))
-#undef PL_signalhook
-#define PL_signalhook (*Perl_Isignalhook_ptr(aTHX))
-#undef PL_signals
-#define PL_signals (*Perl_Isignals_ptr(aTHX))
-#undef PL_slab_count
-#define PL_slab_count (*Perl_Islab_count_ptr(aTHX))
-#undef PL_slabs
-#define PL_slabs (*Perl_Islabs_ptr(aTHX))
-#undef PL_sort_RealCmp
-#define PL_sort_RealCmp (*Perl_Isort_RealCmp_ptr(aTHX))
-#undef PL_sortcop
-#define PL_sortcop (*Perl_Isortcop_ptr(aTHX))
-#undef PL_sortstash
-#define PL_sortstash (*Perl_Isortstash_ptr(aTHX))
-#undef PL_splitstr
-#define PL_splitstr (*Perl_Isplitstr_ptr(aTHX))
-#undef PL_srand_called
-#define PL_srand_called (*Perl_Isrand_called_ptr(aTHX))
-#undef PL_stack_base
-#define PL_stack_base (*Perl_Istack_base_ptr(aTHX))
-#undef PL_stack_max
-#define PL_stack_max (*Perl_Istack_max_ptr(aTHX))
-#undef PL_stack_sp
-#define PL_stack_sp (*Perl_Istack_sp_ptr(aTHX))
-#undef PL_start_env
-#define PL_start_env (*Perl_Istart_env_ptr(aTHX))
-#undef PL_stashcache
-#define PL_stashcache (*Perl_Istashcache_ptr(aTHX))
-#undef PL_statbuf
-#define PL_statbuf (*Perl_Istatbuf_ptr(aTHX))
-#undef PL_statcache
-#define PL_statcache (*Perl_Istatcache_ptr(aTHX))
-#undef PL_statgv
-#define PL_statgv (*Perl_Istatgv_ptr(aTHX))
-#undef PL_statname
-#define PL_statname (*Perl_Istatname_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
-#define PL_stderrgv (*Perl_Istderrgv_ptr(aTHX))
-#undef PL_stdingv
-#define PL_stdingv (*Perl_Istdingv_ptr(aTHX))
-#undef PL_strtab
-#define PL_strtab (*Perl_Istrtab_ptr(aTHX))
-#undef PL_sub_generation
-#define PL_sub_generation (*Perl_Isub_generation_ptr(aTHX))
-#undef PL_subline
-#define PL_subline (*Perl_Isubline_ptr(aTHX))
-#undef PL_subname
-#define PL_subname (*Perl_Isubname_ptr(aTHX))
-#undef PL_sv_arenaroot
-#define PL_sv_arenaroot (*Perl_Isv_arenaroot_ptr(aTHX))
-#undef PL_sv_count
-#define PL_sv_count (*Perl_Isv_count_ptr(aTHX))
-#undef PL_sv_no
-#define PL_sv_no (*Perl_Isv_no_ptr(aTHX))
-#undef PL_sv_objcount
-#define PL_sv_objcount (*Perl_Isv_objcount_ptr(aTHX))
-#undef PL_sv_root
-#define PL_sv_root (*Perl_Isv_root_ptr(aTHX))
-#undef PL_sv_serial
-#define PL_sv_serial (*Perl_Isv_serial_ptr(aTHX))
-#undef PL_sv_undef
-#define PL_sv_undef (*Perl_Isv_undef_ptr(aTHX))
-#undef PL_sv_yes
-#define PL_sv_yes (*Perl_Isv_yes_ptr(aTHX))
-#undef PL_sys_intern
-#define PL_sys_intern (*Perl_Isys_intern_ptr(aTHX))
-#undef PL_taint_warn
-#define PL_taint_warn (*Perl_Itaint_warn_ptr(aTHX))
-#undef PL_tainted
-#define PL_tainted (*Perl_Itainted_ptr(aTHX))
-#undef PL_tainting
-#define PL_tainting (*Perl_Itainting_ptr(aTHX))
-#undef PL_threadhook
-#define PL_threadhook (*Perl_Ithreadhook_ptr(aTHX))
-#undef PL_timesbuf
-#define PL_timesbuf (*Perl_Itimesbuf_ptr(aTHX))
-#undef PL_tmps_floor
-#define PL_tmps_floor (*Perl_Itmps_floor_ptr(aTHX))
-#undef PL_tmps_ix
-#define PL_tmps_ix (*Perl_Itmps_ix_ptr(aTHX))
-#undef PL_tmps_max
-#define PL_tmps_max (*Perl_Itmps_max_ptr(aTHX))
-#undef PL_tmps_stack
-#define PL_tmps_stack (*Perl_Itmps_stack_ptr(aTHX))
-#undef PL_top_env
-#define PL_top_env (*Perl_Itop_env_ptr(aTHX))
-#undef PL_toptarget
-#define PL_toptarget (*Perl_Itoptarget_ptr(aTHX))
-#undef PL_uid
-#define PL_uid (*Perl_Iuid_ptr(aTHX))
-#undef PL_unicode
-#define PL_unicode (*Perl_Iunicode_ptr(aTHX))
-#undef PL_unitcheckav
-#define PL_unitcheckav (*Perl_Iunitcheckav_ptr(aTHX))
-#undef PL_unitcheckav_save
-#define PL_unitcheckav_save (*Perl_Iunitcheckav_save_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_X_L
-#define PL_utf8_X_L (*Perl_Iutf8_X_L_ptr(aTHX))
-#undef PL_utf8_X_LV
-#define PL_utf8_X_LV (*Perl_Iutf8_X_LV_ptr(aTHX))
-#undef PL_utf8_X_LVT
-#define PL_utf8_X_LVT (*Perl_Iutf8_X_LVT_ptr(aTHX))
-#undef PL_utf8_X_LV_LVT_V
-#define PL_utf8_X_LV_LVT_V (*Perl_Iutf8_X_LV_LVT_V_ptr(aTHX))
-#undef PL_utf8_X_T
-#define PL_utf8_X_T (*Perl_Iutf8_X_T_ptr(aTHX))
-#undef PL_utf8_X_V
-#define PL_utf8_X_V (*Perl_Iutf8_X_V_ptr(aTHX))
-#undef PL_utf8_X_begin
-#define PL_utf8_X_begin (*Perl_Iutf8_X_begin_ptr(aTHX))
-#undef PL_utf8_X_extend
-#define PL_utf8_X_extend (*Perl_Iutf8_X_extend_ptr(aTHX))
-#undef PL_utf8_X_non_hangul
-#define PL_utf8_X_non_hangul (*Perl_Iutf8_X_non_hangul_ptr(aTHX))
-#undef PL_utf8_X_prepend
-#define PL_utf8_X_prepend (*Perl_Iutf8_X_prepend_ptr(aTHX))
-#undef PL_utf8_alnum
-#define PL_utf8_alnum (*Perl_Iutf8_alnum_ptr(aTHX))
-#undef PL_utf8_alpha
-#define PL_utf8_alpha (*Perl_Iutf8_alpha_ptr(aTHX))
-#undef PL_utf8_ascii
-#define PL_utf8_ascii (*Perl_Iutf8_ascii_ptr(aTHX))
-#undef PL_utf8_cntrl
-#define PL_utf8_cntrl (*Perl_Iutf8_cntrl_ptr(aTHX))
-#undef PL_utf8_digit
-#define PL_utf8_digit (*Perl_Iutf8_digit_ptr(aTHX))
-#undef PL_utf8_graph
-#define PL_utf8_graph (*Perl_Iutf8_graph_ptr(aTHX))
-#undef PL_utf8_idcont
-#define PL_utf8_idcont (*Perl_Iutf8_idcont_ptr(aTHX))
-#undef PL_utf8_idstart
-#define PL_utf8_idstart (*Perl_Iutf8_idstart_ptr(aTHX))
-#undef PL_utf8_lower
-#define PL_utf8_lower (*Perl_Iutf8_lower_ptr(aTHX))
-#undef PL_utf8_mark
-#define PL_utf8_mark (*Perl_Iutf8_mark_ptr(aTHX))
-#undef PL_utf8_perl_space
-#define PL_utf8_perl_space (*Perl_Iutf8_perl_space_ptr(aTHX))
-#undef PL_utf8_perl_word
-#define PL_utf8_perl_word (*Perl_Iutf8_perl_word_ptr(aTHX))
-#undef PL_utf8_posix_digit
-#define PL_utf8_posix_digit (*Perl_Iutf8_posix_digit_ptr(aTHX))
-#undef PL_utf8_print
-#define PL_utf8_print (*Perl_Iutf8_print_ptr(aTHX))
-#undef PL_utf8_punct
-#define PL_utf8_punct (*Perl_Iutf8_punct_ptr(aTHX))
-#undef PL_utf8_space
-#define PL_utf8_space (*Perl_Iutf8_space_ptr(aTHX))
-#undef PL_utf8_tofold
-#define PL_utf8_tofold (*Perl_Iutf8_tofold_ptr(aTHX))
-#undef PL_utf8_tolower
-#define PL_utf8_tolower (*Perl_Iutf8_tolower_ptr(aTHX))
-#undef PL_utf8_totitle
-#define PL_utf8_totitle (*Perl_Iutf8_totitle_ptr(aTHX))
-#undef PL_utf8_toupper
-#define PL_utf8_toupper (*Perl_Iutf8_toupper_ptr(aTHX))
-#undef PL_utf8_upper
-#define PL_utf8_upper (*Perl_Iutf8_upper_ptr(aTHX))
-#undef PL_utf8_xdigit
-#define PL_utf8_xdigit (*Perl_Iutf8_xdigit_ptr(aTHX))
-#undef PL_utf8cache
-#define PL_utf8cache (*Perl_Iutf8cache_ptr(aTHX))
-#undef PL_utf8locale
-#define PL_utf8locale (*Perl_Iutf8locale_ptr(aTHX))
-#undef PL_warnhook
-#define PL_warnhook (*Perl_Iwarnhook_ptr(aTHX))
-#undef PL_watchaddr
-#define PL_watchaddr (*Perl_Iwatchaddr_ptr(aTHX))
-#undef PL_watchok
-#define PL_watchok (*Perl_Iwatchok_ptr(aTHX))
-#undef PL_xmlfp
-#define PL_xmlfp (*Perl_Ixmlfp_ptr(aTHX))
#undef PL_No
#define PL_No (*Perl_GNo_ptr(NULL))
#undef PL_Yes
@@ -860,7 +199,7 @@ END_EXTERN_C
#define PL_watch_pvx (*Perl_Gwatch_pvx_ptr(NULL))
#endif /* !PERL_CORE */
-#endif /* MULTIPLICITY */
+#endif /* MULTIPLICITY && PERL_GLOBAL_STRUCT */
#endif /* __perlapi_h__ */