This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Another threaded, perl malloc issue, x2p's Makefile.SH has a
[perl5.git] / embedvar.h
CommitLineData
d4cce5f1
NIS
1/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
2 This file is built by embed.pl from global.sym, intrpvar.h,
3 and thrdvar.h. Any changes made here will be lost!
4*/
5
6/* (Doing namespace management portably in C is really gross.) */
7
8/* EMBED has no run-time penalty, but helps keep the Perl namespace
9 from colliding with that used by other libraries pulled in
10 by extensions or by embedding perl. Allow a cc -DNO_EMBED
11 override, however, to keep binary compatability with previous
12 versions of perl.
13*/
14
15
16/* Put interpreter-specific symbols into a struct? */
17
18#ifdef MULTIPLICITY
19
20#ifndef USE_THREADS
21/* If we do not have threads then per-thread vars are per-interpreter */
22
533c011a
NIS
23#define PL_Sv (PL_curinterp->TSv)
24#define PL_Xpv (PL_curinterp->TXpv)
25#define PL_av_fetch_sv (PL_curinterp->Tav_fetch_sv)
26#define PL_bodytarget (PL_curinterp->Tbodytarget)
27#define PL_bostr (PL_curinterp->Tbostr)
28#define PL_chopset (PL_curinterp->Tchopset)
29#define PL_colors (PL_curinterp->Tcolors)
30#define PL_colorset (PL_curinterp->Tcolorset)
31#define PL_curcop (PL_curinterp->Tcurcop)
32#define PL_curpad (PL_curinterp->Tcurpad)
33#define PL_curpm (PL_curinterp->Tcurpm)
34#define PL_curstack (PL_curinterp->Tcurstack)
35#define PL_curstackinfo (PL_curinterp->Tcurstackinfo)
36#define PL_curstash (PL_curinterp->Tcurstash)
37#define PL_defoutgv (PL_curinterp->Tdefoutgv)
38#define PL_defstash (PL_curinterp->Tdefstash)
39#define PL_delaymagic (PL_curinterp->Tdelaymagic)
40#define PL_dirty (PL_curinterp->Tdirty)
41#define PL_extralen (PL_curinterp->Textralen)
42#define PL_firstgv (PL_curinterp->Tfirstgv)
43#define PL_formtarget (PL_curinterp->Tformtarget)
44#define PL_hv_fetch_ent_mh (PL_curinterp->Thv_fetch_ent_mh)
45#define PL_hv_fetch_sv (PL_curinterp->Thv_fetch_sv)
46#define PL_in_eval (PL_curinterp->Tin_eval)
47#define PL_last_in_gv (PL_curinterp->Tlast_in_gv)
48#define PL_lastgotoprobe (PL_curinterp->Tlastgotoprobe)
49#define PL_lastscream (PL_curinterp->Tlastscream)
50#define PL_localizing (PL_curinterp->Tlocalizing)
51#define PL_mainstack (PL_curinterp->Tmainstack)
52#define PL_markstack (PL_curinterp->Tmarkstack)
53#define PL_markstack_max (PL_curinterp->Tmarkstack_max)
54#define PL_markstack_ptr (PL_curinterp->Tmarkstack_ptr)
55#define PL_maxscream (PL_curinterp->Tmaxscream)
56#define PL_modcount (PL_curinterp->Tmodcount)
57#define PL_nrs (PL_curinterp->Tnrs)
58#define PL_ofs (PL_curinterp->Tofs)
59#define PL_ofslen (PL_curinterp->Tofslen)
60#define PL_op (PL_curinterp->Top)
61#define PL_opsave (PL_curinterp->Topsave)
62#define PL_reg_eval_set (PL_curinterp->Treg_eval_set)
63#define PL_reg_flags (PL_curinterp->Treg_flags)
64#define PL_reg_start_tmp (PL_curinterp->Treg_start_tmp)
65#define PL_reg_start_tmpl (PL_curinterp->Treg_start_tmpl)
66#define PL_regbol (PL_curinterp->Tregbol)
67#define PL_regcc (PL_curinterp->Tregcc)
68#define PL_regcode (PL_curinterp->Tregcode)
69#define PL_regcomp_parse (PL_curinterp->Tregcomp_parse)
70#define PL_regcomp_rx (PL_curinterp->Tregcomp_rx)
71#define PL_regcompp (PL_curinterp->Tregcompp)
72#define PL_regdata (PL_curinterp->Tregdata)
73#define PL_regdummy (PL_curinterp->Tregdummy)
74#define PL_regendp (PL_curinterp->Tregendp)
75#define PL_regeol (PL_curinterp->Tregeol)
76#define PL_regexecp (PL_curinterp->Tregexecp)
77#define PL_regflags (PL_curinterp->Tregflags)
78#define PL_regindent (PL_curinterp->Tregindent)
79#define PL_reginput (PL_curinterp->Treginput)
80#define PL_reginterp_cnt (PL_curinterp->Treginterp_cnt)
81#define PL_reglastparen (PL_curinterp->Treglastparen)
82#define PL_regnarrate (PL_curinterp->Tregnarrate)
83#define PL_regnaughty (PL_curinterp->Tregnaughty)
84#define PL_regnpar (PL_curinterp->Tregnpar)
85#define PL_regprecomp (PL_curinterp->Tregprecomp)
86#define PL_regprev (PL_curinterp->Tregprev)
87#define PL_regprogram (PL_curinterp->Tregprogram)
88#define PL_regsawback (PL_curinterp->Tregsawback)
89#define PL_regseen (PL_curinterp->Tregseen)
90#define PL_regsize (PL_curinterp->Tregsize)
91#define PL_regstartp (PL_curinterp->Tregstartp)
92#define PL_regtill (PL_curinterp->Tregtill)
93#define PL_regxend (PL_curinterp->Tregxend)
94#define PL_restartop (PL_curinterp->Trestartop)
95#define PL_retstack (PL_curinterp->Tretstack)
96#define PL_retstack_ix (PL_curinterp->Tretstack_ix)
97#define PL_retstack_max (PL_curinterp->Tretstack_max)
98#define PL_rs (PL_curinterp->Trs)
99#define PL_savestack (PL_curinterp->Tsavestack)
100#define PL_savestack_ix (PL_curinterp->Tsavestack_ix)
101#define PL_savestack_max (PL_curinterp->Tsavestack_max)
102#define PL_scopestack (PL_curinterp->Tscopestack)
103#define PL_scopestack_ix (PL_curinterp->Tscopestack_ix)
104#define PL_scopestack_max (PL_curinterp->Tscopestack_max)
105#define PL_screamfirst (PL_curinterp->Tscreamfirst)
106#define PL_screamnext (PL_curinterp->Tscreamnext)
107#define PL_secondgv (PL_curinterp->Tsecondgv)
108#define PL_seen_evals (PL_curinterp->Tseen_evals)
109#define PL_seen_zerolen (PL_curinterp->Tseen_zerolen)
110#define PL_sortcop (PL_curinterp->Tsortcop)
111#define PL_sortcxix (PL_curinterp->Tsortcxix)
112#define PL_sortstash (PL_curinterp->Tsortstash)
113#define PL_stack_base (PL_curinterp->Tstack_base)
114#define PL_stack_max (PL_curinterp->Tstack_max)
115#define PL_stack_sp (PL_curinterp->Tstack_sp)
116#define PL_start_env (PL_curinterp->Tstart_env)
117#define PL_statbuf (PL_curinterp->Tstatbuf)
118#define PL_statcache (PL_curinterp->Tstatcache)
119#define PL_statgv (PL_curinterp->Tstatgv)
120#define PL_statname (PL_curinterp->Tstatname)
121#define PL_tainted (PL_curinterp->Ttainted)
122#define PL_timesbuf (PL_curinterp->Ttimesbuf)
123#define PL_tmps_floor (PL_curinterp->Ttmps_floor)
124#define PL_tmps_ix (PL_curinterp->Ttmps_ix)
125#define PL_tmps_max (PL_curinterp->Ttmps_max)
126#define PL_tmps_stack (PL_curinterp->Ttmps_stack)
127#define PL_top_env (PL_curinterp->Ttop_env)
128#define PL_toptarget (PL_curinterp->Ttoptarget)
d4cce5f1
NIS
129
130#endif /* !USE_THREADS */
131
132/* These are always per-interpreter if there is more than one */
133
533c011a
NIS
134#define PL_Argv (PL_curinterp->IArgv)
135#define PL_Cmd (PL_curinterp->ICmd)
136#define PL_DBcv (PL_curinterp->IDBcv)
137#define PL_DBgv (PL_curinterp->IDBgv)
138#define PL_DBline (PL_curinterp->IDBline)
139#define PL_DBsignal (PL_curinterp->IDBsignal)
140#define PL_DBsingle (PL_curinterp->IDBsingle)
141#define PL_DBsub (PL_curinterp->IDBsub)
142#define PL_DBtrace (PL_curinterp->IDBtrace)
143#define PL_ampergv (PL_curinterp->Iampergv)
144#define PL_archpat_auto (PL_curinterp->Iarchpat_auto)
145#define PL_argvgv (PL_curinterp->Iargvgv)
146#define PL_argvoutgv (PL_curinterp->Iargvoutgv)
147#define PL_basetime (PL_curinterp->Ibasetime)
148#define PL_beginav (PL_curinterp->Ibeginav)
149#define PL_cddir (PL_curinterp->Icddir)
150#define PL_compcv (PL_curinterp->Icompcv)
151#define PL_compiling (PL_curinterp->Icompiling)
152#define PL_comppad (PL_curinterp->Icomppad)
153#define PL_comppad_name (PL_curinterp->Icomppad_name)
154#define PL_comppad_name_fill (PL_curinterp->Icomppad_name_fill)
155#define PL_comppad_name_floor (PL_curinterp->Icomppad_name_floor)
156#define PL_copline (PL_curinterp->Icopline)
157#define PL_curcopdb (PL_curinterp->Icurcopdb)
158#define PL_curstname (PL_curinterp->Icurstname)
159#define PL_dbargs (PL_curinterp->Idbargs)
160#define PL_debdelim (PL_curinterp->Idebdelim)
161#define PL_debname (PL_curinterp->Idebname)
162#define PL_debstash (PL_curinterp->Idebstash)
163#define PL_defgv (PL_curinterp->Idefgv)
164#define PL_diehook (PL_curinterp->Idiehook)
165#define PL_dlevel (PL_curinterp->Idlevel)
166#define PL_dlmax (PL_curinterp->Idlmax)
167#define PL_doextract (PL_curinterp->Idoextract)
168#define PL_doswitches (PL_curinterp->Idoswitches)
169#define PL_dowarn (PL_curinterp->Idowarn)
170#define PL_dumplvl (PL_curinterp->Idumplvl)
171#define PL_e_script (PL_curinterp->Ie_script)
172#define PL_endav (PL_curinterp->Iendav)
173#define PL_envgv (PL_curinterp->Ienvgv)
174#define PL_errgv (PL_curinterp->Ierrgv)
175#define PL_eval_root (PL_curinterp->Ieval_root)
176#define PL_eval_start (PL_curinterp->Ieval_start)
177#define PL_exitlist (PL_curinterp->Iexitlist)
178#define PL_exitlistlen (PL_curinterp->Iexitlistlen)
179#define PL_fdpid (PL_curinterp->Ifdpid)
180#define PL_filemode (PL_curinterp->Ifilemode)
181#define PL_forkprocess (PL_curinterp->Iforkprocess)
182#define PL_formfeed (PL_curinterp->Iformfeed)
183#define PL_generation (PL_curinterp->Igeneration)
184#define PL_gensym (PL_curinterp->Igensym)
185#define PL_globalstash (PL_curinterp->Iglobalstash)
186#define PL_hintgv (PL_curinterp->Ihintgv)
187#define PL_in_clean_all (PL_curinterp->Iin_clean_all)
188#define PL_in_clean_objs (PL_curinterp->Iin_clean_objs)
189#define PL_incgv (PL_curinterp->Iincgv)
190#define PL_initav (PL_curinterp->Iinitav)
191#define PL_inplace (PL_curinterp->Iinplace)
192#define PL_last_proto (PL_curinterp->Ilast_proto)
193#define PL_lastfd (PL_curinterp->Ilastfd)
194#define PL_lastsize (PL_curinterp->Ilastsize)
195#define PL_lastspbase (PL_curinterp->Ilastspbase)
196#define PL_laststatval (PL_curinterp->Ilaststatval)
197#define PL_laststype (PL_curinterp->Ilaststype)
198#define PL_leftgv (PL_curinterp->Ileftgv)
199#define PL_lineary (PL_curinterp->Ilineary)
200#define PL_linestart (PL_curinterp->Ilinestart)
201#define PL_localpatches (PL_curinterp->Ilocalpatches)
202#define PL_main_cv (PL_curinterp->Imain_cv)
203#define PL_main_root (PL_curinterp->Imain_root)
204#define PL_main_start (PL_curinterp->Imain_start)
205#define PL_maxsysfd (PL_curinterp->Imaxsysfd)
206#define PL_mess_sv (PL_curinterp->Imess_sv)
207#define PL_minus_F (PL_curinterp->Iminus_F)
208#define PL_minus_a (PL_curinterp->Iminus_a)
209#define PL_minus_c (PL_curinterp->Iminus_c)
210#define PL_minus_l (PL_curinterp->Iminus_l)
211#define PL_minus_n (PL_curinterp->Iminus_n)
212#define PL_minus_p (PL_curinterp->Iminus_p)
213#define PL_modglobal (PL_curinterp->Imodglobal)
214#define PL_multiline (PL_curinterp->Imultiline)
215#define PL_mystrk (PL_curinterp->Imystrk)
216#define PL_ofmt (PL_curinterp->Iofmt)
217#define PL_oldlastpm (PL_curinterp->Ioldlastpm)
218#define PL_oldname (PL_curinterp->Ioldname)
219#define PL_op_mask (PL_curinterp->Iop_mask)
220#define PL_origargc (PL_curinterp->Iorigargc)
221#define PL_origargv (PL_curinterp->Iorigargv)
222#define PL_origfilename (PL_curinterp->Iorigfilename)
223#define PL_ors (PL_curinterp->Iors)
224#define PL_orslen (PL_curinterp->Iorslen)
225#define PL_parsehook (PL_curinterp->Iparsehook)
226#define PL_patchlevel (PL_curinterp->Ipatchlevel)
227#define PL_pending_ident (PL_curinterp->Ipending_ident)
228#define PL_perl_destruct_level (PL_curinterp->Iperl_destruct_level)
229#define PL_perldb (PL_curinterp->Iperldb)
230#define PL_preambleav (PL_curinterp->Ipreambleav)
231#define PL_preambled (PL_curinterp->Ipreambled)
232#define PL_preprocess (PL_curinterp->Ipreprocess)
233#define PL_profiledata (PL_curinterp->Iprofiledata)
234#define PL_replgv (PL_curinterp->Ireplgv)
235#define PL_rightgv (PL_curinterp->Irightgv)
236#define PL_rsfp (PL_curinterp->Irsfp)
237#define PL_rsfp_filters (PL_curinterp->Irsfp_filters)
238#define PL_sawampersand (PL_curinterp->Isawampersand)
239#define PL_sawstudy (PL_curinterp->Isawstudy)
240#define PL_sawvec (PL_curinterp->Isawvec)
241#define PL_siggv (PL_curinterp->Isiggv)
242#define PL_splitstr (PL_curinterp->Isplitstr)
243#define PL_statusvalue (PL_curinterp->Istatusvalue)
244#define PL_statusvalue_vms (PL_curinterp->Istatusvalue_vms)
245#define PL_stdingv (PL_curinterp->Istdingv)
246#define PL_strchop (PL_curinterp->Istrchop)
247#define PL_strtab (PL_curinterp->Istrtab)
248#define PL_sub_generation (PL_curinterp->Isub_generation)
249#define PL_sublex_info (PL_curinterp->Isublex_info)
250#define PL_sv_arenaroot (PL_curinterp->Isv_arenaroot)
251#define PL_sv_count (PL_curinterp->Isv_count)
252#define PL_sv_objcount (PL_curinterp->Isv_objcount)
253#define PL_sv_root (PL_curinterp->Isv_root)
254#define PL_sys_intern (PL_curinterp->Isys_intern)
255#define PL_tainting (PL_curinterp->Itainting)
256#define PL_threadnum (PL_curinterp->Ithreadnum)
257#define PL_thrsv (PL_curinterp->Ithrsv)
258#define PL_unsafe (PL_curinterp->Iunsafe)
259#define PL_warnhook (PL_curinterp->Iwarnhook)
d4cce5f1
NIS
260
261#else /* !MULTIPLICITY */
262
533c011a
NIS
263#define PL_IArgv PL_Argv
264#define PL_ICmd PL_Cmd
265#define PL_IDBcv PL_DBcv
266#define PL_IDBgv PL_DBgv
267#define PL_IDBline PL_DBline
268#define PL_IDBsignal PL_DBsignal
269#define PL_IDBsingle PL_DBsingle
270#define PL_IDBsub PL_DBsub
271#define PL_IDBtrace PL_DBtrace
272#define PL_Iampergv PL_ampergv
273#define PL_Iarchpat_auto PL_archpat_auto
274#define PL_Iargvgv PL_argvgv
275#define PL_Iargvoutgv PL_argvoutgv
276#define PL_Ibasetime PL_basetime
277#define PL_Ibeginav PL_beginav
278#define PL_Icddir PL_cddir
279#define PL_Icompcv PL_compcv
280#define PL_Icompiling PL_compiling
281#define PL_Icomppad PL_comppad
282#define PL_Icomppad_name PL_comppad_name
283#define PL_Icomppad_name_fill PL_comppad_name_fill
284#define PL_Icomppad_name_floor PL_comppad_name_floor
285#define PL_Icopline PL_copline
286#define PL_Icurcopdb PL_curcopdb
287#define PL_Icurstname PL_curstname
288#define PL_Idbargs PL_dbargs
289#define PL_Idebdelim PL_debdelim
290#define PL_Idebname PL_debname
291#define PL_Idebstash PL_debstash
292#define PL_Idefgv PL_defgv
293#define PL_Idiehook PL_diehook
294#define PL_Idlevel PL_dlevel
295#define PL_Idlmax PL_dlmax
296#define PL_Idoextract PL_doextract
297#define PL_Idoswitches PL_doswitches
298#define PL_Idowarn PL_dowarn
299#define PL_Idumplvl PL_dumplvl
300#define PL_Ie_script PL_e_script
301#define PL_Iendav PL_endav
302#define PL_Ienvgv PL_envgv
303#define PL_Ierrgv PL_errgv
304#define PL_Ieval_root PL_eval_root
305#define PL_Ieval_start PL_eval_start
306#define PL_Iexitlist PL_exitlist
307#define PL_Iexitlistlen PL_exitlistlen
308#define PL_Ifdpid PL_fdpid
309#define PL_Ifilemode PL_filemode
310#define PL_Iforkprocess PL_forkprocess
311#define PL_Iformfeed PL_formfeed
312#define PL_Igeneration PL_generation
313#define PL_Igensym PL_gensym
314#define PL_Iglobalstash PL_globalstash
315#define PL_Ihintgv PL_hintgv
316#define PL_Iin_clean_all PL_in_clean_all
317#define PL_Iin_clean_objs PL_in_clean_objs
318#define PL_Iincgv PL_incgv
319#define PL_Iinitav PL_initav
320#define PL_Iinplace PL_inplace
321#define PL_Ilast_proto PL_last_proto
322#define PL_Ilastfd PL_lastfd
323#define PL_Ilastsize PL_lastsize
324#define PL_Ilastspbase PL_lastspbase
325#define PL_Ilaststatval PL_laststatval
326#define PL_Ilaststype PL_laststype
327#define PL_Ileftgv PL_leftgv
328#define PL_Ilineary PL_lineary
329#define PL_Ilinestart PL_linestart
330#define PL_Ilocalpatches PL_localpatches
331#define PL_Imain_cv PL_main_cv
332#define PL_Imain_root PL_main_root
333#define PL_Imain_start PL_main_start
334#define PL_Imaxsysfd PL_maxsysfd
335#define PL_Imess_sv PL_mess_sv
336#define PL_Iminus_F PL_minus_F
337#define PL_Iminus_a PL_minus_a
338#define PL_Iminus_c PL_minus_c
339#define PL_Iminus_l PL_minus_l
340#define PL_Iminus_n PL_minus_n
341#define PL_Iminus_p PL_minus_p
342#define PL_Imodglobal PL_modglobal
343#define PL_Imultiline PL_multiline
344#define PL_Imystrk PL_mystrk
345#define PL_Iofmt PL_ofmt
346#define PL_Ioldlastpm PL_oldlastpm
347#define PL_Ioldname PL_oldname
348#define PL_Iop_mask PL_op_mask
349#define PL_Iorigargc PL_origargc
350#define PL_Iorigargv PL_origargv
351#define PL_Iorigfilename PL_origfilename
352#define PL_Iors PL_ors
353#define PL_Iorslen PL_orslen
354#define PL_Iparsehook PL_parsehook
355#define PL_Ipatchlevel PL_patchlevel
356#define PL_Ipending_ident PL_pending_ident
357#define PL_Iperl_destruct_level PL_perl_destruct_level
358#define PL_Iperldb PL_perldb
359#define PL_Ipreambleav PL_preambleav
360#define PL_Ipreambled PL_preambled
361#define PL_Ipreprocess PL_preprocess
362#define PL_Iprofiledata PL_profiledata
363#define PL_Ireplgv PL_replgv
364#define PL_Irightgv PL_rightgv
365#define PL_Irsfp PL_rsfp
366#define PL_Irsfp_filters PL_rsfp_filters
367#define PL_Isawampersand PL_sawampersand
368#define PL_Isawstudy PL_sawstudy
369#define PL_Isawvec PL_sawvec
370#define PL_Isiggv PL_siggv
371#define PL_Isplitstr PL_splitstr
372#define PL_Istatusvalue PL_statusvalue
373#define PL_Istatusvalue_vms PL_statusvalue_vms
374#define PL_Istdingv PL_stdingv
375#define PL_Istrchop PL_strchop
376#define PL_Istrtab PL_strtab
377#define PL_Isub_generation PL_sub_generation
378#define PL_Isublex_info PL_sublex_info
379#define PL_Isv_arenaroot PL_sv_arenaroot
380#define PL_Isv_count PL_sv_count
381#define PL_Isv_objcount PL_sv_objcount
382#define PL_Isv_root PL_sv_root
383#define PL_Isys_intern PL_sys_intern
384#define PL_Itainting PL_tainting
385#define PL_Ithreadnum PL_threadnum
386#define PL_Ithrsv PL_thrsv
387#define PL_Iunsafe PL_unsafe
388#define PL_Iwarnhook PL_warnhook
d4cce5f1
NIS
389
390#ifndef USE_THREADS
391
533c011a
NIS
392#define PL_TSv PL_Sv
393#define PL_TXpv PL_Xpv
394#define PL_Tav_fetch_sv PL_av_fetch_sv
395#define PL_Tbodytarget PL_bodytarget
396#define PL_Tbostr PL_bostr
397#define PL_Tchopset PL_chopset
398#define PL_Tcolors PL_colors
399#define PL_Tcolorset PL_colorset
400#define PL_Tcurcop PL_curcop
401#define PL_Tcurpad PL_curpad
402#define PL_Tcurpm PL_curpm
403#define PL_Tcurstack PL_curstack
404#define PL_Tcurstackinfo PL_curstackinfo
405#define PL_Tcurstash PL_curstash
406#define PL_Tdefoutgv PL_defoutgv
407#define PL_Tdefstash PL_defstash
408#define PL_Tdelaymagic PL_delaymagic
409#define PL_Tdirty PL_dirty
410#define PL_Textralen PL_extralen
411#define PL_Tfirstgv PL_firstgv
412#define PL_Tformtarget PL_formtarget
413#define PL_Thv_fetch_ent_mh PL_hv_fetch_ent_mh
414#define PL_Thv_fetch_sv PL_hv_fetch_sv
415#define PL_Tin_eval PL_in_eval
416#define PL_Tlast_in_gv PL_last_in_gv
417#define PL_Tlastgotoprobe PL_lastgotoprobe
418#define PL_Tlastscream PL_lastscream
419#define PL_Tlocalizing PL_localizing
420#define PL_Tmainstack PL_mainstack
421#define PL_Tmarkstack PL_markstack
422#define PL_Tmarkstack_max PL_markstack_max
423#define PL_Tmarkstack_ptr PL_markstack_ptr
424#define PL_Tmaxscream PL_maxscream
425#define PL_Tmodcount PL_modcount
426#define PL_Tnrs PL_nrs
427#define PL_Tofs PL_ofs
428#define PL_Tofslen PL_ofslen
429#define PL_Top PL_op
430#define PL_Topsave PL_opsave
431#define PL_Treg_eval_set PL_reg_eval_set
432#define PL_Treg_flags PL_reg_flags
433#define PL_Treg_start_tmp PL_reg_start_tmp
434#define PL_Treg_start_tmpl PL_reg_start_tmpl
435#define PL_Tregbol PL_regbol
436#define PL_Tregcc PL_regcc
437#define PL_Tregcode PL_regcode
438#define PL_Tregcomp_parse PL_regcomp_parse
439#define PL_Tregcomp_rx PL_regcomp_rx
440#define PL_Tregcompp PL_regcompp
441#define PL_Tregdata PL_regdata
442#define PL_Tregdummy PL_regdummy
443#define PL_Tregendp PL_regendp
444#define PL_Tregeol PL_regeol
445#define PL_Tregexecp PL_regexecp
446#define PL_Tregflags PL_regflags
447#define PL_Tregindent PL_regindent
448#define PL_Treginput PL_reginput
449#define PL_Treginterp_cnt PL_reginterp_cnt
450#define PL_Treglastparen PL_reglastparen
451#define PL_Tregnarrate PL_regnarrate
452#define PL_Tregnaughty PL_regnaughty
453#define PL_Tregnpar PL_regnpar
454#define PL_Tregprecomp PL_regprecomp
455#define PL_Tregprev PL_regprev
456#define PL_Tregprogram PL_regprogram
457#define PL_Tregsawback PL_regsawback
458#define PL_Tregseen PL_regseen
459#define PL_Tregsize PL_regsize
460#define PL_Tregstartp PL_regstartp
461#define PL_Tregtill PL_regtill
462#define PL_Tregxend PL_regxend
463#define PL_Trestartop PL_restartop
464#define PL_Tretstack PL_retstack
465#define PL_Tretstack_ix PL_retstack_ix
466#define PL_Tretstack_max PL_retstack_max
467#define PL_Trs PL_rs
468#define PL_Tsavestack PL_savestack
469#define PL_Tsavestack_ix PL_savestack_ix
470#define PL_Tsavestack_max PL_savestack_max
471#define PL_Tscopestack PL_scopestack
472#define PL_Tscopestack_ix PL_scopestack_ix
473#define PL_Tscopestack_max PL_scopestack_max
474#define PL_Tscreamfirst PL_screamfirst
475#define PL_Tscreamnext PL_screamnext
476#define PL_Tsecondgv PL_secondgv
477#define PL_Tseen_evals PL_seen_evals
478#define PL_Tseen_zerolen PL_seen_zerolen
479#define PL_Tsortcop PL_sortcop
480#define PL_Tsortcxix PL_sortcxix
481#define PL_Tsortstash PL_sortstash
482#define PL_Tstack_base PL_stack_base
483#define PL_Tstack_max PL_stack_max
484#define PL_Tstack_sp PL_stack_sp
485#define PL_Tstart_env PL_start_env
486#define PL_Tstatbuf PL_statbuf
487#define PL_Tstatcache PL_statcache
488#define PL_Tstatgv PL_statgv
489#define PL_Tstatname PL_statname
490#define PL_Ttainted PL_tainted
491#define PL_Ttimesbuf PL_timesbuf
492#define PL_Ttmps_floor PL_tmps_floor
493#define PL_Ttmps_ix PL_tmps_ix
494#define PL_Ttmps_max PL_tmps_max
495#define PL_Ttmps_stack PL_tmps_stack
496#define PL_Ttop_env PL_top_env
497#define PL_Ttoptarget PL_toptarget
d4cce5f1
NIS
498
499#endif /* USE_THREADS */
500
501/* Hide what would have been interpreter-specific symbols? */
502
503#ifdef EMBED
504
d4cce5f1
NIS
505
506#ifndef USE_THREADS
507
d4cce5f1
NIS
508
509#endif /* USE_THREADS */
510#endif /* EMBED */
511#endif /* MULTIPLICITY */
512
513/* Now same trickey for per-thread variables */
514
515#ifdef USE_THREADS
516
3280af22
NIS
517#define PL_Sv (thr->TSv)
518#define PL_Xpv (thr->TXpv)
519#define PL_av_fetch_sv (thr->Tav_fetch_sv)
520#define PL_bodytarget (thr->Tbodytarget)
521#define PL_bostr (thr->Tbostr)
522#define PL_chopset (thr->Tchopset)
523#define PL_colors (thr->Tcolors)
524#define PL_colorset (thr->Tcolorset)
525#define PL_curcop (thr->Tcurcop)
526#define PL_curpad (thr->Tcurpad)
527#define PL_curpm (thr->Tcurpm)
528#define PL_curstack (thr->Tcurstack)
529#define PL_curstackinfo (thr->Tcurstackinfo)
530#define PL_curstash (thr->Tcurstash)
531#define PL_defoutgv (thr->Tdefoutgv)
532#define PL_defstash (thr->Tdefstash)
533#define PL_delaymagic (thr->Tdelaymagic)
534#define PL_dirty (thr->Tdirty)
535#define PL_extralen (thr->Textralen)
536#define PL_firstgv (thr->Tfirstgv)
537#define PL_formtarget (thr->Tformtarget)
538#define PL_hv_fetch_ent_mh (thr->Thv_fetch_ent_mh)
539#define PL_hv_fetch_sv (thr->Thv_fetch_sv)
540#define PL_in_eval (thr->Tin_eval)
541#define PL_last_in_gv (thr->Tlast_in_gv)
542#define PL_lastgotoprobe (thr->Tlastgotoprobe)
543#define PL_lastscream (thr->Tlastscream)
544#define PL_localizing (thr->Tlocalizing)
545#define PL_mainstack (thr->Tmainstack)
546#define PL_markstack (thr->Tmarkstack)
547#define PL_markstack_max (thr->Tmarkstack_max)
548#define PL_markstack_ptr (thr->Tmarkstack_ptr)
549#define PL_maxscream (thr->Tmaxscream)
550#define PL_modcount (thr->Tmodcount)
551#define PL_nrs (thr->Tnrs)
552#define PL_ofs (thr->Tofs)
553#define PL_ofslen (thr->Tofslen)
554#define PL_op (thr->Top)
555#define PL_opsave (thr->Topsave)
556#define PL_reg_eval_set (thr->Treg_eval_set)
557#define PL_reg_flags (thr->Treg_flags)
558#define PL_reg_start_tmp (thr->Treg_start_tmp)
559#define PL_reg_start_tmpl (thr->Treg_start_tmpl)
560#define PL_regbol (thr->Tregbol)
561#define PL_regcc (thr->Tregcc)
562#define PL_regcode (thr->Tregcode)
563#define PL_regcomp_parse (thr->Tregcomp_parse)
564#define PL_regcomp_rx (thr->Tregcomp_rx)
565#define PL_regcompp (thr->Tregcompp)
566#define PL_regdata (thr->Tregdata)
567#define PL_regdummy (thr->Tregdummy)
568#define PL_regendp (thr->Tregendp)
569#define PL_regeol (thr->Tregeol)
570#define PL_regexecp (thr->Tregexecp)
571#define PL_regflags (thr->Tregflags)
572#define PL_regindent (thr->Tregindent)
573#define PL_reginput (thr->Treginput)
574#define PL_reginterp_cnt (thr->Treginterp_cnt)
575#define PL_reglastparen (thr->Treglastparen)
576#define PL_regnarrate (thr->Tregnarrate)
577#define PL_regnaughty (thr->Tregnaughty)
578#define PL_regnpar (thr->Tregnpar)
579#define PL_regprecomp (thr->Tregprecomp)
580#define PL_regprev (thr->Tregprev)
581#define PL_regprogram (thr->Tregprogram)
582#define PL_regsawback (thr->Tregsawback)
583#define PL_regseen (thr->Tregseen)
584#define PL_regsize (thr->Tregsize)
585#define PL_regstartp (thr->Tregstartp)
586#define PL_regtill (thr->Tregtill)
587#define PL_regxend (thr->Tregxend)
588#define PL_restartop (thr->Trestartop)
589#define PL_retstack (thr->Tretstack)
590#define PL_retstack_ix (thr->Tretstack_ix)
591#define PL_retstack_max (thr->Tretstack_max)
592#define PL_rs (thr->Trs)
593#define PL_savestack (thr->Tsavestack)
594#define PL_savestack_ix (thr->Tsavestack_ix)
595#define PL_savestack_max (thr->Tsavestack_max)
596#define PL_scopestack (thr->Tscopestack)
597#define PL_scopestack_ix (thr->Tscopestack_ix)
598#define PL_scopestack_max (thr->Tscopestack_max)
599#define PL_screamfirst (thr->Tscreamfirst)
600#define PL_screamnext (thr->Tscreamnext)
601#define PL_secondgv (thr->Tsecondgv)
602#define PL_seen_evals (thr->Tseen_evals)
603#define PL_seen_zerolen (thr->Tseen_zerolen)
604#define PL_sortcop (thr->Tsortcop)
605#define PL_sortcxix (thr->Tsortcxix)
606#define PL_sortstash (thr->Tsortstash)
607#define PL_stack_base (thr->Tstack_base)
608#define PL_stack_max (thr->Tstack_max)
609#define PL_stack_sp (thr->Tstack_sp)
610#define PL_start_env (thr->Tstart_env)
611#define PL_statbuf (thr->Tstatbuf)
612#define PL_statcache (thr->Tstatcache)
613#define PL_statgv (thr->Tstatgv)
614#define PL_statname (thr->Tstatname)
615#define PL_tainted (thr->Ttainted)
616#define PL_timesbuf (thr->Ttimesbuf)
617#define PL_tmps_floor (thr->Ttmps_floor)
618#define PL_tmps_ix (thr->Ttmps_ix)
619#define PL_tmps_max (thr->Ttmps_max)
620#define PL_tmps_stack (thr->Ttmps_stack)
621#define PL_top_env (thr->Ttop_env)
622#define PL_toptarget (thr->Ttoptarget)
d4cce5f1
NIS
623
624#endif /* USE_THREADS */
625
22239a37
NIS
626#ifdef PERL_GLOBAL_STRUCT
627
533c011a
NIS
628#define PL_No (PL_Vars.GNo)
629#define PL_Yes (PL_Vars.GYes)
630#define PL_amagic_generation (PL_Vars.Gamagic_generation)
631#define PL_an (PL_Vars.Gan)
632#define PL_bufend (PL_Vars.Gbufend)
633#define PL_bufptr (PL_Vars.Gbufptr)
634#define PL_collation_ix (PL_Vars.Gcollation_ix)
635#define PL_collation_name (PL_Vars.Gcollation_name)
636#define PL_collation_standard (PL_Vars.Gcollation_standard)
637#define PL_collxfrm_base (PL_Vars.Gcollxfrm_base)
638#define PL_collxfrm_mult (PL_Vars.Gcollxfrm_mult)
639#define PL_cop_seqmax (PL_Vars.Gcop_seqmax)
640#define PL_cryptseen (PL_Vars.Gcryptseen)
641#define PL_cshlen (PL_Vars.Gcshlen)
642#define PL_cshname (PL_Vars.Gcshname)
643#define PL_curinterp (PL_Vars.Gcurinterp)
644#define PL_curthr (PL_Vars.Gcurthr)
645#define PL_debug (PL_Vars.Gdebug)
646#define PL_do_undump (PL_Vars.Gdo_undump)
647#define PL_egid (PL_Vars.Gegid)
648#define PL_error_count (PL_Vars.Gerror_count)
649#define PL_euid (PL_Vars.Geuid)
650#define PL_eval_cond (PL_Vars.Geval_cond)
651#define PL_eval_mutex (PL_Vars.Geval_mutex)
652#define PL_eval_owner (PL_Vars.Geval_owner)
653#define PL_evalseq (PL_Vars.Gevalseq)
654#define PL_expect (PL_Vars.Gexpect)
655#define PL_gid (PL_Vars.Ggid)
656#define PL_he_root (PL_Vars.Ghe_root)
657#define PL_hexdigit (PL_Vars.Ghexdigit)
658#define PL_hints (PL_Vars.Ghints)
659#define PL_in_my (PL_Vars.Gin_my)
660#define PL_in_my_stash (PL_Vars.Gin_my_stash)
661#define PL_last_lop (PL_Vars.Glast_lop)
662#define PL_last_lop_op (PL_Vars.Glast_lop_op)
663#define PL_last_uni (PL_Vars.Glast_uni)
664#define PL_lex_brackets (PL_Vars.Glex_brackets)
665#define PL_lex_brackstack (PL_Vars.Glex_brackstack)
666#define PL_lex_casemods (PL_Vars.Glex_casemods)
667#define PL_lex_casestack (PL_Vars.Glex_casestack)
668#define PL_lex_defer (PL_Vars.Glex_defer)
669#define PL_lex_dojoin (PL_Vars.Glex_dojoin)
670#define PL_lex_expect (PL_Vars.Glex_expect)
671#define PL_lex_fakebrack (PL_Vars.Glex_fakebrack)
672#define PL_lex_formbrack (PL_Vars.Glex_formbrack)
673#define PL_lex_inpat (PL_Vars.Glex_inpat)
674#define PL_lex_inwhat (PL_Vars.Glex_inwhat)
675#define PL_lex_op (PL_Vars.Glex_op)
676#define PL_lex_repl (PL_Vars.Glex_repl)
677#define PL_lex_starts (PL_Vars.Glex_starts)
678#define PL_lex_state (PL_Vars.Glex_state)
679#define PL_lex_stuff (PL_Vars.Glex_stuff)
680#define PL_linestr (PL_Vars.Glinestr)
681#define PL_malloc_mutex (PL_Vars.Gmalloc_mutex)
682#define PL_max_intro_pending (PL_Vars.Gmax_intro_pending)
683#define PL_maxo (PL_Vars.Gmaxo)
684#define PL_min_intro_pending (PL_Vars.Gmin_intro_pending)
685#define PL_multi_close (PL_Vars.Gmulti_close)
686#define PL_multi_end (PL_Vars.Gmulti_end)
687#define PL_multi_open (PL_Vars.Gmulti_open)
688#define PL_multi_start (PL_Vars.Gmulti_start)
689#define PL_na (PL_Vars.Gna)
690#define PL_nexttoke (PL_Vars.Gnexttoke)
691#define PL_nexttype (PL_Vars.Gnexttype)
692#define PL_nextval (PL_Vars.Gnextval)
693#define PL_nice_chunk (PL_Vars.Gnice_chunk)
694#define PL_nice_chunk_size (PL_Vars.Gnice_chunk_size)
695#define PL_ninterps (PL_Vars.Gninterps)
696#define PL_nomemok (PL_Vars.Gnomemok)
697#define PL_nthreads (PL_Vars.Gnthreads)
698#define PL_nthreads_cond (PL_Vars.Gnthreads_cond)
699#define PL_numeric_local (PL_Vars.Gnumeric_local)
700#define PL_numeric_name (PL_Vars.Gnumeric_name)
701#define PL_numeric_standard (PL_Vars.Gnumeric_standard)
702#define PL_oldbufptr (PL_Vars.Goldbufptr)
703#define PL_oldoldbufptr (PL_Vars.Goldoldbufptr)
704#define PL_op_seqmax (PL_Vars.Gop_seqmax)
705#define PL_origalen (PL_Vars.Gorigalen)
706#define PL_origenviron (PL_Vars.Gorigenviron)
707#define PL_osname (PL_Vars.Gosname)
708#define PL_pad_reset_pending (PL_Vars.Gpad_reset_pending)
709#define PL_padix (PL_Vars.Gpadix)
710#define PL_padix_floor (PL_Vars.Gpadix_floor)
711#define PL_patleave (PL_Vars.Gpatleave)
712#define PL_pidstatus (PL_Vars.Gpidstatus)
713#define PL_runops (PL_Vars.Grunops)
714#define PL_sh_path (PL_Vars.Gsh_path)
715#define PL_sighandlerp (PL_Vars.Gsighandlerp)
716#define PL_specialsv_list (PL_Vars.Gspecialsv_list)
717#define PL_subline (PL_Vars.Gsubline)
718#define PL_subname (PL_Vars.Gsubname)
719#define PL_sv_mutex (PL_Vars.Gsv_mutex)
720#define PL_sv_no (PL_Vars.Gsv_no)
721#define PL_sv_undef (PL_Vars.Gsv_undef)
722#define PL_sv_yes (PL_Vars.Gsv_yes)
723#define PL_svref_mutex (PL_Vars.Gsvref_mutex)
724#define PL_thisexpr (PL_Vars.Gthisexpr)
725#define PL_thr_key (PL_Vars.Gthr_key)
726#define PL_threads_mutex (PL_Vars.Gthreads_mutex)
727#define PL_threadsv_names (PL_Vars.Gthreadsv_names)
728#define PL_tokenbuf (PL_Vars.Gtokenbuf)
729#define PL_uid (PL_Vars.Guid)
730#define PL_xiv_arenaroot (PL_Vars.Gxiv_arenaroot)
731#define PL_xiv_root (PL_Vars.Gxiv_root)
732#define PL_xnv_root (PL_Vars.Gxnv_root)
733#define PL_xpv_root (PL_Vars.Gxpv_root)
734#define PL_xrv_root (PL_Vars.Gxrv_root)
22239a37
NIS
735
736#else /* !PERL_GLOBAL_STRUCT */
737
533c011a
NIS
738#define PL_GNo PL_No
739#define PL_GYes PL_Yes
740#define PL_Gamagic_generation PL_amagic_generation
741#define PL_Gan PL_an
742#define PL_Gbufend PL_bufend
743#define PL_Gbufptr PL_bufptr
744#define PL_Gcollation_ix PL_collation_ix
745#define PL_Gcollation_name PL_collation_name
746#define PL_Gcollation_standard PL_collation_standard
747#define PL_Gcollxfrm_base PL_collxfrm_base
748#define PL_Gcollxfrm_mult PL_collxfrm_mult
749#define PL_Gcop_seqmax PL_cop_seqmax
750#define PL_Gcryptseen PL_cryptseen
751#define PL_Gcshlen PL_cshlen
752#define PL_Gcshname PL_cshname
753#define PL_Gcurinterp PL_curinterp
754#define PL_Gcurthr PL_curthr
755#define PL_Gdebug PL_debug
756#define PL_Gdo_undump PL_do_undump
757#define PL_Gegid PL_egid
758#define PL_Gerror_count PL_error_count
759#define PL_Geuid PL_euid
760#define PL_Geval_cond PL_eval_cond
761#define PL_Geval_mutex PL_eval_mutex
762#define PL_Geval_owner PL_eval_owner
763#define PL_Gevalseq PL_evalseq
764#define PL_Gexpect PL_expect
765#define PL_Ggid PL_gid
766#define PL_Ghe_root PL_he_root
767#define PL_Ghexdigit PL_hexdigit
768#define PL_Ghints PL_hints
769#define PL_Gin_my PL_in_my
770#define PL_Gin_my_stash PL_in_my_stash
771#define PL_Glast_lop PL_last_lop
772#define PL_Glast_lop_op PL_last_lop_op
773#define PL_Glast_uni PL_last_uni
774#define PL_Glex_brackets PL_lex_brackets
775#define PL_Glex_brackstack PL_lex_brackstack
776#define PL_Glex_casemods PL_lex_casemods
777#define PL_Glex_casestack PL_lex_casestack
778#define PL_Glex_defer PL_lex_defer
779#define PL_Glex_dojoin PL_lex_dojoin
780#define PL_Glex_expect PL_lex_expect
781#define PL_Glex_fakebrack PL_lex_fakebrack
782#define PL_Glex_formbrack PL_lex_formbrack
783#define PL_Glex_inpat PL_lex_inpat
784#define PL_Glex_inwhat PL_lex_inwhat
785#define PL_Glex_op PL_lex_op
786#define PL_Glex_repl PL_lex_repl
787#define PL_Glex_starts PL_lex_starts
788#define PL_Glex_state PL_lex_state
789#define PL_Glex_stuff PL_lex_stuff
790#define PL_Glinestr PL_linestr
791#define PL_Gmalloc_mutex PL_malloc_mutex
792#define PL_Gmax_intro_pending PL_max_intro_pending
793#define PL_Gmaxo PL_maxo
794#define PL_Gmin_intro_pending PL_min_intro_pending
795#define PL_Gmulti_close PL_multi_close
796#define PL_Gmulti_end PL_multi_end
797#define PL_Gmulti_open PL_multi_open
798#define PL_Gmulti_start PL_multi_start
799#define PL_Gna PL_na
800#define PL_Gnexttoke PL_nexttoke
801#define PL_Gnexttype PL_nexttype
802#define PL_Gnextval PL_nextval
803#define PL_Gnice_chunk PL_nice_chunk
804#define PL_Gnice_chunk_size PL_nice_chunk_size
805#define PL_Gninterps PL_ninterps
806#define PL_Gnomemok PL_nomemok
807#define PL_Gnthreads PL_nthreads
808#define PL_Gnthreads_cond PL_nthreads_cond
809#define PL_Gnumeric_local PL_numeric_local
810#define PL_Gnumeric_name PL_numeric_name
811#define PL_Gnumeric_standard PL_numeric_standard
812#define PL_Goldbufptr PL_oldbufptr
813#define PL_Goldoldbufptr PL_oldoldbufptr
814#define PL_Gop_seqmax PL_op_seqmax
815#define PL_Gorigalen PL_origalen
816#define PL_Gorigenviron PL_origenviron
817#define PL_Gosname PL_osname
818#define PL_Gpad_reset_pending PL_pad_reset_pending
819#define PL_Gpadix PL_padix
820#define PL_Gpadix_floor PL_padix_floor
821#define PL_Gpatleave PL_patleave
822#define PL_Gpidstatus PL_pidstatus
823#define PL_Grunops PL_runops
824#define PL_Gsh_path PL_sh_path
825#define PL_Gsighandlerp PL_sighandlerp
826#define PL_Gspecialsv_list PL_specialsv_list
827#define PL_Gsubline PL_subline
828#define PL_Gsubname PL_subname
829#define PL_Gsv_mutex PL_sv_mutex
830#define PL_Gsv_no PL_sv_no
831#define PL_Gsv_undef PL_sv_undef
832#define PL_Gsv_yes PL_sv_yes
833#define PL_Gsvref_mutex PL_svref_mutex
834#define PL_Gthisexpr PL_thisexpr
835#define PL_Gthr_key PL_thr_key
836#define PL_Gthreads_mutex PL_threads_mutex
837#define PL_Gthreadsv_names PL_threadsv_names
838#define PL_Gtokenbuf PL_tokenbuf
839#define PL_Guid PL_uid
840#define PL_Gxiv_arenaroot PL_xiv_arenaroot
841#define PL_Gxiv_root PL_xiv_root
842#define PL_Gxnv_root PL_xnv_root
843#define PL_Gxpv_root PL_xpv_root
844#define PL_Gxrv_root PL_xrv_root
22239a37
NIS
845
846#ifdef EMBED
847
22239a37
NIS
848
849#endif /* EMBED */
850#endif /* PERL_GLOBAL_STRUCT */
851