/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
- This file is built by embed.pl from global.sym, intrpvar.h,
- and thrdvar.h. Any changes made here will be lost!
+ This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h,
+ perlvars.h and thrdvar.h. Any changes made here will be lost!
*/
/* (Doing namespace management portably in C is really gross.) */
-/* EMBED has no run-time penalty, but helps keep the Perl namespace
- from colliding with that used by other libraries pulled in
- by extensions or by embedding perl. Allow a cc -DNO_EMBED
- override, however, to keep binary compatability with previous
- versions of perl.
-*/
-
-
-/* Put interpreter-specific symbols into a struct? */
-
-#ifdef MULTIPLICITY
-
-#ifndef USE_THREADS
-/* If we do not have threads then per-thread vars are per-interpreter */
-
-#define PL_Sv (curinterp->TSv)
-#define PL_Xpv (curinterp->TXpv)
-#define PL_av_fetch_sv (curinterp->Tav_fetch_sv)
-#define PL_bodytarget (curinterp->Tbodytarget)
-#define PL_bostr (curinterp->Tbostr)
-#define PL_chopset (curinterp->Tchopset)
-#define PL_colors (curinterp->Tcolors)
-#define PL_colorset (curinterp->Tcolorset)
-#define PL_curcop (curinterp->Tcurcop)
-#define PL_curpad (curinterp->Tcurpad)
-#define PL_curpm (curinterp->Tcurpm)
-#define PL_curstack (curinterp->Tcurstack)
-#define PL_curstackinfo (curinterp->Tcurstackinfo)
-#define PL_curstash (curinterp->Tcurstash)
-#define PL_defoutgv (curinterp->Tdefoutgv)
-#define PL_defstash (curinterp->Tdefstash)
-#define PL_delaymagic (curinterp->Tdelaymagic)
-#define PL_dirty (curinterp->Tdirty)
-#define PL_extralen (curinterp->Textralen)
-#define PL_firstgv (curinterp->Tfirstgv)
-#define PL_formtarget (curinterp->Tformtarget)
-#define PL_hv_fetch_ent_mh (curinterp->Thv_fetch_ent_mh)
-#define PL_hv_fetch_sv (curinterp->Thv_fetch_sv)
-#define PL_in_eval (curinterp->Tin_eval)
-#define PL_last_in_gv (curinterp->Tlast_in_gv)
-#define PL_lastgotoprobe (curinterp->Tlastgotoprobe)
-#define PL_lastscream (curinterp->Tlastscream)
-#define PL_localizing (curinterp->Tlocalizing)
-#define PL_mainstack (curinterp->Tmainstack)
-#define PL_markstack (curinterp->Tmarkstack)
-#define PL_markstack_max (curinterp->Tmarkstack_max)
-#define PL_markstack_ptr (curinterp->Tmarkstack_ptr)
-#define PL_maxscream (curinterp->Tmaxscream)
-#define PL_modcount (curinterp->Tmodcount)
-#define PL_nrs (curinterp->Tnrs)
-#define PL_ofs (curinterp->Tofs)
-#define PL_ofslen (curinterp->Tofslen)
-#define PL_op (curinterp->Top)
-#define PL_opsave (curinterp->Topsave)
-#define PL_reg_eval_set (curinterp->Treg_eval_set)
-#define PL_reg_flags (curinterp->Treg_flags)
-#define PL_reg_start_tmp (curinterp->Treg_start_tmp)
-#define PL_reg_start_tmpl (curinterp->Treg_start_tmpl)
-#define PL_regbol (curinterp->Tregbol)
-#define PL_regcc (curinterp->Tregcc)
-#define PL_regcode (curinterp->Tregcode)
-#define PL_regcomp_parse (curinterp->Tregcomp_parse)
-#define PL_regcomp_rx (curinterp->Tregcomp_rx)
-#define PL_regcompp (curinterp->Tregcompp)
-#define PL_regdata (curinterp->Tregdata)
-#define PL_regdummy (curinterp->Tregdummy)
-#define PL_regendp (curinterp->Tregendp)
-#define PL_regeol (curinterp->Tregeol)
-#define PL_regexecp (curinterp->Tregexecp)
-#define PL_regflags (curinterp->Tregflags)
-#define PL_regindent (curinterp->Tregindent)
-#define PL_reginput (curinterp->Treginput)
-#define PL_reginterp_cnt (curinterp->Treginterp_cnt)
-#define PL_reglastparen (curinterp->Treglastparen)
-#define PL_regnarrate (curinterp->Tregnarrate)
-#define PL_regnaughty (curinterp->Tregnaughty)
-#define PL_regnpar (curinterp->Tregnpar)
-#define PL_regprecomp (curinterp->Tregprecomp)
-#define PL_regprev (curinterp->Tregprev)
-#define PL_regprogram (curinterp->Tregprogram)
-#define PL_regsawback (curinterp->Tregsawback)
-#define PL_regseen (curinterp->Tregseen)
-#define PL_regsize (curinterp->Tregsize)
-#define PL_regstartp (curinterp->Tregstartp)
-#define PL_regtill (curinterp->Tregtill)
-#define PL_regxend (curinterp->Tregxend)
-#define PL_restartop (curinterp->Trestartop)
-#define PL_retstack (curinterp->Tretstack)
-#define PL_retstack_ix (curinterp->Tretstack_ix)
-#define PL_retstack_max (curinterp->Tretstack_max)
-#define PL_rs (curinterp->Trs)
-#define PL_savestack (curinterp->Tsavestack)
-#define PL_savestack_ix (curinterp->Tsavestack_ix)
-#define PL_savestack_max (curinterp->Tsavestack_max)
-#define PL_scopestack (curinterp->Tscopestack)
-#define PL_scopestack_ix (curinterp->Tscopestack_ix)
-#define PL_scopestack_max (curinterp->Tscopestack_max)
-#define PL_screamfirst (curinterp->Tscreamfirst)
-#define PL_screamnext (curinterp->Tscreamnext)
-#define PL_secondgv (curinterp->Tsecondgv)
-#define PL_seen_evals (curinterp->Tseen_evals)
-#define PL_seen_zerolen (curinterp->Tseen_zerolen)
-#define PL_sortcop (curinterp->Tsortcop)
-#define PL_sortcxix (curinterp->Tsortcxix)
-#define PL_sortstash (curinterp->Tsortstash)
-#define PL_stack_base (curinterp->Tstack_base)
-#define PL_stack_max (curinterp->Tstack_max)
-#define PL_stack_sp (curinterp->Tstack_sp)
-#define PL_start_env (curinterp->Tstart_env)
-#define PL_statbuf (curinterp->Tstatbuf)
-#define PL_statcache (curinterp->Tstatcache)
-#define PL_statgv (curinterp->Tstatgv)
-#define PL_statname (curinterp->Tstatname)
-#define PL_tainted (curinterp->Ttainted)
-#define PL_timesbuf (curinterp->Ttimesbuf)
-#define PL_tmps_floor (curinterp->Ttmps_floor)
-#define PL_tmps_ix (curinterp->Ttmps_ix)
-#define PL_tmps_max (curinterp->Ttmps_max)
-#define PL_tmps_stack (curinterp->Ttmps_stack)
-#define PL_top_env (curinterp->Ttop_env)
-#define PL_toptarget (curinterp->Ttoptarget)
+/*
+ The following combinations of MULTIPLICITY, USE_THREADS, PERL_OBJECT
+ and PERL_IMPLICIT_CONTEXT are supported:
+ 1) none
+ 2) MULTIPLICITY # supported for compatibility
+ 3) MULTIPLICITY && PERL_IMPLICIT_CONTEXT
+ 4) USE_THREADS && PERL_IMPLICIT_CONTEXT
+ 5) MULTIPLICITY && USE_THREADS && PERL_IMPLICIT_CONTEXT
+ 6) PERL_OBJECT && PERL_IMPLICIT_CONTEXT
-#endif /* !USE_THREADS */
+ All other combinations of these flags are errors.
-/* These are always per-interpreter if there is more than one */
+ #3, #4, #5, and #6 are supported directly, while #2 is a special
+ case of #3 (supported by redefining vTHX appropriately).
+*/
-#define PL_Argv (curinterp->IArgv)
-#define PL_Cmd (curinterp->ICmd)
-#define PL_DBcv (curinterp->IDBcv)
-#define PL_DBgv (curinterp->IDBgv)
-#define PL_DBline (curinterp->IDBline)
-#define PL_DBsignal (curinterp->IDBsignal)
-#define PL_DBsingle (curinterp->IDBsingle)
-#define PL_DBsub (curinterp->IDBsub)
-#define PL_DBtrace (curinterp->IDBtrace)
-#define PL_ampergv (curinterp->Iampergv)
-#define PL_archpat_auto (curinterp->Iarchpat_auto)
-#define PL_argvgv (curinterp->Iargvgv)
-#define PL_argvoutgv (curinterp->Iargvoutgv)
-#define PL_basetime (curinterp->Ibasetime)
-#define PL_beginav (curinterp->Ibeginav)
-#define PL_cddir (curinterp->Icddir)
-#define PL_compcv (curinterp->Icompcv)
-#define PL_compiling (curinterp->Icompiling)
-#define PL_comppad (curinterp->Icomppad)
-#define PL_comppad_name (curinterp->Icomppad_name)
-#define PL_comppad_name_fill (curinterp->Icomppad_name_fill)
-#define PL_comppad_name_floor (curinterp->Icomppad_name_floor)
-#define PL_copline (curinterp->Icopline)
-#define PL_curcopdb (curinterp->Icurcopdb)
-#define PL_curstname (curinterp->Icurstname)
-#define PL_dbargs (curinterp->Idbargs)
-#define PL_debdelim (curinterp->Idebdelim)
-#define PL_debname (curinterp->Idebname)
-#define PL_debstash (curinterp->Idebstash)
-#define PL_defgv (curinterp->Idefgv)
-#define PL_diehook (curinterp->Idiehook)
-#define PL_dlevel (curinterp->Idlevel)
-#define PL_dlmax (curinterp->Idlmax)
-#define PL_doextract (curinterp->Idoextract)
-#define PL_doswitches (curinterp->Idoswitches)
-#define PL_dowarn (curinterp->Idowarn)
-#define PL_dumplvl (curinterp->Idumplvl)
-#define PL_e_script (curinterp->Ie_script)
-#define PL_endav (curinterp->Iendav)
-#define PL_envgv (curinterp->Ienvgv)
-#define PL_errgv (curinterp->Ierrgv)
-#define PL_eval_root (curinterp->Ieval_root)
-#define PL_eval_start (curinterp->Ieval_start)
-#define PL_exitlist (curinterp->Iexitlist)
-#define PL_exitlistlen (curinterp->Iexitlistlen)
-#define PL_fdpid (curinterp->Ifdpid)
-#define PL_filemode (curinterp->Ifilemode)
-#define PL_forkprocess (curinterp->Iforkprocess)
-#define PL_formfeed (curinterp->Iformfeed)
-#define PL_generation (curinterp->Igeneration)
-#define PL_gensym (curinterp->Igensym)
-#define PL_globalstash (curinterp->Iglobalstash)
-#define PL_hintgv (curinterp->Ihintgv)
-#define PL_in_clean_all (curinterp->Iin_clean_all)
-#define PL_in_clean_objs (curinterp->Iin_clean_objs)
-#define PL_incgv (curinterp->Iincgv)
-#define PL_initav (curinterp->Iinitav)
-#define PL_inplace (curinterp->Iinplace)
-#define PL_last_proto (curinterp->Ilast_proto)
-#define PL_lastfd (curinterp->Ilastfd)
-#define PL_lastsize (curinterp->Ilastsize)
-#define PL_lastspbase (curinterp->Ilastspbase)
-#define PL_laststatval (curinterp->Ilaststatval)
-#define PL_laststype (curinterp->Ilaststype)
-#define PL_leftgv (curinterp->Ileftgv)
-#define PL_lineary (curinterp->Ilineary)
-#define PL_linestart (curinterp->Ilinestart)
-#define PL_localpatches (curinterp->Ilocalpatches)
-#define PL_main_cv (curinterp->Imain_cv)
-#define PL_main_root (curinterp->Imain_root)
-#define PL_main_start (curinterp->Imain_start)
-#define PL_maxsysfd (curinterp->Imaxsysfd)
-#define PL_mess_sv (curinterp->Imess_sv)
-#define PL_minus_F (curinterp->Iminus_F)
-#define PL_minus_a (curinterp->Iminus_a)
-#define PL_minus_c (curinterp->Iminus_c)
-#define PL_minus_l (curinterp->Iminus_l)
-#define PL_minus_n (curinterp->Iminus_n)
-#define PL_minus_p (curinterp->Iminus_p)
-#define PL_modglobal (curinterp->Imodglobal)
-#define PL_multiline (curinterp->Imultiline)
-#define PL_mystrk (curinterp->Imystrk)
-#define PL_ofmt (curinterp->Iofmt)
-#define PL_oldlastpm (curinterp->Ioldlastpm)
-#define PL_oldname (curinterp->Ioldname)
-#define PL_op_mask (curinterp->Iop_mask)
-#define PL_origargc (curinterp->Iorigargc)
-#define PL_origargv (curinterp->Iorigargv)
-#define PL_origfilename (curinterp->Iorigfilename)
-#define PL_ors (curinterp->Iors)
-#define PL_orslen (curinterp->Iorslen)
-#define PL_parsehook (curinterp->Iparsehook)
-#define PL_patchlevel (curinterp->Ipatchlevel)
-#define PL_pending_ident (curinterp->Ipending_ident)
-#define PL_perl_destruct_level (curinterp->Iperl_destruct_level)
-#define PL_perldb (curinterp->Iperldb)
-#define PL_preambleav (curinterp->Ipreambleav)
-#define PL_preambled (curinterp->Ipreambled)
-#define PL_preprocess (curinterp->Ipreprocess)
-#define PL_profiledata (curinterp->Iprofiledata)
-#define PL_replgv (curinterp->Ireplgv)
-#define PL_rightgv (curinterp->Irightgv)
-#define PL_rsfp (curinterp->Irsfp)
-#define PL_rsfp_filters (curinterp->Irsfp_filters)
-#define PL_sawampersand (curinterp->Isawampersand)
-#define PL_sawstudy (curinterp->Isawstudy)
-#define PL_sawvec (curinterp->Isawvec)
-#define PL_siggv (curinterp->Isiggv)
-#define PL_splitstr (curinterp->Isplitstr)
-#define PL_statusvalue (curinterp->Istatusvalue)
-#define PL_statusvalue_vms (curinterp->Istatusvalue_vms)
-#define PL_stdingv (curinterp->Istdingv)
-#define PL_strchop (curinterp->Istrchop)
-#define PL_strtab (curinterp->Istrtab)
-#define PL_sub_generation (curinterp->Isub_generation)
-#define PL_sublex_info (curinterp->Isublex_info)
-#define PL_sv_arenaroot (curinterp->Isv_arenaroot)
-#define PL_sv_count (curinterp->Isv_count)
-#define PL_sv_objcount (curinterp->Isv_objcount)
-#define PL_sv_root (curinterp->Isv_root)
-#define PL_sys_intern (curinterp->Isys_intern)
-#define PL_tainting (curinterp->Itainting)
-#define PL_threadnum (curinterp->Ithreadnum)
-#define PL_thrsv (curinterp->Ithrsv)
-#define PL_unsafe (curinterp->Iunsafe)
-#define PL_warnhook (curinterp->Iwarnhook)
+#if defined(MULTIPLICITY)
+/* cases 2, 3 and 5 above */
-#else /* !MULTIPLICITY */
+# if defined(PERL_IMPLICIT_CONTEXT)
+# define vTHX aTHX
+# else
+# define vTHX PERL_GET_INTERP
+# endif
-#define IArgv PL_Argv
-#define ICmd PL_Cmd
-#define IDBcv PL_DBcv
-#define IDBgv PL_DBgv
-#define IDBline PL_DBline
-#define IDBsignal PL_DBsignal
-#define IDBsingle PL_DBsingle
-#define IDBsub PL_DBsub
-#define IDBtrace PL_DBtrace
-#define Iampergv PL_ampergv
-#define Iarchpat_auto PL_archpat_auto
-#define Iargvgv PL_argvgv
-#define Iargvoutgv PL_argvoutgv
-#define Ibasetime PL_basetime
-#define Ibeginav PL_beginav
-#define Icddir PL_cddir
-#define Icompcv PL_compcv
-#define Icompiling PL_compiling
-#define Icomppad PL_comppad
-#define Icomppad_name PL_comppad_name
-#define Icomppad_name_fill PL_comppad_name_fill
-#define Icomppad_name_floor PL_comppad_name_floor
-#define Icopline PL_copline
-#define Icurcopdb PL_curcopdb
-#define Icurstname PL_curstname
-#define Idbargs PL_dbargs
-#define Idebdelim PL_debdelim
-#define Idebname PL_debname
-#define Idebstash PL_debstash
-#define Idefgv PL_defgv
-#define Idiehook PL_diehook
-#define Idlevel PL_dlevel
-#define Idlmax PL_dlmax
-#define Idoextract PL_doextract
-#define Idoswitches PL_doswitches
-#define Idowarn PL_dowarn
-#define Idumplvl PL_dumplvl
-#define Ie_script PL_e_script
-#define Iendav PL_endav
-#define Ienvgv PL_envgv
-#define Ierrgv PL_errgv
-#define Ieval_root PL_eval_root
-#define Ieval_start PL_eval_start
-#define Iexitlist PL_exitlist
-#define Iexitlistlen PL_exitlistlen
-#define Ifdpid PL_fdpid
-#define Ifilemode PL_filemode
-#define Iforkprocess PL_forkprocess
-#define Iformfeed PL_formfeed
-#define Igeneration PL_generation
-#define Igensym PL_gensym
-#define Iglobalstash PL_globalstash
-#define Ihintgv PL_hintgv
-#define Iin_clean_all PL_in_clean_all
-#define Iin_clean_objs PL_in_clean_objs
-#define Iincgv PL_incgv
-#define Iinitav PL_initav
-#define Iinplace PL_inplace
-#define Ilast_proto PL_last_proto
-#define Ilastfd PL_lastfd
-#define Ilastsize PL_lastsize
-#define Ilastspbase PL_lastspbase
-#define Ilaststatval PL_laststatval
-#define Ilaststype PL_laststype
-#define Ileftgv PL_leftgv
-#define Ilineary PL_lineary
-#define Ilinestart PL_linestart
-#define Ilocalpatches PL_localpatches
-#define Imain_cv PL_main_cv
-#define Imain_root PL_main_root
-#define Imain_start PL_main_start
-#define Imaxsysfd PL_maxsysfd
-#define Imess_sv PL_mess_sv
-#define Iminus_F PL_minus_F
-#define Iminus_a PL_minus_a
-#define Iminus_c PL_minus_c
-#define Iminus_l PL_minus_l
-#define Iminus_n PL_minus_n
-#define Iminus_p PL_minus_p
-#define Imodglobal PL_modglobal
-#define Imultiline PL_multiline
-#define Imystrk PL_mystrk
-#define Iofmt PL_ofmt
-#define Ioldlastpm PL_oldlastpm
-#define Ioldname PL_oldname
-#define Iop_mask PL_op_mask
-#define Iorigargc PL_origargc
-#define Iorigargv PL_origargv
-#define Iorigfilename PL_origfilename
-#define Iors PL_ors
-#define Iorslen PL_orslen
-#define Iparsehook PL_parsehook
-#define Ipatchlevel PL_patchlevel
-#define Ipending_ident PL_pending_ident
-#define Iperl_destruct_level PL_perl_destruct_level
-#define Iperldb PL_perldb
-#define Ipreambleav PL_preambleav
-#define Ipreambled PL_preambled
-#define Ipreprocess PL_preprocess
-#define Iprofiledata PL_profiledata
-#define Ireplgv PL_replgv
-#define Irightgv PL_rightgv
-#define Irsfp PL_rsfp
-#define Irsfp_filters PL_rsfp_filters
-#define Isawampersand PL_sawampersand
-#define Isawstudy PL_sawstudy
-#define Isawvec PL_sawvec
-#define Isiggv PL_siggv
-#define Isplitstr PL_splitstr
-#define Istatusvalue PL_statusvalue
-#define Istatusvalue_vms PL_statusvalue_vms
-#define Istdingv PL_stdingv
-#define Istrchop PL_strchop
-#define Istrtab PL_strtab
-#define Isub_generation PL_sub_generation
-#define Isublex_info PL_sublex_info
-#define Isv_arenaroot PL_sv_arenaroot
-#define Isv_count PL_sv_count
-#define Isv_objcount PL_sv_objcount
-#define Isv_root PL_sv_root
-#define Isys_intern PL_sys_intern
-#define Itainting PL_tainting
-#define Ithreadnum PL_threadnum
-#define Ithrsv PL_thrsv
-#define Iunsafe PL_unsafe
-#define Iwarnhook PL_warnhook
+#define PL_Sv (vTHX->TSv)
+#define PL_Xpv (vTHX->TXpv)
+#define PL_av_fetch_sv (vTHX->Tav_fetch_sv)
+#define PL_bodytarget (vTHX->Tbodytarget)
+#define PL_bostr (vTHX->Tbostr)
+#define PL_chopset (vTHX->Tchopset)
+#define PL_colors (vTHX->Tcolors)
+#define PL_colorset (vTHX->Tcolorset)
+#define PL_curcop (vTHX->Tcurcop)
+#define PL_curpad (vTHX->Tcurpad)
+#define PL_curpm (vTHX->Tcurpm)
+#define PL_curstack (vTHX->Tcurstack)
+#define PL_curstackinfo (vTHX->Tcurstackinfo)
+#define PL_curstash (vTHX->Tcurstash)
+#define PL_defoutgv (vTHX->Tdefoutgv)
+#define PL_defstash (vTHX->Tdefstash)
+#define PL_delaymagic (vTHX->Tdelaymagic)
+#define PL_dirty (vTHX->Tdirty)
+#define PL_dumpindent (vTHX->Tdumpindent)
+#define PL_efloatbuf (vTHX->Tefloatbuf)
+#define PL_efloatsize (vTHX->Tefloatsize)
+#define PL_errors (vTHX->Terrors)
+#define PL_extralen (vTHX->Textralen)
+#define PL_firstgv (vTHX->Tfirstgv)
+#define PL_formtarget (vTHX->Tformtarget)
+#define PL_hv_fetch_ent_mh (vTHX->Thv_fetch_ent_mh)
+#define PL_hv_fetch_sv (vTHX->Thv_fetch_sv)
+#define PL_in_eval (vTHX->Tin_eval)
+#define PL_last_in_gv (vTHX->Tlast_in_gv)
+#define PL_lastgotoprobe (vTHX->Tlastgotoprobe)
+#define PL_lastscream (vTHX->Tlastscream)
+#define PL_localizing (vTHX->Tlocalizing)
+#define PL_mainstack (vTHX->Tmainstack)
+#define PL_markstack (vTHX->Tmarkstack)
+#define PL_markstack_max (vTHX->Tmarkstack_max)
+#define PL_markstack_ptr (vTHX->Tmarkstack_ptr)
+#define PL_maxscream (vTHX->Tmaxscream)
+#define PL_modcount (vTHX->Tmodcount)
+#define PL_na (vTHX->Tna)
+#define PL_nrs (vTHX->Tnrs)
+#define PL_ofs (vTHX->Tofs)
+#define PL_ofslen (vTHX->Tofslen)
+#define PL_op (vTHX->Top)
+#define PL_opsave (vTHX->Topsave)
+#define PL_protect (vTHX->Tprotect)
+#define PL_reg_call_cc (vTHX->Treg_call_cc)
+#define PL_reg_curpm (vTHX->Treg_curpm)
+#define PL_reg_eval_set (vTHX->Treg_eval_set)
+#define PL_reg_flags (vTHX->Treg_flags)
+#define PL_reg_ganch (vTHX->Treg_ganch)
+#define PL_reg_leftiter (vTHX->Treg_leftiter)
+#define PL_reg_magic (vTHX->Treg_magic)
+#define PL_reg_maxiter (vTHX->Treg_maxiter)
+#define PL_reg_oldcurpm (vTHX->Treg_oldcurpm)
+#define PL_reg_oldpos (vTHX->Treg_oldpos)
+#define PL_reg_oldsaved (vTHX->Treg_oldsaved)
+#define PL_reg_oldsavedlen (vTHX->Treg_oldsavedlen)
+#define PL_reg_poscache (vTHX->Treg_poscache)
+#define PL_reg_poscache_size (vTHX->Treg_poscache_size)
+#define PL_reg_re (vTHX->Treg_re)
+#define PL_reg_start_tmp (vTHX->Treg_start_tmp)
+#define PL_reg_start_tmpl (vTHX->Treg_start_tmpl)
+#define PL_reg_starttry (vTHX->Treg_starttry)
+#define PL_reg_sv (vTHX->Treg_sv)
+#define PL_reg_whilem_seen (vTHX->Treg_whilem_seen)
+#define PL_regbol (vTHX->Tregbol)
+#define PL_regcc (vTHX->Tregcc)
+#define PL_regcode (vTHX->Tregcode)
+#define PL_regcomp_parse (vTHX->Tregcomp_parse)
+#define PL_regcomp_rx (vTHX->Tregcomp_rx)
+#define PL_regcompp (vTHX->Tregcompp)
+#define PL_regdata (vTHX->Tregdata)
+#define PL_regdummy (vTHX->Tregdummy)
+#define PL_regendp (vTHX->Tregendp)
+#define PL_regeol (vTHX->Tregeol)
+#define PL_regexecp (vTHX->Tregexecp)
+#define PL_regflags (vTHX->Tregflags)
+#define PL_regfree (vTHX->Tregfree)
+#define PL_regindent (vTHX->Tregindent)
+#define PL_reginput (vTHX->Treginput)
+#define PL_regint_start (vTHX->Tregint_start)
+#define PL_regint_string (vTHX->Tregint_string)
+#define PL_reginterp_cnt (vTHX->Treginterp_cnt)
+#define PL_reglastparen (vTHX->Treglastparen)
+#define PL_regnarrate (vTHX->Tregnarrate)
+#define PL_regnaughty (vTHX->Tregnaughty)
+#define PL_regnpar (vTHX->Tregnpar)
+#define PL_regprecomp (vTHX->Tregprecomp)
+#define PL_regprev (vTHX->Tregprev)
+#define PL_regprogram (vTHX->Tregprogram)
+#define PL_regsawback (vTHX->Tregsawback)
+#define PL_regseen (vTHX->Tregseen)
+#define PL_regsize (vTHX->Tregsize)
+#define PL_regstartp (vTHX->Tregstartp)
+#define PL_regtill (vTHX->Tregtill)
+#define PL_regxend (vTHX->Tregxend)
+#define PL_restartop (vTHX->Trestartop)
+#define PL_retstack (vTHX->Tretstack)
+#define PL_retstack_ix (vTHX->Tretstack_ix)
+#define PL_retstack_max (vTHX->Tretstack_max)
+#define PL_rs (vTHX->Trs)
+#define PL_savestack (vTHX->Tsavestack)
+#define PL_savestack_ix (vTHX->Tsavestack_ix)
+#define PL_savestack_max (vTHX->Tsavestack_max)
+#define PL_scopestack (vTHX->Tscopestack)
+#define PL_scopestack_ix (vTHX->Tscopestack_ix)
+#define PL_scopestack_max (vTHX->Tscopestack_max)
+#define PL_screamfirst (vTHX->Tscreamfirst)
+#define PL_screamnext (vTHX->Tscreamnext)
+#define PL_secondgv (vTHX->Tsecondgv)
+#define PL_seen_evals (vTHX->Tseen_evals)
+#define PL_seen_zerolen (vTHX->Tseen_zerolen)
+#define PL_sortcop (vTHX->Tsortcop)
+#define PL_sortcxix (vTHX->Tsortcxix)
+#define PL_sortstash (vTHX->Tsortstash)
+#define PL_stack_base (vTHX->Tstack_base)
+#define PL_stack_max (vTHX->Tstack_max)
+#define PL_stack_sp (vTHX->Tstack_sp)
+#define PL_start_env (vTHX->Tstart_env)
+#define PL_statbuf (vTHX->Tstatbuf)
+#define PL_statcache (vTHX->Tstatcache)
+#define PL_statgv (vTHX->Tstatgv)
+#define PL_statname (vTHX->Tstatname)
+#define PL_tainted (vTHX->Ttainted)
+#define PL_timesbuf (vTHX->Ttimesbuf)
+#define PL_tmps_floor (vTHX->Ttmps_floor)
+#define PL_tmps_ix (vTHX->Ttmps_ix)
+#define PL_tmps_max (vTHX->Ttmps_max)
+#define PL_tmps_stack (vTHX->Ttmps_stack)
+#define PL_top_env (vTHX->Ttop_env)
+#define PL_toptarget (vTHX->Ttoptarget)
+#define PL_watchaddr (vTHX->Twatchaddr)
+#define PL_watchok (vTHX->Twatchok)
-#ifndef USE_THREADS
+# if defined(PERL_OBJECT)
+# include "error: PERL_OBJECT + MULTIPLICITY don't go together"
+# endif
-#define TSv PL_Sv
-#define TXpv PL_Xpv
-#define Tav_fetch_sv PL_av_fetch_sv
-#define Tbodytarget PL_bodytarget
-#define Tbostr PL_bostr
-#define Tchopset PL_chopset
-#define Tcolors PL_colors
-#define Tcolorset PL_colorset
-#define Tcurcop PL_curcop
-#define Tcurpad PL_curpad
-#define Tcurpm PL_curpm
-#define Tcurstack PL_curstack
-#define Tcurstackinfo PL_curstackinfo
-#define Tcurstash PL_curstash
-#define Tdefoutgv PL_defoutgv
-#define Tdefstash PL_defstash
-#define Tdelaymagic PL_delaymagic
-#define Tdirty PL_dirty
-#define Textralen PL_extralen
-#define Tfirstgv PL_firstgv
-#define Tformtarget PL_formtarget
-#define Thv_fetch_ent_mh PL_hv_fetch_ent_mh
-#define Thv_fetch_sv PL_hv_fetch_sv
-#define Tin_eval PL_in_eval
-#define Tlast_in_gv PL_last_in_gv
-#define Tlastgotoprobe PL_lastgotoprobe
-#define Tlastscream PL_lastscream
-#define Tlocalizing PL_localizing
-#define Tmainstack PL_mainstack
-#define Tmarkstack PL_markstack
-#define Tmarkstack_max PL_markstack_max
-#define Tmarkstack_ptr PL_markstack_ptr
-#define Tmaxscream PL_maxscream
-#define Tmodcount PL_modcount
-#define Tnrs PL_nrs
-#define Tofs PL_ofs
-#define Tofslen PL_ofslen
-#define Top PL_op
-#define Topsave PL_opsave
-#define Treg_eval_set PL_reg_eval_set
-#define Treg_flags PL_reg_flags
-#define Treg_start_tmp PL_reg_start_tmp
-#define Treg_start_tmpl PL_reg_start_tmpl
-#define Tregbol PL_regbol
-#define Tregcc PL_regcc
-#define Tregcode PL_regcode
-#define Tregcomp_parse PL_regcomp_parse
-#define Tregcomp_rx PL_regcomp_rx
-#define Tregcompp PL_regcompp
-#define Tregdata PL_regdata
-#define Tregdummy PL_regdummy
-#define Tregendp PL_regendp
-#define Tregeol PL_regeol
-#define Tregexecp PL_regexecp
-#define Tregflags PL_regflags
-#define Tregindent PL_regindent
-#define Treginput PL_reginput
-#define Treginterp_cnt PL_reginterp_cnt
-#define Treglastparen PL_reglastparen
-#define Tregnarrate PL_regnarrate
-#define Tregnaughty PL_regnaughty
-#define Tregnpar PL_regnpar
-#define Tregprecomp PL_regprecomp
-#define Tregprev PL_regprev
-#define Tregprogram PL_regprogram
-#define Tregsawback PL_regsawback
-#define Tregseen PL_regseen
-#define Tregsize PL_regsize
-#define Tregstartp PL_regstartp
-#define Tregtill PL_regtill
-#define Tregxend PL_regxend
-#define Trestartop PL_restartop
-#define Tretstack PL_retstack
-#define Tretstack_ix PL_retstack_ix
-#define Tretstack_max PL_retstack_max
-#define Trs PL_rs
-#define Tsavestack PL_savestack
-#define Tsavestack_ix PL_savestack_ix
-#define Tsavestack_max PL_savestack_max
-#define Tscopestack PL_scopestack
-#define Tscopestack_ix PL_scopestack_ix
-#define Tscopestack_max PL_scopestack_max
-#define Tscreamfirst PL_screamfirst
-#define Tscreamnext PL_screamnext
-#define Tsecondgv PL_secondgv
-#define Tseen_evals PL_seen_evals
-#define Tseen_zerolen PL_seen_zerolen
-#define Tsortcop PL_sortcop
-#define Tsortcxix PL_sortcxix
-#define Tsortstash PL_sortstash
-#define Tstack_base PL_stack_base
-#define Tstack_max PL_stack_max
-#define Tstack_sp PL_stack_sp
-#define Tstart_env PL_start_env
-#define Tstatbuf PL_statbuf
-#define Tstatcache PL_statcache
-#define Tstatgv PL_statgv
-#define Tstatname PL_statname
-#define Ttainted PL_tainted
-#define Ttimesbuf PL_timesbuf
-#define Ttmps_floor PL_tmps_floor
-#define Ttmps_ix PL_tmps_ix
-#define Ttmps_max PL_tmps_max
-#define Ttmps_stack PL_tmps_stack
-#define Ttop_env PL_top_env
-#define Ttoptarget PL_toptarget
+# if defined(USE_THREADS)
+/* case 5 above */
-#endif /* USE_THREADS */
+#define PL_Argv (PERL_GET_INTERP->IArgv)
+#define PL_Cmd (PERL_GET_INTERP->ICmd)
+#define PL_DBcv (PERL_GET_INTERP->IDBcv)
+#define PL_DBgv (PERL_GET_INTERP->IDBgv)
+#define PL_DBline (PERL_GET_INTERP->IDBline)
+#define PL_DBsignal (PERL_GET_INTERP->IDBsignal)
+#define PL_DBsingle (PERL_GET_INTERP->IDBsingle)
+#define PL_DBsub (PERL_GET_INTERP->IDBsub)
+#define PL_DBtrace (PERL_GET_INTERP->IDBtrace)
+#define PL_Dir (PERL_GET_INTERP->IDir)
+#define PL_Env (PERL_GET_INTERP->IEnv)
+#define PL_LIO (PERL_GET_INTERP->ILIO)
+#define PL_Mem (PERL_GET_INTERP->IMem)
+#define PL_Proc (PERL_GET_INTERP->IProc)
+#define PL_Sock (PERL_GET_INTERP->ISock)
+#define PL_StdIO (PERL_GET_INTERP->IStdIO)
+#define PL_amagic_generation (PERL_GET_INTERP->Iamagic_generation)
+#define PL_an (PERL_GET_INTERP->Ian)
+#define PL_archpat_auto (PERL_GET_INTERP->Iarchpat_auto)
+#define PL_argvgv (PERL_GET_INTERP->Iargvgv)
+#define PL_argvout_stack (PERL_GET_INTERP->Iargvout_stack)
+#define PL_argvoutgv (PERL_GET_INTERP->Iargvoutgv)
+#define PL_basetime (PERL_GET_INTERP->Ibasetime)
+#define PL_beginav (PERL_GET_INTERP->Ibeginav)
+#define PL_bitcount (PERL_GET_INTERP->Ibitcount)
+#define PL_bufend (PERL_GET_INTERP->Ibufend)
+#define PL_bufptr (PERL_GET_INTERP->Ibufptr)
+#define PL_collation_ix (PERL_GET_INTERP->Icollation_ix)
+#define PL_collation_name (PERL_GET_INTERP->Icollation_name)
+#define PL_collation_standard (PERL_GET_INTERP->Icollation_standard)
+#define PL_collxfrm_base (PERL_GET_INTERP->Icollxfrm_base)
+#define PL_collxfrm_mult (PERL_GET_INTERP->Icollxfrm_mult)
+#define PL_compcv (PERL_GET_INTERP->Icompcv)
+#define PL_compiling (PERL_GET_INTERP->Icompiling)
+#define PL_comppad (PERL_GET_INTERP->Icomppad)
+#define PL_comppad_name (PERL_GET_INTERP->Icomppad_name)
+#define PL_comppad_name_fill (PERL_GET_INTERP->Icomppad_name_fill)
+#define PL_comppad_name_floor (PERL_GET_INTERP->Icomppad_name_floor)
+#define PL_cop_seqmax (PERL_GET_INTERP->Icop_seqmax)
+#define PL_copline (PERL_GET_INTERP->Icopline)
+#define PL_cred_mutex (PERL_GET_INTERP->Icred_mutex)
+#define PL_cryptseen (PERL_GET_INTERP->Icryptseen)
+#define PL_cshlen (PERL_GET_INTERP->Icshlen)
+#define PL_cshname (PERL_GET_INTERP->Icshname)
+#define PL_curcopdb (PERL_GET_INTERP->Icurcopdb)
+#define PL_curstname (PERL_GET_INTERP->Icurstname)
+#define PL_curthr (PERL_GET_INTERP->Icurthr)
+#define PL_dbargs (PERL_GET_INTERP->Idbargs)
+#define PL_debstash (PERL_GET_INTERP->Idebstash)
+#define PL_debug (PERL_GET_INTERP->Idebug)
+#define PL_defgv (PERL_GET_INTERP->Idefgv)
+#define PL_diehook (PERL_GET_INTERP->Idiehook)
+#define PL_doextract (PERL_GET_INTERP->Idoextract)
+#define PL_doswitches (PERL_GET_INTERP->Idoswitches)
+#define PL_dowarn (PERL_GET_INTERP->Idowarn)
+#define PL_e_script (PERL_GET_INTERP->Ie_script)
+#define PL_egid (PERL_GET_INTERP->Iegid)
+#define PL_endav (PERL_GET_INTERP->Iendav)
+#define PL_envgv (PERL_GET_INTERP->Ienvgv)
+#define PL_errgv (PERL_GET_INTERP->Ierrgv)
+#define PL_error_count (PERL_GET_INTERP->Ierror_count)
+#define PL_euid (PERL_GET_INTERP->Ieuid)
+#define PL_eval_cond (PERL_GET_INTERP->Ieval_cond)
+#define PL_eval_mutex (PERL_GET_INTERP->Ieval_mutex)
+#define PL_eval_owner (PERL_GET_INTERP->Ieval_owner)
+#define PL_eval_root (PERL_GET_INTERP->Ieval_root)
+#define PL_eval_start (PERL_GET_INTERP->Ieval_start)
+#define PL_evalseq (PERL_GET_INTERP->Ievalseq)
+#define PL_exitlist (PERL_GET_INTERP->Iexitlist)
+#define PL_exitlistlen (PERL_GET_INTERP->Iexitlistlen)
+#define PL_expect (PERL_GET_INTERP->Iexpect)
+#define PL_fdpid (PERL_GET_INTERP->Ifdpid)
+#define PL_filemode (PERL_GET_INTERP->Ifilemode)
+#define PL_forkprocess (PERL_GET_INTERP->Iforkprocess)
+#define PL_formfeed (PERL_GET_INTERP->Iformfeed)
+#define PL_generation (PERL_GET_INTERP->Igeneration)
+#define PL_gensym (PERL_GET_INTERP->Igensym)
+#define PL_gid (PERL_GET_INTERP->Igid)
+#define PL_glob_index (PERL_GET_INTERP->Iglob_index)
+#define PL_globalstash (PERL_GET_INTERP->Iglobalstash)
+#define PL_he_root (PERL_GET_INTERP->Ihe_root)
+#define PL_hintgv (PERL_GET_INTERP->Ihintgv)
+#define PL_hints (PERL_GET_INTERP->Ihints)
+#define PL_in_clean_all (PERL_GET_INTERP->Iin_clean_all)
+#define PL_in_clean_objs (PERL_GET_INTERP->Iin_clean_objs)
+#define PL_in_my (PERL_GET_INTERP->Iin_my)
+#define PL_in_my_stash (PERL_GET_INTERP->Iin_my_stash)
+#define PL_incgv (PERL_GET_INTERP->Iincgv)
+#define PL_initav (PERL_GET_INTERP->Iinitav)
+#define PL_inplace (PERL_GET_INTERP->Iinplace)
+#define PL_last_lop (PERL_GET_INTERP->Ilast_lop)
+#define PL_last_lop_op (PERL_GET_INTERP->Ilast_lop_op)
+#define PL_last_swash_hv (PERL_GET_INTERP->Ilast_swash_hv)
+#define PL_last_swash_key (PERL_GET_INTERP->Ilast_swash_key)
+#define PL_last_swash_klen (PERL_GET_INTERP->Ilast_swash_klen)
+#define PL_last_swash_slen (PERL_GET_INTERP->Ilast_swash_slen)
+#define PL_last_swash_tmps (PERL_GET_INTERP->Ilast_swash_tmps)
+#define PL_last_uni (PERL_GET_INTERP->Ilast_uni)
+#define PL_lastfd (PERL_GET_INTERP->Ilastfd)
+#define PL_laststatval (PERL_GET_INTERP->Ilaststatval)
+#define PL_laststype (PERL_GET_INTERP->Ilaststype)
+#define PL_lex_brackets (PERL_GET_INTERP->Ilex_brackets)
+#define PL_lex_brackstack (PERL_GET_INTERP->Ilex_brackstack)
+#define PL_lex_casemods (PERL_GET_INTERP->Ilex_casemods)
+#define PL_lex_casestack (PERL_GET_INTERP->Ilex_casestack)
+#define PL_lex_defer (PERL_GET_INTERP->Ilex_defer)
+#define PL_lex_dojoin (PERL_GET_INTERP->Ilex_dojoin)
+#define PL_lex_expect (PERL_GET_INTERP->Ilex_expect)
+#define PL_lex_fakebrack (PERL_GET_INTERP->Ilex_fakebrack)
+#define PL_lex_formbrack (PERL_GET_INTERP->Ilex_formbrack)
+#define PL_lex_inpat (PERL_GET_INTERP->Ilex_inpat)
+#define PL_lex_inwhat (PERL_GET_INTERP->Ilex_inwhat)
+#define PL_lex_op (PERL_GET_INTERP->Ilex_op)
+#define PL_lex_repl (PERL_GET_INTERP->Ilex_repl)
+#define PL_lex_starts (PERL_GET_INTERP->Ilex_starts)
+#define PL_lex_state (PERL_GET_INTERP->Ilex_state)
+#define PL_lex_stuff (PERL_GET_INTERP->Ilex_stuff)
+#define PL_lineary (PERL_GET_INTERP->Ilineary)
+#define PL_linestart (PERL_GET_INTERP->Ilinestart)
+#define PL_linestr (PERL_GET_INTERP->Ilinestr)
+#define PL_localpatches (PERL_GET_INTERP->Ilocalpatches)
+#define PL_main_cv (PERL_GET_INTERP->Imain_cv)
+#define PL_main_root (PERL_GET_INTERP->Imain_root)
+#define PL_main_start (PERL_GET_INTERP->Imain_start)
+#define PL_max_intro_pending (PERL_GET_INTERP->Imax_intro_pending)
+#define PL_maxo (PERL_GET_INTERP->Imaxo)
+#define PL_maxsysfd (PERL_GET_INTERP->Imaxsysfd)
+#define PL_mess_sv (PERL_GET_INTERP->Imess_sv)
+#define PL_min_intro_pending (PERL_GET_INTERP->Imin_intro_pending)
+#define PL_minus_F (PERL_GET_INTERP->Iminus_F)
+#define PL_minus_a (PERL_GET_INTERP->Iminus_a)
+#define PL_minus_c (PERL_GET_INTERP->Iminus_c)
+#define PL_minus_l (PERL_GET_INTERP->Iminus_l)
+#define PL_minus_n (PERL_GET_INTERP->Iminus_n)
+#define PL_minus_p (PERL_GET_INTERP->Iminus_p)
+#define PL_modglobal (PERL_GET_INTERP->Imodglobal)
+#define PL_multi_close (PERL_GET_INTERP->Imulti_close)
+#define PL_multi_end (PERL_GET_INTERP->Imulti_end)
+#define PL_multi_open (PERL_GET_INTERP->Imulti_open)
+#define PL_multi_start (PERL_GET_INTERP->Imulti_start)
+#define PL_multiline (PERL_GET_INTERP->Imultiline)
+#define PL_nexttoke (PERL_GET_INTERP->Inexttoke)
+#define PL_nexttype (PERL_GET_INTERP->Inexttype)
+#define PL_nextval (PERL_GET_INTERP->Inextval)
+#define PL_nice_chunk (PERL_GET_INTERP->Inice_chunk)
+#define PL_nice_chunk_size (PERL_GET_INTERP->Inice_chunk_size)
+#define PL_nomemok (PERL_GET_INTERP->Inomemok)
+#define PL_nthreads (PERL_GET_INTERP->Inthreads)
+#define PL_nthreads_cond (PERL_GET_INTERP->Inthreads_cond)
+#define PL_numeric_local (PERL_GET_INTERP->Inumeric_local)
+#define PL_numeric_name (PERL_GET_INTERP->Inumeric_name)
+#define PL_numeric_radix (PERL_GET_INTERP->Inumeric_radix)
+#define PL_numeric_standard (PERL_GET_INTERP->Inumeric_standard)
+#define PL_ofmt (PERL_GET_INTERP->Iofmt)
+#define PL_oldbufptr (PERL_GET_INTERP->Ioldbufptr)
+#define PL_oldname (PERL_GET_INTERP->Ioldname)
+#define PL_oldoldbufptr (PERL_GET_INTERP->Ioldoldbufptr)
+#define PL_op_mask (PERL_GET_INTERP->Iop_mask)
+#define PL_op_seqmax (PERL_GET_INTERP->Iop_seqmax)
+#define PL_origalen (PERL_GET_INTERP->Iorigalen)
+#define PL_origargc (PERL_GET_INTERP->Iorigargc)
+#define PL_origargv (PERL_GET_INTERP->Iorigargv)
+#define PL_origenviron (PERL_GET_INTERP->Iorigenviron)
+#define PL_origfilename (PERL_GET_INTERP->Iorigfilename)
+#define PL_ors (PERL_GET_INTERP->Iors)
+#define PL_orslen (PERL_GET_INTERP->Iorslen)
+#define PL_osname (PERL_GET_INTERP->Iosname)
+#define PL_pad_reset_pending (PERL_GET_INTERP->Ipad_reset_pending)
+#define PL_padix (PERL_GET_INTERP->Ipadix)
+#define PL_padix_floor (PERL_GET_INTERP->Ipadix_floor)
+#define PL_patchlevel (PERL_GET_INTERP->Ipatchlevel)
+#define PL_pending_ident (PERL_GET_INTERP->Ipending_ident)
+#define PL_perl_destruct_level (PERL_GET_INTERP->Iperl_destruct_level)
+#define PL_perldb (PERL_GET_INTERP->Iperldb)
+#define PL_pidstatus (PERL_GET_INTERP->Ipidstatus)
+#define PL_preambleav (PERL_GET_INTERP->Ipreambleav)
+#define PL_preambled (PERL_GET_INTERP->Ipreambled)
+#define PL_preprocess (PERL_GET_INTERP->Ipreprocess)
+#define PL_profiledata (PERL_GET_INTERP->Iprofiledata)
+#define PL_replgv (PERL_GET_INTERP->Ireplgv)
+#define PL_rsfp (PERL_GET_INTERP->Irsfp)
+#define PL_rsfp_filters (PERL_GET_INTERP->Irsfp_filters)
+#define PL_runops (PERL_GET_INTERP->Irunops)
+#define PL_sawampersand (PERL_GET_INTERP->Isawampersand)
+#define PL_sh_path (PERL_GET_INTERP->Ish_path)
+#define PL_sighandlerp (PERL_GET_INTERP->Isighandlerp)
+#define PL_splitstr (PERL_GET_INTERP->Isplitstr)
+#define PL_srand_called (PERL_GET_INTERP->Isrand_called)
+#define PL_statusvalue (PERL_GET_INTERP->Istatusvalue)
+#define PL_statusvalue_vms (PERL_GET_INTERP->Istatusvalue_vms)
+#define PL_stderrgv (PERL_GET_INTERP->Istderrgv)
+#define PL_stdingv (PERL_GET_INTERP->Istdingv)
+#define PL_stopav (PERL_GET_INTERP->Istopav)
+#define PL_strtab (PERL_GET_INTERP->Istrtab)
+#define PL_strtab_mutex (PERL_GET_INTERP->Istrtab_mutex)
+#define PL_sub_generation (PERL_GET_INTERP->Isub_generation)
+#define PL_sublex_info (PERL_GET_INTERP->Isublex_info)
+#define PL_subline (PERL_GET_INTERP->Isubline)
+#define PL_subname (PERL_GET_INTERP->Isubname)
+#define PL_sv_arenaroot (PERL_GET_INTERP->Isv_arenaroot)
+#define PL_sv_count (PERL_GET_INTERP->Isv_count)
+#define PL_sv_mutex (PERL_GET_INTERP->Isv_mutex)
+#define PL_sv_no (PERL_GET_INTERP->Isv_no)
+#define PL_sv_objcount (PERL_GET_INTERP->Isv_objcount)
+#define PL_sv_root (PERL_GET_INTERP->Isv_root)
+#define PL_sv_undef (PERL_GET_INTERP->Isv_undef)
+#define PL_sv_yes (PERL_GET_INTERP->Isv_yes)
+#define PL_svref_mutex (PERL_GET_INTERP->Isvref_mutex)
+#define PL_sys_intern (PERL_GET_INTERP->Isys_intern)
+#define PL_tainting (PERL_GET_INTERP->Itainting)
+#define PL_thr_key (PERL_GET_INTERP->Ithr_key)
+#define PL_threadnum (PERL_GET_INTERP->Ithreadnum)
+#define PL_threads_mutex (PERL_GET_INTERP->Ithreads_mutex)
+#define PL_threadsv_names (PERL_GET_INTERP->Ithreadsv_names)
+#define PL_thrsv (PERL_GET_INTERP->Ithrsv)
+#define PL_tokenbuf (PERL_GET_INTERP->Itokenbuf)
+#define PL_uid (PERL_GET_INTERP->Iuid)
+#define PL_unsafe (PERL_GET_INTERP->Iunsafe)
+#define PL_utf8_alnum (PERL_GET_INTERP->Iutf8_alnum)
+#define PL_utf8_alnumc (PERL_GET_INTERP->Iutf8_alnumc)
+#define PL_utf8_alpha (PERL_GET_INTERP->Iutf8_alpha)
+#define PL_utf8_ascii (PERL_GET_INTERP->Iutf8_ascii)
+#define PL_utf8_cntrl (PERL_GET_INTERP->Iutf8_cntrl)
+#define PL_utf8_digit (PERL_GET_INTERP->Iutf8_digit)
+#define PL_utf8_graph (PERL_GET_INTERP->Iutf8_graph)
+#define PL_utf8_lower (PERL_GET_INTERP->Iutf8_lower)
+#define PL_utf8_mark (PERL_GET_INTERP->Iutf8_mark)
+#define PL_utf8_print (PERL_GET_INTERP->Iutf8_print)
+#define PL_utf8_punct (PERL_GET_INTERP->Iutf8_punct)
+#define PL_utf8_space (PERL_GET_INTERP->Iutf8_space)
+#define PL_utf8_tolower (PERL_GET_INTERP->Iutf8_tolower)
+#define PL_utf8_totitle (PERL_GET_INTERP->Iutf8_totitle)
+#define PL_utf8_toupper (PERL_GET_INTERP->Iutf8_toupper)
+#define PL_utf8_upper (PERL_GET_INTERP->Iutf8_upper)
+#define PL_utf8_xdigit (PERL_GET_INTERP->Iutf8_xdigit)
+#define PL_uudmap (PERL_GET_INTERP->Iuudmap)
+#define PL_warnhook (PERL_GET_INTERP->Iwarnhook)
+#define PL_xiv_arenaroot (PERL_GET_INTERP->Ixiv_arenaroot)
+#define PL_xiv_root (PERL_GET_INTERP->Ixiv_root)
+#define PL_xnv_root (PERL_GET_INTERP->Ixnv_root)
+#define PL_xpv_root (PERL_GET_INTERP->Ixpv_root)
+#define PL_xpvav_root (PERL_GET_INTERP->Ixpvav_root)
+#define PL_xpvbm_root (PERL_GET_INTERP->Ixpvbm_root)
+#define PL_xpvcv_root (PERL_GET_INTERP->Ixpvcv_root)
+#define PL_xpvhv_root (PERL_GET_INTERP->Ixpvhv_root)
+#define PL_xpviv_root (PERL_GET_INTERP->Ixpviv_root)
+#define PL_xpvlv_root (PERL_GET_INTERP->Ixpvlv_root)
+#define PL_xpvmg_root (PERL_GET_INTERP->Ixpvmg_root)
+#define PL_xpvnv_root (PERL_GET_INTERP->Ixpvnv_root)
+#define PL_xrv_root (PERL_GET_INTERP->Ixrv_root)
+#define PL_yychar (PERL_GET_INTERP->Iyychar)
+#define PL_yydebug (PERL_GET_INTERP->Iyydebug)
+#define PL_yyerrflag (PERL_GET_INTERP->Iyyerrflag)
+#define PL_yylval (PERL_GET_INTERP->Iyylval)
+#define PL_yynerrs (PERL_GET_INTERP->Iyynerrs)
+#define PL_yyval (PERL_GET_INTERP->Iyyval)
-/* Hide what would have been interpreter-specific symbols? */
+# else /* !USE_THREADS */
+/* cases 2 and 3 above */
-#ifdef EMBED
+#define PL_Argv (vTHX->IArgv)
+#define PL_Cmd (vTHX->ICmd)
+#define PL_DBcv (vTHX->IDBcv)
+#define PL_DBgv (vTHX->IDBgv)
+#define PL_DBline (vTHX->IDBline)
+#define PL_DBsignal (vTHX->IDBsignal)
+#define PL_DBsingle (vTHX->IDBsingle)
+#define PL_DBsub (vTHX->IDBsub)
+#define PL_DBtrace (vTHX->IDBtrace)
+#define PL_Dir (vTHX->IDir)
+#define PL_Env (vTHX->IEnv)
+#define PL_LIO (vTHX->ILIO)
+#define PL_Mem (vTHX->IMem)
+#define PL_Proc (vTHX->IProc)
+#define PL_Sock (vTHX->ISock)
+#define PL_StdIO (vTHX->IStdIO)
+#define PL_amagic_generation (vTHX->Iamagic_generation)
+#define PL_an (vTHX->Ian)
+#define PL_archpat_auto (vTHX->Iarchpat_auto)
+#define PL_argvgv (vTHX->Iargvgv)
+#define PL_argvout_stack (vTHX->Iargvout_stack)
+#define PL_argvoutgv (vTHX->Iargvoutgv)
+#define PL_basetime (vTHX->Ibasetime)
+#define PL_beginav (vTHX->Ibeginav)
+#define PL_bitcount (vTHX->Ibitcount)
+#define PL_bufend (vTHX->Ibufend)
+#define PL_bufptr (vTHX->Ibufptr)
+#define PL_collation_ix (vTHX->Icollation_ix)
+#define PL_collation_name (vTHX->Icollation_name)
+#define PL_collation_standard (vTHX->Icollation_standard)
+#define PL_collxfrm_base (vTHX->Icollxfrm_base)
+#define PL_collxfrm_mult (vTHX->Icollxfrm_mult)
+#define PL_compcv (vTHX->Icompcv)
+#define PL_compiling (vTHX->Icompiling)
+#define PL_comppad (vTHX->Icomppad)
+#define PL_comppad_name (vTHX->Icomppad_name)
+#define PL_comppad_name_fill (vTHX->Icomppad_name_fill)
+#define PL_comppad_name_floor (vTHX->Icomppad_name_floor)
+#define PL_cop_seqmax (vTHX->Icop_seqmax)
+#define PL_copline (vTHX->Icopline)
+#define PL_cred_mutex (vTHX->Icred_mutex)
+#define PL_cryptseen (vTHX->Icryptseen)
+#define PL_cshlen (vTHX->Icshlen)
+#define PL_cshname (vTHX->Icshname)
+#define PL_curcopdb (vTHX->Icurcopdb)
+#define PL_curstname (vTHX->Icurstname)
+#define PL_curthr (vTHX->Icurthr)
+#define PL_dbargs (vTHX->Idbargs)
+#define PL_debstash (vTHX->Idebstash)
+#define PL_debug (vTHX->Idebug)
+#define PL_defgv (vTHX->Idefgv)
+#define PL_diehook (vTHX->Idiehook)
+#define PL_doextract (vTHX->Idoextract)
+#define PL_doswitches (vTHX->Idoswitches)
+#define PL_dowarn (vTHX->Idowarn)
+#define PL_e_script (vTHX->Ie_script)
+#define PL_egid (vTHX->Iegid)
+#define PL_endav (vTHX->Iendav)
+#define PL_envgv (vTHX->Ienvgv)
+#define PL_errgv (vTHX->Ierrgv)
+#define PL_error_count (vTHX->Ierror_count)
+#define PL_euid (vTHX->Ieuid)
+#define PL_eval_cond (vTHX->Ieval_cond)
+#define PL_eval_mutex (vTHX->Ieval_mutex)
+#define PL_eval_owner (vTHX->Ieval_owner)
+#define PL_eval_root (vTHX->Ieval_root)
+#define PL_eval_start (vTHX->Ieval_start)
+#define PL_evalseq (vTHX->Ievalseq)
+#define PL_exitlist (vTHX->Iexitlist)
+#define PL_exitlistlen (vTHX->Iexitlistlen)
+#define PL_expect (vTHX->Iexpect)
+#define PL_fdpid (vTHX->Ifdpid)
+#define PL_filemode (vTHX->Ifilemode)
+#define PL_forkprocess (vTHX->Iforkprocess)
+#define PL_formfeed (vTHX->Iformfeed)
+#define PL_generation (vTHX->Igeneration)
+#define PL_gensym (vTHX->Igensym)
+#define PL_gid (vTHX->Igid)
+#define PL_glob_index (vTHX->Iglob_index)
+#define PL_globalstash (vTHX->Iglobalstash)
+#define PL_he_root (vTHX->Ihe_root)
+#define PL_hintgv (vTHX->Ihintgv)
+#define PL_hints (vTHX->Ihints)
+#define PL_in_clean_all (vTHX->Iin_clean_all)
+#define PL_in_clean_objs (vTHX->Iin_clean_objs)
+#define PL_in_my (vTHX->Iin_my)
+#define PL_in_my_stash (vTHX->Iin_my_stash)
+#define PL_incgv (vTHX->Iincgv)
+#define PL_initav (vTHX->Iinitav)
+#define PL_inplace (vTHX->Iinplace)
+#define PL_last_lop (vTHX->Ilast_lop)
+#define PL_last_lop_op (vTHX->Ilast_lop_op)
+#define PL_last_swash_hv (vTHX->Ilast_swash_hv)
+#define PL_last_swash_key (vTHX->Ilast_swash_key)
+#define PL_last_swash_klen (vTHX->Ilast_swash_klen)
+#define PL_last_swash_slen (vTHX->Ilast_swash_slen)
+#define PL_last_swash_tmps (vTHX->Ilast_swash_tmps)
+#define PL_last_uni (vTHX->Ilast_uni)
+#define PL_lastfd (vTHX->Ilastfd)
+#define PL_laststatval (vTHX->Ilaststatval)
+#define PL_laststype (vTHX->Ilaststype)
+#define PL_lex_brackets (vTHX->Ilex_brackets)
+#define PL_lex_brackstack (vTHX->Ilex_brackstack)
+#define PL_lex_casemods (vTHX->Ilex_casemods)
+#define PL_lex_casestack (vTHX->Ilex_casestack)
+#define PL_lex_defer (vTHX->Ilex_defer)
+#define PL_lex_dojoin (vTHX->Ilex_dojoin)
+#define PL_lex_expect (vTHX->Ilex_expect)
+#define PL_lex_fakebrack (vTHX->Ilex_fakebrack)
+#define PL_lex_formbrack (vTHX->Ilex_formbrack)
+#define PL_lex_inpat (vTHX->Ilex_inpat)
+#define PL_lex_inwhat (vTHX->Ilex_inwhat)
+#define PL_lex_op (vTHX->Ilex_op)
+#define PL_lex_repl (vTHX->Ilex_repl)
+#define PL_lex_starts (vTHX->Ilex_starts)
+#define PL_lex_state (vTHX->Ilex_state)
+#define PL_lex_stuff (vTHX->Ilex_stuff)
+#define PL_lineary (vTHX->Ilineary)
+#define PL_linestart (vTHX->Ilinestart)
+#define PL_linestr (vTHX->Ilinestr)
+#define PL_localpatches (vTHX->Ilocalpatches)
+#define PL_main_cv (vTHX->Imain_cv)
+#define PL_main_root (vTHX->Imain_root)
+#define PL_main_start (vTHX->Imain_start)
+#define PL_max_intro_pending (vTHX->Imax_intro_pending)
+#define PL_maxo (vTHX->Imaxo)
+#define PL_maxsysfd (vTHX->Imaxsysfd)
+#define PL_mess_sv (vTHX->Imess_sv)
+#define PL_min_intro_pending (vTHX->Imin_intro_pending)
+#define PL_minus_F (vTHX->Iminus_F)
+#define PL_minus_a (vTHX->Iminus_a)
+#define PL_minus_c (vTHX->Iminus_c)
+#define PL_minus_l (vTHX->Iminus_l)
+#define PL_minus_n (vTHX->Iminus_n)
+#define PL_minus_p (vTHX->Iminus_p)
+#define PL_modglobal (vTHX->Imodglobal)
+#define PL_multi_close (vTHX->Imulti_close)
+#define PL_multi_end (vTHX->Imulti_end)
+#define PL_multi_open (vTHX->Imulti_open)
+#define PL_multi_start (vTHX->Imulti_start)
+#define PL_multiline (vTHX->Imultiline)
+#define PL_nexttoke (vTHX->Inexttoke)
+#define PL_nexttype (vTHX->Inexttype)
+#define PL_nextval (vTHX->Inextval)
+#define PL_nice_chunk (vTHX->Inice_chunk)
+#define PL_nice_chunk_size (vTHX->Inice_chunk_size)
+#define PL_nomemok (vTHX->Inomemok)
+#define PL_nthreads (vTHX->Inthreads)
+#define PL_nthreads_cond (vTHX->Inthreads_cond)
+#define PL_numeric_local (vTHX->Inumeric_local)
+#define PL_numeric_name (vTHX->Inumeric_name)
+#define PL_numeric_radix (vTHX->Inumeric_radix)
+#define PL_numeric_standard (vTHX->Inumeric_standard)
+#define PL_ofmt (vTHX->Iofmt)
+#define PL_oldbufptr (vTHX->Ioldbufptr)
+#define PL_oldname (vTHX->Ioldname)
+#define PL_oldoldbufptr (vTHX->Ioldoldbufptr)
+#define PL_op_mask (vTHX->Iop_mask)
+#define PL_op_seqmax (vTHX->Iop_seqmax)
+#define PL_origalen (vTHX->Iorigalen)
+#define PL_origargc (vTHX->Iorigargc)
+#define PL_origargv (vTHX->Iorigargv)
+#define PL_origenviron (vTHX->Iorigenviron)
+#define PL_origfilename (vTHX->Iorigfilename)
+#define PL_ors (vTHX->Iors)
+#define PL_orslen (vTHX->Iorslen)
+#define PL_osname (vTHX->Iosname)
+#define PL_pad_reset_pending (vTHX->Ipad_reset_pending)
+#define PL_padix (vTHX->Ipadix)
+#define PL_padix_floor (vTHX->Ipadix_floor)
+#define PL_patchlevel (vTHX->Ipatchlevel)
+#define PL_pending_ident (vTHX->Ipending_ident)
+#define PL_perl_destruct_level (vTHX->Iperl_destruct_level)
+#define PL_perldb (vTHX->Iperldb)
+#define PL_pidstatus (vTHX->Ipidstatus)
+#define PL_preambleav (vTHX->Ipreambleav)
+#define PL_preambled (vTHX->Ipreambled)
+#define PL_preprocess (vTHX->Ipreprocess)
+#define PL_profiledata (vTHX->Iprofiledata)
+#define PL_replgv (vTHX->Ireplgv)
+#define PL_rsfp (vTHX->Irsfp)
+#define PL_rsfp_filters (vTHX->Irsfp_filters)
+#define PL_runops (vTHX->Irunops)
+#define PL_sawampersand (vTHX->Isawampersand)
+#define PL_sh_path (vTHX->Ish_path)
+#define PL_sighandlerp (vTHX->Isighandlerp)
+#define PL_splitstr (vTHX->Isplitstr)
+#define PL_srand_called (vTHX->Isrand_called)
+#define PL_statusvalue (vTHX->Istatusvalue)
+#define PL_statusvalue_vms (vTHX->Istatusvalue_vms)
+#define PL_stderrgv (vTHX->Istderrgv)
+#define PL_stdingv (vTHX->Istdingv)
+#define PL_stopav (vTHX->Istopav)
+#define PL_strtab (vTHX->Istrtab)
+#define PL_strtab_mutex (vTHX->Istrtab_mutex)
+#define PL_sub_generation (vTHX->Isub_generation)
+#define PL_sublex_info (vTHX->Isublex_info)
+#define PL_subline (vTHX->Isubline)
+#define PL_subname (vTHX->Isubname)
+#define PL_sv_arenaroot (vTHX->Isv_arenaroot)
+#define PL_sv_count (vTHX->Isv_count)
+#define PL_sv_mutex (vTHX->Isv_mutex)
+#define PL_sv_no (vTHX->Isv_no)
+#define PL_sv_objcount (vTHX->Isv_objcount)
+#define PL_sv_root (vTHX->Isv_root)
+#define PL_sv_undef (vTHX->Isv_undef)
+#define PL_sv_yes (vTHX->Isv_yes)
+#define PL_svref_mutex (vTHX->Isvref_mutex)
+#define PL_sys_intern (vTHX->Isys_intern)
+#define PL_tainting (vTHX->Itainting)
+#define PL_thr_key (vTHX->Ithr_key)
+#define PL_threadnum (vTHX->Ithreadnum)
+#define PL_threads_mutex (vTHX->Ithreads_mutex)
+#define PL_threadsv_names (vTHX->Ithreadsv_names)
+#define PL_thrsv (vTHX->Ithrsv)
+#define PL_tokenbuf (vTHX->Itokenbuf)
+#define PL_uid (vTHX->Iuid)
+#define PL_unsafe (vTHX->Iunsafe)
+#define PL_utf8_alnum (vTHX->Iutf8_alnum)
+#define PL_utf8_alnumc (vTHX->Iutf8_alnumc)
+#define PL_utf8_alpha (vTHX->Iutf8_alpha)
+#define PL_utf8_ascii (vTHX->Iutf8_ascii)
+#define PL_utf8_cntrl (vTHX->Iutf8_cntrl)
+#define PL_utf8_digit (vTHX->Iutf8_digit)
+#define PL_utf8_graph (vTHX->Iutf8_graph)
+#define PL_utf8_lower (vTHX->Iutf8_lower)
+#define PL_utf8_mark (vTHX->Iutf8_mark)
+#define PL_utf8_print (vTHX->Iutf8_print)
+#define PL_utf8_punct (vTHX->Iutf8_punct)
+#define PL_utf8_space (vTHX->Iutf8_space)
+#define PL_utf8_tolower (vTHX->Iutf8_tolower)
+#define PL_utf8_totitle (vTHX->Iutf8_totitle)
+#define PL_utf8_toupper (vTHX->Iutf8_toupper)
+#define PL_utf8_upper (vTHX->Iutf8_upper)
+#define PL_utf8_xdigit (vTHX->Iutf8_xdigit)
+#define PL_uudmap (vTHX->Iuudmap)
+#define PL_warnhook (vTHX->Iwarnhook)
+#define PL_xiv_arenaroot (vTHX->Ixiv_arenaroot)
+#define PL_xiv_root (vTHX->Ixiv_root)
+#define PL_xnv_root (vTHX->Ixnv_root)
+#define PL_xpv_root (vTHX->Ixpv_root)
+#define PL_xpvav_root (vTHX->Ixpvav_root)
+#define PL_xpvbm_root (vTHX->Ixpvbm_root)
+#define PL_xpvcv_root (vTHX->Ixpvcv_root)
+#define PL_xpvhv_root (vTHX->Ixpvhv_root)
+#define PL_xpviv_root (vTHX->Ixpviv_root)
+#define PL_xpvlv_root (vTHX->Ixpvlv_root)
+#define PL_xpvmg_root (vTHX->Ixpvmg_root)
+#define PL_xpvnv_root (vTHX->Ixpvnv_root)
+#define PL_xrv_root (vTHX->Ixrv_root)
+#define PL_yychar (vTHX->Iyychar)
+#define PL_yydebug (vTHX->Iyydebug)
+#define PL_yyerrflag (vTHX->Iyyerrflag)
+#define PL_yylval (vTHX->Iyylval)
+#define PL_yynerrs (vTHX->Iyynerrs)
+#define PL_yyval (vTHX->Iyyval)
+# endif /* USE_THREADS */
-#ifndef USE_THREADS
+#else /* !MULTIPLICITY */
+/* cases 1, 4 and 6 above */
+#define PL_IArgv PL_Argv
+#define PL_ICmd PL_Cmd
+#define PL_IDBcv PL_DBcv
+#define PL_IDBgv PL_DBgv
+#define PL_IDBline PL_DBline
+#define PL_IDBsignal PL_DBsignal
+#define PL_IDBsingle PL_DBsingle
+#define PL_IDBsub PL_DBsub
+#define PL_IDBtrace PL_DBtrace
+#define PL_IDir PL_Dir
+#define PL_IEnv PL_Env
+#define PL_ILIO PL_LIO
+#define PL_IMem PL_Mem
+#define PL_IProc PL_Proc
+#define PL_ISock PL_Sock
+#define PL_IStdIO PL_StdIO
+#define PL_Iamagic_generation PL_amagic_generation
+#define PL_Ian PL_an
+#define PL_Iarchpat_auto PL_archpat_auto
+#define PL_Iargvgv PL_argvgv
+#define PL_Iargvout_stack PL_argvout_stack
+#define PL_Iargvoutgv PL_argvoutgv
+#define PL_Ibasetime PL_basetime
+#define PL_Ibeginav PL_beginav
+#define PL_Ibitcount PL_bitcount
+#define PL_Ibufend PL_bufend
+#define PL_Ibufptr PL_bufptr
+#define PL_Icollation_ix PL_collation_ix
+#define PL_Icollation_name PL_collation_name
+#define PL_Icollation_standard PL_collation_standard
+#define PL_Icollxfrm_base PL_collxfrm_base
+#define PL_Icollxfrm_mult PL_collxfrm_mult
+#define PL_Icompcv PL_compcv
+#define PL_Icompiling PL_compiling
+#define PL_Icomppad PL_comppad
+#define PL_Icomppad_name PL_comppad_name
+#define PL_Icomppad_name_fill PL_comppad_name_fill
+#define PL_Icomppad_name_floor PL_comppad_name_floor
+#define PL_Icop_seqmax PL_cop_seqmax
+#define PL_Icopline PL_copline
+#define PL_Icred_mutex PL_cred_mutex
+#define PL_Icryptseen PL_cryptseen
+#define PL_Icshlen PL_cshlen
+#define PL_Icshname PL_cshname
+#define PL_Icurcopdb PL_curcopdb
+#define PL_Icurstname PL_curstname
+#define PL_Icurthr PL_curthr
+#define PL_Idbargs PL_dbargs
+#define PL_Idebstash PL_debstash
+#define PL_Idebug PL_debug
+#define PL_Idefgv PL_defgv
+#define PL_Idiehook PL_diehook
+#define PL_Idoextract PL_doextract
+#define PL_Idoswitches PL_doswitches
+#define PL_Idowarn PL_dowarn
+#define PL_Ie_script PL_e_script
+#define PL_Iegid PL_egid
+#define PL_Iendav PL_endav
+#define PL_Ienvgv PL_envgv
+#define PL_Ierrgv PL_errgv
+#define PL_Ierror_count PL_error_count
+#define PL_Ieuid PL_euid
+#define PL_Ieval_cond PL_eval_cond
+#define PL_Ieval_mutex PL_eval_mutex
+#define PL_Ieval_owner PL_eval_owner
+#define PL_Ieval_root PL_eval_root
+#define PL_Ieval_start PL_eval_start
+#define PL_Ievalseq PL_evalseq
+#define PL_Iexitlist PL_exitlist
+#define PL_Iexitlistlen PL_exitlistlen
+#define PL_Iexpect PL_expect
+#define PL_Ifdpid PL_fdpid
+#define PL_Ifilemode PL_filemode
+#define PL_Iforkprocess PL_forkprocess
+#define PL_Iformfeed PL_formfeed
+#define PL_Igeneration PL_generation
+#define PL_Igensym PL_gensym
+#define PL_Igid PL_gid
+#define PL_Iglob_index PL_glob_index
+#define PL_Iglobalstash PL_globalstash
+#define PL_Ihe_root PL_he_root
+#define PL_Ihintgv PL_hintgv
+#define PL_Ihints PL_hints
+#define PL_Iin_clean_all PL_in_clean_all
+#define PL_Iin_clean_objs PL_in_clean_objs
+#define PL_Iin_my PL_in_my
+#define PL_Iin_my_stash PL_in_my_stash
+#define PL_Iincgv PL_incgv
+#define PL_Iinitav PL_initav
+#define PL_Iinplace PL_inplace
+#define PL_Ilast_lop PL_last_lop
+#define PL_Ilast_lop_op PL_last_lop_op
+#define PL_Ilast_swash_hv PL_last_swash_hv
+#define PL_Ilast_swash_key PL_last_swash_key
+#define PL_Ilast_swash_klen PL_last_swash_klen
+#define PL_Ilast_swash_slen PL_last_swash_slen
+#define PL_Ilast_swash_tmps PL_last_swash_tmps
+#define PL_Ilast_uni PL_last_uni
+#define PL_Ilastfd PL_lastfd
+#define PL_Ilaststatval PL_laststatval
+#define PL_Ilaststype PL_laststype
+#define PL_Ilex_brackets PL_lex_brackets
+#define PL_Ilex_brackstack PL_lex_brackstack
+#define PL_Ilex_casemods PL_lex_casemods
+#define PL_Ilex_casestack PL_lex_casestack
+#define PL_Ilex_defer PL_lex_defer
+#define PL_Ilex_dojoin PL_lex_dojoin
+#define PL_Ilex_expect PL_lex_expect
+#define PL_Ilex_fakebrack PL_lex_fakebrack
+#define PL_Ilex_formbrack PL_lex_formbrack
+#define PL_Ilex_inpat PL_lex_inpat
+#define PL_Ilex_inwhat PL_lex_inwhat
+#define PL_Ilex_op PL_lex_op
+#define PL_Ilex_repl PL_lex_repl
+#define PL_Ilex_starts PL_lex_starts
+#define PL_Ilex_state PL_lex_state
+#define PL_Ilex_stuff PL_lex_stuff
+#define PL_Ilineary PL_lineary
+#define PL_Ilinestart PL_linestart
+#define PL_Ilinestr PL_linestr
+#define PL_Ilocalpatches PL_localpatches
+#define PL_Imain_cv PL_main_cv
+#define PL_Imain_root PL_main_root
+#define PL_Imain_start PL_main_start
+#define PL_Imax_intro_pending PL_max_intro_pending
+#define PL_Imaxo PL_maxo
+#define PL_Imaxsysfd PL_maxsysfd
+#define PL_Imess_sv PL_mess_sv
+#define PL_Imin_intro_pending PL_min_intro_pending
+#define PL_Iminus_F PL_minus_F
+#define PL_Iminus_a PL_minus_a
+#define PL_Iminus_c PL_minus_c
+#define PL_Iminus_l PL_minus_l
+#define PL_Iminus_n PL_minus_n
+#define PL_Iminus_p PL_minus_p
+#define PL_Imodglobal PL_modglobal
+#define PL_Imulti_close PL_multi_close
+#define PL_Imulti_end PL_multi_end
+#define PL_Imulti_open PL_multi_open
+#define PL_Imulti_start PL_multi_start
+#define PL_Imultiline PL_multiline
+#define PL_Inexttoke PL_nexttoke
+#define PL_Inexttype PL_nexttype
+#define PL_Inextval PL_nextval
+#define PL_Inice_chunk PL_nice_chunk
+#define PL_Inice_chunk_size PL_nice_chunk_size
+#define PL_Inomemok PL_nomemok
+#define PL_Inthreads PL_nthreads
+#define PL_Inthreads_cond PL_nthreads_cond
+#define PL_Inumeric_local PL_numeric_local
+#define PL_Inumeric_name PL_numeric_name
+#define PL_Inumeric_radix PL_numeric_radix
+#define PL_Inumeric_standard PL_numeric_standard
+#define PL_Iofmt PL_ofmt
+#define PL_Ioldbufptr PL_oldbufptr
+#define PL_Ioldname PL_oldname
+#define PL_Ioldoldbufptr PL_oldoldbufptr
+#define PL_Iop_mask PL_op_mask
+#define PL_Iop_seqmax PL_op_seqmax
+#define PL_Iorigalen PL_origalen
+#define PL_Iorigargc PL_origargc
+#define PL_Iorigargv PL_origargv
+#define PL_Iorigenviron PL_origenviron
+#define PL_Iorigfilename PL_origfilename
+#define PL_Iors PL_ors
+#define PL_Iorslen PL_orslen
+#define PL_Iosname PL_osname
+#define PL_Ipad_reset_pending PL_pad_reset_pending
+#define PL_Ipadix PL_padix
+#define PL_Ipadix_floor PL_padix_floor
+#define PL_Ipatchlevel PL_patchlevel
+#define PL_Ipending_ident PL_pending_ident
+#define PL_Iperl_destruct_level PL_perl_destruct_level
+#define PL_Iperldb PL_perldb
+#define PL_Ipidstatus PL_pidstatus
+#define PL_Ipreambleav PL_preambleav
+#define PL_Ipreambled PL_preambled
+#define PL_Ipreprocess PL_preprocess
+#define PL_Iprofiledata PL_profiledata
+#define PL_Ireplgv PL_replgv
+#define PL_Irsfp PL_rsfp
+#define PL_Irsfp_filters PL_rsfp_filters
+#define PL_Irunops PL_runops
+#define PL_Isawampersand PL_sawampersand
+#define PL_Ish_path PL_sh_path
+#define PL_Isighandlerp PL_sighandlerp
+#define PL_Isplitstr PL_splitstr
+#define PL_Isrand_called PL_srand_called
+#define PL_Istatusvalue PL_statusvalue
+#define PL_Istatusvalue_vms PL_statusvalue_vms
+#define PL_Istderrgv PL_stderrgv
+#define PL_Istdingv PL_stdingv
+#define PL_Istopav PL_stopav
+#define PL_Istrtab PL_strtab
+#define PL_Istrtab_mutex PL_strtab_mutex
+#define PL_Isub_generation PL_sub_generation
+#define PL_Isublex_info PL_sublex_info
+#define PL_Isubline PL_subline
+#define PL_Isubname PL_subname
+#define PL_Isv_arenaroot PL_sv_arenaroot
+#define PL_Isv_count PL_sv_count
+#define PL_Isv_mutex PL_sv_mutex
+#define PL_Isv_no PL_sv_no
+#define PL_Isv_objcount PL_sv_objcount
+#define PL_Isv_root PL_sv_root
+#define PL_Isv_undef PL_sv_undef
+#define PL_Isv_yes PL_sv_yes
+#define PL_Isvref_mutex PL_svref_mutex
+#define PL_Isys_intern PL_sys_intern
+#define PL_Itainting PL_tainting
+#define PL_Ithr_key PL_thr_key
+#define PL_Ithreadnum PL_threadnum
+#define PL_Ithreads_mutex PL_threads_mutex
+#define PL_Ithreadsv_names PL_threadsv_names
+#define PL_Ithrsv PL_thrsv
+#define PL_Itokenbuf PL_tokenbuf
+#define PL_Iuid PL_uid
+#define PL_Iunsafe PL_unsafe
+#define PL_Iutf8_alnum PL_utf8_alnum
+#define PL_Iutf8_alnumc PL_utf8_alnumc
+#define PL_Iutf8_alpha PL_utf8_alpha
+#define PL_Iutf8_ascii PL_utf8_ascii
+#define PL_Iutf8_cntrl PL_utf8_cntrl
+#define PL_Iutf8_digit PL_utf8_digit
+#define PL_Iutf8_graph PL_utf8_graph
+#define PL_Iutf8_lower PL_utf8_lower
+#define PL_Iutf8_mark PL_utf8_mark
+#define PL_Iutf8_print PL_utf8_print
+#define PL_Iutf8_punct PL_utf8_punct
+#define PL_Iutf8_space PL_utf8_space
+#define PL_Iutf8_tolower PL_utf8_tolower
+#define PL_Iutf8_totitle PL_utf8_totitle
+#define PL_Iutf8_toupper PL_utf8_toupper
+#define PL_Iutf8_upper PL_utf8_upper
+#define PL_Iutf8_xdigit PL_utf8_xdigit
+#define PL_Iuudmap PL_uudmap
+#define PL_Iwarnhook PL_warnhook
+#define PL_Ixiv_arenaroot PL_xiv_arenaroot
+#define PL_Ixiv_root PL_xiv_root
+#define PL_Ixnv_root PL_xnv_root
+#define PL_Ixpv_root PL_xpv_root
+#define PL_Ixpvav_root PL_xpvav_root
+#define PL_Ixpvbm_root PL_xpvbm_root
+#define PL_Ixpvcv_root PL_xpvcv_root
+#define PL_Ixpvhv_root PL_xpvhv_root
+#define PL_Ixpviv_root PL_xpviv_root
+#define PL_Ixpvlv_root PL_xpvlv_root
+#define PL_Ixpvmg_root PL_xpvmg_root
+#define PL_Ixpvnv_root PL_xpvnv_root
+#define PL_Ixrv_root PL_xrv_root
+#define PL_Iyychar PL_yychar
+#define PL_Iyydebug PL_yydebug
+#define PL_Iyyerrflag PL_yyerrflag
+#define PL_Iyylval PL_yylval
+#define PL_Iyynerrs PL_yynerrs
+#define PL_Iyyval PL_yyval
-#endif /* USE_THREADS */
-#endif /* EMBED */
-#endif /* MULTIPLICITY */
+# if defined(USE_THREADS)
+/* case 4 above */
-/* Now same trickey for per-thread variables */
+#define PL_Sv (aTHX->TSv)
+#define PL_Xpv (aTHX->TXpv)
+#define PL_av_fetch_sv (aTHX->Tav_fetch_sv)
+#define PL_bodytarget (aTHX->Tbodytarget)
+#define PL_bostr (aTHX->Tbostr)
+#define PL_chopset (aTHX->Tchopset)
+#define PL_colors (aTHX->Tcolors)
+#define PL_colorset (aTHX->Tcolorset)
+#define PL_curcop (aTHX->Tcurcop)
+#define PL_curpad (aTHX->Tcurpad)
+#define PL_curpm (aTHX->Tcurpm)
+#define PL_curstack (aTHX->Tcurstack)
+#define PL_curstackinfo (aTHX->Tcurstackinfo)
+#define PL_curstash (aTHX->Tcurstash)
+#define PL_defoutgv (aTHX->Tdefoutgv)
+#define PL_defstash (aTHX->Tdefstash)
+#define PL_delaymagic (aTHX->Tdelaymagic)
+#define PL_dirty (aTHX->Tdirty)
+#define PL_dumpindent (aTHX->Tdumpindent)
+#define PL_efloatbuf (aTHX->Tefloatbuf)
+#define PL_efloatsize (aTHX->Tefloatsize)
+#define PL_errors (aTHX->Terrors)
+#define PL_extralen (aTHX->Textralen)
+#define PL_firstgv (aTHX->Tfirstgv)
+#define PL_formtarget (aTHX->Tformtarget)
+#define PL_hv_fetch_ent_mh (aTHX->Thv_fetch_ent_mh)
+#define PL_hv_fetch_sv (aTHX->Thv_fetch_sv)
+#define PL_in_eval (aTHX->Tin_eval)
+#define PL_last_in_gv (aTHX->Tlast_in_gv)
+#define PL_lastgotoprobe (aTHX->Tlastgotoprobe)
+#define PL_lastscream (aTHX->Tlastscream)
+#define PL_localizing (aTHX->Tlocalizing)
+#define PL_mainstack (aTHX->Tmainstack)
+#define PL_markstack (aTHX->Tmarkstack)
+#define PL_markstack_max (aTHX->Tmarkstack_max)
+#define PL_markstack_ptr (aTHX->Tmarkstack_ptr)
+#define PL_maxscream (aTHX->Tmaxscream)
+#define PL_modcount (aTHX->Tmodcount)
+#define PL_na (aTHX->Tna)
+#define PL_nrs (aTHX->Tnrs)
+#define PL_ofs (aTHX->Tofs)
+#define PL_ofslen (aTHX->Tofslen)
+#define PL_op (aTHX->Top)
+#define PL_opsave (aTHX->Topsave)
+#define PL_protect (aTHX->Tprotect)
+#define PL_reg_call_cc (aTHX->Treg_call_cc)
+#define PL_reg_curpm (aTHX->Treg_curpm)
+#define PL_reg_eval_set (aTHX->Treg_eval_set)
+#define PL_reg_flags (aTHX->Treg_flags)
+#define PL_reg_ganch (aTHX->Treg_ganch)
+#define PL_reg_leftiter (aTHX->Treg_leftiter)
+#define PL_reg_magic (aTHX->Treg_magic)
+#define PL_reg_maxiter (aTHX->Treg_maxiter)
+#define PL_reg_oldcurpm (aTHX->Treg_oldcurpm)
+#define PL_reg_oldpos (aTHX->Treg_oldpos)
+#define PL_reg_oldsaved (aTHX->Treg_oldsaved)
+#define PL_reg_oldsavedlen (aTHX->Treg_oldsavedlen)
+#define PL_reg_poscache (aTHX->Treg_poscache)
+#define PL_reg_poscache_size (aTHX->Treg_poscache_size)
+#define PL_reg_re (aTHX->Treg_re)
+#define PL_reg_start_tmp (aTHX->Treg_start_tmp)
+#define PL_reg_start_tmpl (aTHX->Treg_start_tmpl)
+#define PL_reg_starttry (aTHX->Treg_starttry)
+#define PL_reg_sv (aTHX->Treg_sv)
+#define PL_reg_whilem_seen (aTHX->Treg_whilem_seen)
+#define PL_regbol (aTHX->Tregbol)
+#define PL_regcc (aTHX->Tregcc)
+#define PL_regcode (aTHX->Tregcode)
+#define PL_regcomp_parse (aTHX->Tregcomp_parse)
+#define PL_regcomp_rx (aTHX->Tregcomp_rx)
+#define PL_regcompp (aTHX->Tregcompp)
+#define PL_regdata (aTHX->Tregdata)
+#define PL_regdummy (aTHX->Tregdummy)
+#define PL_regendp (aTHX->Tregendp)
+#define PL_regeol (aTHX->Tregeol)
+#define PL_regexecp (aTHX->Tregexecp)
+#define PL_regflags (aTHX->Tregflags)
+#define PL_regfree (aTHX->Tregfree)
+#define PL_regindent (aTHX->Tregindent)
+#define PL_reginput (aTHX->Treginput)
+#define PL_regint_start (aTHX->Tregint_start)
+#define PL_regint_string (aTHX->Tregint_string)
+#define PL_reginterp_cnt (aTHX->Treginterp_cnt)
+#define PL_reglastparen (aTHX->Treglastparen)
+#define PL_regnarrate (aTHX->Tregnarrate)
+#define PL_regnaughty (aTHX->Tregnaughty)
+#define PL_regnpar (aTHX->Tregnpar)
+#define PL_regprecomp (aTHX->Tregprecomp)
+#define PL_regprev (aTHX->Tregprev)
+#define PL_regprogram (aTHX->Tregprogram)
+#define PL_regsawback (aTHX->Tregsawback)
+#define PL_regseen (aTHX->Tregseen)
+#define PL_regsize (aTHX->Tregsize)
+#define PL_regstartp (aTHX->Tregstartp)
+#define PL_regtill (aTHX->Tregtill)
+#define PL_regxend (aTHX->Tregxend)
+#define PL_restartop (aTHX->Trestartop)
+#define PL_retstack (aTHX->Tretstack)
+#define PL_retstack_ix (aTHX->Tretstack_ix)
+#define PL_retstack_max (aTHX->Tretstack_max)
+#define PL_rs (aTHX->Trs)
+#define PL_savestack (aTHX->Tsavestack)
+#define PL_savestack_ix (aTHX->Tsavestack_ix)
+#define PL_savestack_max (aTHX->Tsavestack_max)
+#define PL_scopestack (aTHX->Tscopestack)
+#define PL_scopestack_ix (aTHX->Tscopestack_ix)
+#define PL_scopestack_max (aTHX->Tscopestack_max)
+#define PL_screamfirst (aTHX->Tscreamfirst)
+#define PL_screamnext (aTHX->Tscreamnext)
+#define PL_secondgv (aTHX->Tsecondgv)
+#define PL_seen_evals (aTHX->Tseen_evals)
+#define PL_seen_zerolen (aTHX->Tseen_zerolen)
+#define PL_sortcop (aTHX->Tsortcop)
+#define PL_sortcxix (aTHX->Tsortcxix)
+#define PL_sortstash (aTHX->Tsortstash)
+#define PL_stack_base (aTHX->Tstack_base)
+#define PL_stack_max (aTHX->Tstack_max)
+#define PL_stack_sp (aTHX->Tstack_sp)
+#define PL_start_env (aTHX->Tstart_env)
+#define PL_statbuf (aTHX->Tstatbuf)
+#define PL_statcache (aTHX->Tstatcache)
+#define PL_statgv (aTHX->Tstatgv)
+#define PL_statname (aTHX->Tstatname)
+#define PL_tainted (aTHX->Ttainted)
+#define PL_timesbuf (aTHX->Ttimesbuf)
+#define PL_tmps_floor (aTHX->Ttmps_floor)
+#define PL_tmps_ix (aTHX->Ttmps_ix)
+#define PL_tmps_max (aTHX->Ttmps_max)
+#define PL_tmps_stack (aTHX->Ttmps_stack)
+#define PL_top_env (aTHX->Ttop_env)
+#define PL_toptarget (aTHX->Ttoptarget)
+#define PL_watchaddr (aTHX->Twatchaddr)
+#define PL_watchok (aTHX->Twatchok)
-#ifdef USE_THREADS
+# else /* !USE_THREADS */
+/* cases 1 and 6 above */
-#define PL_Sv (thr->TSv)
-#define PL_Xpv (thr->TXpv)
-#define PL_av_fetch_sv (thr->Tav_fetch_sv)
-#define PL_bodytarget (thr->Tbodytarget)
-#define PL_bostr (thr->Tbostr)
-#define PL_chopset (thr->Tchopset)
-#define PL_colors (thr->Tcolors)
-#define PL_colorset (thr->Tcolorset)
-#define PL_curcop (thr->Tcurcop)
-#define PL_curpad (thr->Tcurpad)
-#define PL_curpm (thr->Tcurpm)
-#define PL_curstack (thr->Tcurstack)
-#define PL_curstackinfo (thr->Tcurstackinfo)
-#define PL_curstash (thr->Tcurstash)
-#define PL_defoutgv (thr->Tdefoutgv)
-#define PL_defstash (thr->Tdefstash)
-#define PL_delaymagic (thr->Tdelaymagic)
-#define PL_dirty (thr->Tdirty)
-#define PL_extralen (thr->Textralen)
-#define PL_firstgv (thr->Tfirstgv)
-#define PL_formtarget (thr->Tformtarget)
-#define PL_hv_fetch_ent_mh (thr->Thv_fetch_ent_mh)
-#define PL_hv_fetch_sv (thr->Thv_fetch_sv)
-#define PL_in_eval (thr->Tin_eval)
-#define PL_last_in_gv (thr->Tlast_in_gv)
-#define PL_lastgotoprobe (thr->Tlastgotoprobe)
-#define PL_lastscream (thr->Tlastscream)
-#define PL_localizing (thr->Tlocalizing)
-#define PL_mainstack (thr->Tmainstack)
-#define PL_markstack (thr->Tmarkstack)
-#define PL_markstack_max (thr->Tmarkstack_max)
-#define PL_markstack_ptr (thr->Tmarkstack_ptr)
-#define PL_maxscream (thr->Tmaxscream)
-#define PL_modcount (thr->Tmodcount)
-#define PL_nrs (thr->Tnrs)
-#define PL_ofs (thr->Tofs)
-#define PL_ofslen (thr->Tofslen)
-#define PL_op (thr->Top)
-#define PL_opsave (thr->Topsave)
-#define PL_reg_eval_set (thr->Treg_eval_set)
-#define PL_reg_flags (thr->Treg_flags)
-#define PL_reg_start_tmp (thr->Treg_start_tmp)
-#define PL_reg_start_tmpl (thr->Treg_start_tmpl)
-#define PL_regbol (thr->Tregbol)
-#define PL_regcc (thr->Tregcc)
-#define PL_regcode (thr->Tregcode)
-#define PL_regcomp_parse (thr->Tregcomp_parse)
-#define PL_regcomp_rx (thr->Tregcomp_rx)
-#define PL_regcompp (thr->Tregcompp)
-#define PL_regdata (thr->Tregdata)
-#define PL_regdummy (thr->Tregdummy)
-#define PL_regendp (thr->Tregendp)
-#define PL_regeol (thr->Tregeol)
-#define PL_regexecp (thr->Tregexecp)
-#define PL_regflags (thr->Tregflags)
-#define PL_regindent (thr->Tregindent)
-#define PL_reginput (thr->Treginput)
-#define PL_reginterp_cnt (thr->Treginterp_cnt)
-#define PL_reglastparen (thr->Treglastparen)
-#define PL_regnarrate (thr->Tregnarrate)
-#define PL_regnaughty (thr->Tregnaughty)
-#define PL_regnpar (thr->Tregnpar)
-#define PL_regprecomp (thr->Tregprecomp)
-#define PL_regprev (thr->Tregprev)
-#define PL_regprogram (thr->Tregprogram)
-#define PL_regsawback (thr->Tregsawback)
-#define PL_regseen (thr->Tregseen)
-#define PL_regsize (thr->Tregsize)
-#define PL_regstartp (thr->Tregstartp)
-#define PL_regtill (thr->Tregtill)
-#define PL_regxend (thr->Tregxend)
-#define PL_restartop (thr->Trestartop)
-#define PL_retstack (thr->Tretstack)
-#define PL_retstack_ix (thr->Tretstack_ix)
-#define PL_retstack_max (thr->Tretstack_max)
-#define PL_rs (thr->Trs)
-#define PL_savestack (thr->Tsavestack)
-#define PL_savestack_ix (thr->Tsavestack_ix)
-#define PL_savestack_max (thr->Tsavestack_max)
-#define PL_scopestack (thr->Tscopestack)
-#define PL_scopestack_ix (thr->Tscopestack_ix)
-#define PL_scopestack_max (thr->Tscopestack_max)
-#define PL_screamfirst (thr->Tscreamfirst)
-#define PL_screamnext (thr->Tscreamnext)
-#define PL_secondgv (thr->Tsecondgv)
-#define PL_seen_evals (thr->Tseen_evals)
-#define PL_seen_zerolen (thr->Tseen_zerolen)
-#define PL_sortcop (thr->Tsortcop)
-#define PL_sortcxix (thr->Tsortcxix)
-#define PL_sortstash (thr->Tsortstash)
-#define PL_stack_base (thr->Tstack_base)
-#define PL_stack_max (thr->Tstack_max)
-#define PL_stack_sp (thr->Tstack_sp)
-#define PL_start_env (thr->Tstart_env)
-#define PL_statbuf (thr->Tstatbuf)
-#define PL_statcache (thr->Tstatcache)
-#define PL_statgv (thr->Tstatgv)
-#define PL_statname (thr->Tstatname)
-#define PL_tainted (thr->Ttainted)
-#define PL_timesbuf (thr->Ttimesbuf)
-#define PL_tmps_floor (thr->Ttmps_floor)
-#define PL_tmps_ix (thr->Ttmps_ix)
-#define PL_tmps_max (thr->Ttmps_max)
-#define PL_tmps_stack (thr->Ttmps_stack)
-#define PL_top_env (thr->Ttop_env)
-#define PL_toptarget (thr->Ttoptarget)
+#define PL_TSv PL_Sv
+#define PL_TXpv PL_Xpv
+#define PL_Tav_fetch_sv PL_av_fetch_sv
+#define PL_Tbodytarget PL_bodytarget
+#define PL_Tbostr PL_bostr
+#define PL_Tchopset PL_chopset
+#define PL_Tcolors PL_colors
+#define PL_Tcolorset PL_colorset
+#define PL_Tcurcop PL_curcop
+#define PL_Tcurpad PL_curpad
+#define PL_Tcurpm PL_curpm
+#define PL_Tcurstack PL_curstack
+#define PL_Tcurstackinfo PL_curstackinfo
+#define PL_Tcurstash PL_curstash
+#define PL_Tdefoutgv PL_defoutgv
+#define PL_Tdefstash PL_defstash
+#define PL_Tdelaymagic PL_delaymagic
+#define PL_Tdirty PL_dirty
+#define PL_Tdumpindent PL_dumpindent
+#define PL_Tefloatbuf PL_efloatbuf
+#define PL_Tefloatsize PL_efloatsize
+#define PL_Terrors PL_errors
+#define PL_Textralen PL_extralen
+#define PL_Tfirstgv PL_firstgv
+#define PL_Tformtarget PL_formtarget
+#define PL_Thv_fetch_ent_mh PL_hv_fetch_ent_mh
+#define PL_Thv_fetch_sv PL_hv_fetch_sv
+#define PL_Tin_eval PL_in_eval
+#define PL_Tlast_in_gv PL_last_in_gv
+#define PL_Tlastgotoprobe PL_lastgotoprobe
+#define PL_Tlastscream PL_lastscream
+#define PL_Tlocalizing PL_localizing
+#define PL_Tmainstack PL_mainstack
+#define PL_Tmarkstack PL_markstack
+#define PL_Tmarkstack_max PL_markstack_max
+#define PL_Tmarkstack_ptr PL_markstack_ptr
+#define PL_Tmaxscream PL_maxscream
+#define PL_Tmodcount PL_modcount
+#define PL_Tna PL_na
+#define PL_Tnrs PL_nrs
+#define PL_Tofs PL_ofs
+#define PL_Tofslen PL_ofslen
+#define PL_Top PL_op
+#define PL_Topsave PL_opsave
+#define PL_Tprotect PL_protect
+#define PL_Treg_call_cc PL_reg_call_cc
+#define PL_Treg_curpm PL_reg_curpm
+#define PL_Treg_eval_set PL_reg_eval_set
+#define PL_Treg_flags PL_reg_flags
+#define PL_Treg_ganch PL_reg_ganch
+#define PL_Treg_leftiter PL_reg_leftiter
+#define PL_Treg_magic PL_reg_magic
+#define PL_Treg_maxiter PL_reg_maxiter
+#define PL_Treg_oldcurpm PL_reg_oldcurpm
+#define PL_Treg_oldpos PL_reg_oldpos
+#define PL_Treg_oldsaved PL_reg_oldsaved
+#define PL_Treg_oldsavedlen PL_reg_oldsavedlen
+#define PL_Treg_poscache PL_reg_poscache
+#define PL_Treg_poscache_size PL_reg_poscache_size
+#define PL_Treg_re PL_reg_re
+#define PL_Treg_start_tmp PL_reg_start_tmp
+#define PL_Treg_start_tmpl PL_reg_start_tmpl
+#define PL_Treg_starttry PL_reg_starttry
+#define PL_Treg_sv PL_reg_sv
+#define PL_Treg_whilem_seen PL_reg_whilem_seen
+#define PL_Tregbol PL_regbol
+#define PL_Tregcc PL_regcc
+#define PL_Tregcode PL_regcode
+#define PL_Tregcomp_parse PL_regcomp_parse
+#define PL_Tregcomp_rx PL_regcomp_rx
+#define PL_Tregcompp PL_regcompp
+#define PL_Tregdata PL_regdata
+#define PL_Tregdummy PL_regdummy
+#define PL_Tregendp PL_regendp
+#define PL_Tregeol PL_regeol
+#define PL_Tregexecp PL_regexecp
+#define PL_Tregflags PL_regflags
+#define PL_Tregfree PL_regfree
+#define PL_Tregindent PL_regindent
+#define PL_Treginput PL_reginput
+#define PL_Tregint_start PL_regint_start
+#define PL_Tregint_string PL_regint_string
+#define PL_Treginterp_cnt PL_reginterp_cnt
+#define PL_Treglastparen PL_reglastparen
+#define PL_Tregnarrate PL_regnarrate
+#define PL_Tregnaughty PL_regnaughty
+#define PL_Tregnpar PL_regnpar
+#define PL_Tregprecomp PL_regprecomp
+#define PL_Tregprev PL_regprev
+#define PL_Tregprogram PL_regprogram
+#define PL_Tregsawback PL_regsawback
+#define PL_Tregseen PL_regseen
+#define PL_Tregsize PL_regsize
+#define PL_Tregstartp PL_regstartp
+#define PL_Tregtill PL_regtill
+#define PL_Tregxend PL_regxend
+#define PL_Trestartop PL_restartop
+#define PL_Tretstack PL_retstack
+#define PL_Tretstack_ix PL_retstack_ix
+#define PL_Tretstack_max PL_retstack_max
+#define PL_Trs PL_rs
+#define PL_Tsavestack PL_savestack
+#define PL_Tsavestack_ix PL_savestack_ix
+#define PL_Tsavestack_max PL_savestack_max
+#define PL_Tscopestack PL_scopestack
+#define PL_Tscopestack_ix PL_scopestack_ix
+#define PL_Tscopestack_max PL_scopestack_max
+#define PL_Tscreamfirst PL_screamfirst
+#define PL_Tscreamnext PL_screamnext
+#define PL_Tsecondgv PL_secondgv
+#define PL_Tseen_evals PL_seen_evals
+#define PL_Tseen_zerolen PL_seen_zerolen
+#define PL_Tsortcop PL_sortcop
+#define PL_Tsortcxix PL_sortcxix
+#define PL_Tsortstash PL_sortstash
+#define PL_Tstack_base PL_stack_base
+#define PL_Tstack_max PL_stack_max
+#define PL_Tstack_sp PL_stack_sp
+#define PL_Tstart_env PL_start_env
+#define PL_Tstatbuf PL_statbuf
+#define PL_Tstatcache PL_statcache
+#define PL_Tstatgv PL_statgv
+#define PL_Tstatname PL_statname
+#define PL_Ttainted PL_tainted
+#define PL_Ttimesbuf PL_timesbuf
+#define PL_Ttmps_floor PL_tmps_floor
+#define PL_Ttmps_ix PL_tmps_ix
+#define PL_Ttmps_max PL_tmps_max
+#define PL_Ttmps_stack PL_tmps_stack
+#define PL_Ttop_env PL_top_env
+#define PL_Ttoptarget PL_toptarget
+#define PL_Twatchaddr PL_watchaddr
+#define PL_Twatchok PL_watchok
-#endif /* USE_THREADS */
+# endif /* USE_THREADS */
+#endif /* MULTIPLICITY */
-#ifdef PERL_GLOBAL_STRUCT
+#if defined(PERL_GLOBAL_STRUCT)
-#define PL_No (Perl_Vars.GNo)
-#define PL_Yes (Perl_Vars.GYes)
-#define PL_amagic_generation (Perl_Vars.Gamagic_generation)
-#define PL_an (Perl_Vars.Gan)
-#define PL_bufend (Perl_Vars.Gbufend)
-#define PL_bufptr (Perl_Vars.Gbufptr)
-#define PL_collation_ix (Perl_Vars.Gcollation_ix)
-#define PL_collation_name (Perl_Vars.Gcollation_name)
-#define PL_collation_standard (Perl_Vars.Gcollation_standard)
-#define PL_collxfrm_base (Perl_Vars.Gcollxfrm_base)
-#define PL_collxfrm_mult (Perl_Vars.Gcollxfrm_mult)
-#define PL_cop_seqmax (Perl_Vars.Gcop_seqmax)
-#define PL_cryptseen (Perl_Vars.Gcryptseen)
-#define PL_cshlen (Perl_Vars.Gcshlen)
-#define PL_cshname (Perl_Vars.Gcshname)
-#define PL_curinterp (Perl_Vars.Gcurinterp)
-#define PL_curthr (Perl_Vars.Gcurthr)
-#define PL_debug (Perl_Vars.Gdebug)
-#define PL_do_undump (Perl_Vars.Gdo_undump)
-#define PL_egid (Perl_Vars.Gegid)
-#define PL_error_count (Perl_Vars.Gerror_count)
-#define PL_euid (Perl_Vars.Geuid)
-#define PL_eval_cond (Perl_Vars.Geval_cond)
-#define PL_eval_mutex (Perl_Vars.Geval_mutex)
-#define PL_eval_owner (Perl_Vars.Geval_owner)
-#define PL_evalseq (Perl_Vars.Gevalseq)
-#define PL_expect (Perl_Vars.Gexpect)
-#define PL_gid (Perl_Vars.Ggid)
-#define PL_he_root (Perl_Vars.Ghe_root)
-#define PL_hexdigit (Perl_Vars.Ghexdigit)
-#define PL_hints (Perl_Vars.Ghints)
-#define PL_in_my (Perl_Vars.Gin_my)
-#define PL_in_my_stash (Perl_Vars.Gin_my_stash)
-#define PL_last_lop (Perl_Vars.Glast_lop)
-#define PL_last_lop_op (Perl_Vars.Glast_lop_op)
-#define PL_last_uni (Perl_Vars.Glast_uni)
-#define PL_lex_brackets (Perl_Vars.Glex_brackets)
-#define PL_lex_brackstack (Perl_Vars.Glex_brackstack)
-#define PL_lex_casemods (Perl_Vars.Glex_casemods)
-#define PL_lex_casestack (Perl_Vars.Glex_casestack)
-#define PL_lex_defer (Perl_Vars.Glex_defer)
-#define PL_lex_dojoin (Perl_Vars.Glex_dojoin)
-#define PL_lex_expect (Perl_Vars.Glex_expect)
-#define PL_lex_fakebrack (Perl_Vars.Glex_fakebrack)
-#define PL_lex_formbrack (Perl_Vars.Glex_formbrack)
-#define PL_lex_inpat (Perl_Vars.Glex_inpat)
-#define PL_lex_inwhat (Perl_Vars.Glex_inwhat)
-#define PL_lex_op (Perl_Vars.Glex_op)
-#define PL_lex_repl (Perl_Vars.Glex_repl)
-#define PL_lex_starts (Perl_Vars.Glex_starts)
-#define PL_lex_state (Perl_Vars.Glex_state)
-#define PL_lex_stuff (Perl_Vars.Glex_stuff)
-#define PL_linestr (Perl_Vars.Glinestr)
-#define PL_malloc_mutex (Perl_Vars.Gmalloc_mutex)
-#define PL_max_intro_pending (Perl_Vars.Gmax_intro_pending)
-#define PL_maxo (Perl_Vars.Gmaxo)
-#define PL_min_intro_pending (Perl_Vars.Gmin_intro_pending)
-#define PL_multi_close (Perl_Vars.Gmulti_close)
-#define PL_multi_end (Perl_Vars.Gmulti_end)
-#define PL_multi_open (Perl_Vars.Gmulti_open)
-#define PL_multi_start (Perl_Vars.Gmulti_start)
-#define PL_na (Perl_Vars.Gna)
-#define PL_nexttoke (Perl_Vars.Gnexttoke)
-#define PL_nexttype (Perl_Vars.Gnexttype)
-#define PL_nextval (Perl_Vars.Gnextval)
-#define PL_nice_chunk (Perl_Vars.Gnice_chunk)
-#define PL_nice_chunk_size (Perl_Vars.Gnice_chunk_size)
-#define PL_ninterps (Perl_Vars.Gninterps)
-#define PL_nomemok (Perl_Vars.Gnomemok)
-#define PL_nthreads (Perl_Vars.Gnthreads)
-#define PL_nthreads_cond (Perl_Vars.Gnthreads_cond)
-#define PL_numeric_local (Perl_Vars.Gnumeric_local)
-#define PL_numeric_name (Perl_Vars.Gnumeric_name)
-#define PL_numeric_standard (Perl_Vars.Gnumeric_standard)
-#define PL_oldbufptr (Perl_Vars.Goldbufptr)
-#define PL_oldoldbufptr (Perl_Vars.Goldoldbufptr)
-#define PL_op_seqmax (Perl_Vars.Gop_seqmax)
-#define PL_origalen (Perl_Vars.Gorigalen)
-#define PL_origenviron (Perl_Vars.Gorigenviron)
-#define PL_osname (Perl_Vars.Gosname)
-#define PL_pad_reset_pending (Perl_Vars.Gpad_reset_pending)
-#define PL_padix (Perl_Vars.Gpadix)
-#define PL_padix_floor (Perl_Vars.Gpadix_floor)
-#define PL_patleave (Perl_Vars.Gpatleave)
-#define PL_pidstatus (Perl_Vars.Gpidstatus)
-#define PL_runops (Perl_Vars.Grunops)
-#define PL_sh_path (Perl_Vars.Gsh_path)
-#define PL_sighandlerp (Perl_Vars.Gsighandlerp)
-#define PL_specialsv_list (Perl_Vars.Gspecialsv_list)
-#define PL_subline (Perl_Vars.Gsubline)
-#define PL_subname (Perl_Vars.Gsubname)
-#define PL_sv_mutex (Perl_Vars.Gsv_mutex)
-#define PL_sv_no (Perl_Vars.Gsv_no)
-#define PL_sv_undef (Perl_Vars.Gsv_undef)
-#define PL_sv_yes (Perl_Vars.Gsv_yes)
-#define PL_svref_mutex (Perl_Vars.Gsvref_mutex)
-#define PL_thisexpr (Perl_Vars.Gthisexpr)
-#define PL_thr_key (Perl_Vars.Gthr_key)
-#define PL_threads_mutex (Perl_Vars.Gthreads_mutex)
-#define PL_threadsv_names (Perl_Vars.Gthreadsv_names)
-#define PL_tokenbuf (Perl_Vars.Gtokenbuf)
-#define PL_uid (Perl_Vars.Guid)
-#define PL_xiv_arenaroot (Perl_Vars.Gxiv_arenaroot)
-#define PL_xiv_root (Perl_Vars.Gxiv_root)
-#define PL_xnv_root (Perl_Vars.Gxnv_root)
-#define PL_xpv_root (Perl_Vars.Gxpv_root)
-#define PL_xrv_root (Perl_Vars.Gxrv_root)
+#define PL_No (PL_Vars.GNo)
+#define PL_Yes (PL_Vars.GYes)
+#define PL_curinterp (PL_Vars.Gcurinterp)
+#define PL_do_undump (PL_Vars.Gdo_undump)
+#define PL_hexdigit (PL_Vars.Ghexdigit)
+#define PL_malloc_mutex (PL_Vars.Gmalloc_mutex)
+#define PL_patleave (PL_Vars.Gpatleave)
#else /* !PERL_GLOBAL_STRUCT */
-#define GNo PL_No
-#define GYes PL_Yes
-#define Gamagic_generation PL_amagic_generation
-#define Gan PL_an
-#define Gbufend PL_bufend
-#define Gbufptr PL_bufptr
-#define Gcollation_ix PL_collation_ix
-#define Gcollation_name PL_collation_name
-#define Gcollation_standard PL_collation_standard
-#define Gcollxfrm_base PL_collxfrm_base
-#define Gcollxfrm_mult PL_collxfrm_mult
-#define Gcop_seqmax PL_cop_seqmax
-#define Gcryptseen PL_cryptseen
-#define Gcshlen PL_cshlen
-#define Gcshname PL_cshname
-#define Gcurinterp PL_curinterp
-#define Gcurthr PL_curthr
-#define Gdebug PL_debug
-#define Gdo_undump PL_do_undump
-#define Gegid PL_egid
-#define Gerror_count PL_error_count
-#define Geuid PL_euid
-#define Geval_cond PL_eval_cond
-#define Geval_mutex PL_eval_mutex
-#define Geval_owner PL_eval_owner
-#define Gevalseq PL_evalseq
-#define Gexpect PL_expect
-#define Ggid PL_gid
-#define Ghe_root PL_he_root
-#define Ghexdigit PL_hexdigit
-#define Ghints PL_hints
-#define Gin_my PL_in_my
-#define Gin_my_stash PL_in_my_stash
-#define Glast_lop PL_last_lop
-#define Glast_lop_op PL_last_lop_op
-#define Glast_uni PL_last_uni
-#define Glex_brackets PL_lex_brackets
-#define Glex_brackstack PL_lex_brackstack
-#define Glex_casemods PL_lex_casemods
-#define Glex_casestack PL_lex_casestack
-#define Glex_defer PL_lex_defer
-#define Glex_dojoin PL_lex_dojoin
-#define Glex_expect PL_lex_expect
-#define Glex_fakebrack PL_lex_fakebrack
-#define Glex_formbrack PL_lex_formbrack
-#define Glex_inpat PL_lex_inpat
-#define Glex_inwhat PL_lex_inwhat
-#define Glex_op PL_lex_op
-#define Glex_repl PL_lex_repl
-#define Glex_starts PL_lex_starts
-#define Glex_state PL_lex_state
-#define Glex_stuff PL_lex_stuff
-#define Glinestr PL_linestr
-#define Gmalloc_mutex PL_malloc_mutex
-#define Gmax_intro_pending PL_max_intro_pending
-#define Gmaxo PL_maxo
-#define Gmin_intro_pending PL_min_intro_pending
-#define Gmulti_close PL_multi_close
-#define Gmulti_end PL_multi_end
-#define Gmulti_open PL_multi_open
-#define Gmulti_start PL_multi_start
-#define Gna PL_na
-#define Gnexttoke PL_nexttoke
-#define Gnexttype PL_nexttype
-#define Gnextval PL_nextval
-#define Gnice_chunk PL_nice_chunk
-#define Gnice_chunk_size PL_nice_chunk_size
-#define Gninterps PL_ninterps
-#define Gnomemok PL_nomemok
-#define Gnthreads PL_nthreads
-#define Gnthreads_cond PL_nthreads_cond
-#define Gnumeric_local PL_numeric_local
-#define Gnumeric_name PL_numeric_name
-#define Gnumeric_standard PL_numeric_standard
-#define Goldbufptr PL_oldbufptr
-#define Goldoldbufptr PL_oldoldbufptr
-#define Gop_seqmax PL_op_seqmax
-#define Gorigalen PL_origalen
-#define Gorigenviron PL_origenviron
-#define Gosname PL_osname
-#define Gpad_reset_pending PL_pad_reset_pending
-#define Gpadix PL_padix
-#define Gpadix_floor PL_padix_floor
-#define Gpatleave PL_patleave
-#define Gpidstatus PL_pidstatus
-#define Grunops PL_runops
-#define Gsh_path PL_sh_path
-#define Gsighandlerp PL_sighandlerp
-#define Gspecialsv_list PL_specialsv_list
-#define Gsubline PL_subline
-#define Gsubname PL_subname
-#define Gsv_mutex PL_sv_mutex
-#define Gsv_no PL_sv_no
-#define Gsv_undef PL_sv_undef
-#define Gsv_yes PL_sv_yes
-#define Gsvref_mutex PL_svref_mutex
-#define Gthisexpr PL_thisexpr
-#define Gthr_key PL_thr_key
-#define Gthreads_mutex PL_threads_mutex
-#define Gthreadsv_names PL_threadsv_names
-#define Gtokenbuf PL_tokenbuf
-#define Guid PL_uid
-#define Gxiv_arenaroot PL_xiv_arenaroot
-#define Gxiv_root PL_xiv_root
-#define Gxnv_root PL_xnv_root
-#define Gxpv_root PL_xpv_root
-#define Gxrv_root PL_xrv_root
+#define PL_GNo PL_No
+#define PL_GYes PL_Yes
+#define PL_Gcurinterp PL_curinterp
+#define PL_Gdo_undump PL_do_undump
+#define PL_Ghexdigit PL_hexdigit
+#define PL_Gmalloc_mutex PL_malloc_mutex
+#define PL_Gpatleave PL_patleave
-#ifdef EMBED
+#endif /* PERL_GLOBAL_STRUCT */
+#ifdef PERL_POLLUTE /* disabled by default in 5.006 */
-#endif /* EMBED */
-#endif /* PERL_GLOBAL_STRUCT */
+#define DBsingle PL_DBsingle
+#define DBsub PL_DBsub
+#define compiling PL_compiling
+#define curcop PL_curcop
+#define curstash PL_curstash
+#define debstash PL_debstash
+#define defgv PL_defgv
+#define diehook PL_diehook
+#define dirty PL_dirty
+#define dowarn PL_dowarn
+#define errgv PL_errgv
+#define na PL_na
+#define no_modify PL_no_modify
+#define perl_destruct_level PL_perl_destruct_level
+#define perldb PL_perldb
+#define rsfp PL_rsfp
+#define rsfp_filters PL_rsfp_filters
+#define stack_base PL_stack_base
+#define stack_sp PL_stack_sp
+#define stdingv PL_stdingv
+#define sv_arenaroot PL_sv_arenaroot
+#define sv_no PL_sv_no
+#define sv_undef PL_sv_undef
+#define sv_yes PL_sv_yes
+#define tainted PL_tainted
+#define tainting PL_tainting
+#endif /* PERL_POLLUTE */