source: for-distributions/trunk/bin/windows/perl/lib/CORE/intrpvar.h@ 14489

Last change on this file since 14489 was 14489, checked in by oranfry, 17 years ago

upgrading to perl 5.8

File size: 20.4 KB
Line 
1/***********************************************/
2/* Global only to current interpreter instance */
3/***********************************************/
4
5/* Don't forget to re-run embed.pl to propagate changes! */
6
7/* New variables must be added to the very end for binary compatibility.
8 * XSUB.h provides wrapper functions via perlapi.h that make this
9 * irrelevant, but not all code may be expected to #include XSUB.h. */
10
11/* Don't forget to add your variable also to perl_clone()! */
12
13/* The 'I' prefix is only needed for vars that need appropriate #defines
14 * generated when built with or without MULTIPLICITY. It is also used
15 * to generate the appropriate export list for win32.
16 *
17 * When building without MULTIPLICITY, these variables will be truly global. */
18
19/* pseudo environmental stuff */
20PERLVAR(Iorigargc, int)
21PERLVAR(Iorigargv, char **)
22PERLVAR(Ienvgv, GV *)
23PERLVAR(Iincgv, GV *)
24PERLVAR(Ihintgv, GV *)
25PERLVAR(Iorigfilename, char *)
26PERLVAR(Idiehook, SV *)
27PERLVAR(Iwarnhook, SV *)
28
29/* switches */
30PERLVAR(Iminus_c, bool)
31PERLVAR(Ipatchlevel, SV *)
32PERLVAR(Ilocalpatches, char **)
33PERLVARI(Isplitstr, const char *, " ")
34PERLVAR(Ipreprocess, bool)
35PERLVAR(Iminus_n, bool)
36PERLVAR(Iminus_p, bool)
37PERLVAR(Iminus_l, bool)
38PERLVAR(Iminus_a, bool)
39PERLVAR(Iminus_F, bool)
40PERLVAR(Idoswitches, bool)
41
42/*
43=head1 Global Variables
44
45=for apidoc mn|bool|PL_dowarn
46
47The C variable which corresponds to Perl's $^W warning variable.
48
49=cut
50*/
51
52PERLVAR(Idowarn, U8)
53PERLVAR(Iwidesyscalls, bool) /* unused since 5.8.1 */
54PERLVAR(Idoextract, bool)
55PERLVAR(Isawampersand, bool) /* must save all match strings */
56PERLVAR(Iunsafe, bool)
57PERLVAR(Iinplace, char *)
58PERLVAR(Ie_script, SV *)
59PERLVAR(Iperldb, U32)
60
61/* This value may be set when embedding for full cleanup */
62/* 0=none, 1=full, 2=full with checks */
63PERLVARI(Iperl_destruct_level, int, 0)
64
65/* magical thingies */
66PERLVAR(Ibasetime, Time_t) /* $^T */
67PERLVAR(Iformfeed, SV *) /* $^L */
68
69
70PERLVARI(Imaxsysfd, I32, MAXSYSFD)
71 /* top fd to pass to subprocesses */
72PERLVAR(Imultiline, int) /* $*--do strings hold >1 line? */
73PERLVAR(Istatusvalue, I32) /* $? */
74PERLVAR(Iexit_flags, U8) /* was exit() unexpected, etc. */
75#ifdef VMS
76PERLVAR(Istatusvalue_vms,U32)
77#endif
78
79/* shortcuts to various I/O objects */
80PERLVAR(Istdingv, GV *)
81PERLVAR(Istderrgv, GV *)
82PERLVAR(Idefgv, GV *)
83PERLVAR(Iargvgv, GV *)
84PERLVAR(Iargvoutgv, GV *)
85PERLVAR(Iargvout_stack, AV *)
86
87/* shortcuts to regexp stuff */
88/* this one needs to be moved to thrdvar.h and accessed via
89 * find_threadsv() when USE_5005THREADS */
90PERLVAR(Ireplgv, GV *)
91
92/* shortcuts to misc objects */
93PERLVAR(Ierrgv, GV *)
94
95/* shortcuts to debugging objects */
96PERLVAR(IDBgv, GV *)
97PERLVAR(IDBline, GV *)
98
99/*
100=for apidoc mn|GV *|PL_DBsub
101When Perl is run in debugging mode, with the B<-d> switch, this GV contains
102the SV which holds the name of the sub being debugged. This is the C
103variable which corresponds to Perl's $DB::sub variable. See
104C<PL_DBsingle>.
105
106=for apidoc mn|SV *|PL_DBsingle
107When Perl is run in debugging mode, with the B<-d> switch, this SV is a
108boolean which indicates whether subs are being single-stepped.
109Single-stepping is automatically turned on after every step. This is the C
110variable which corresponds to Perl's $DB::single variable. See
111C<PL_DBsub>.
112
113=for apidoc mn|SV *|PL_DBtrace
114Trace variable used when Perl is run in debugging mode, with the B<-d>
115switch. This is the C variable which corresponds to Perl's $DB::trace
116variable. See C<PL_DBsingle>.
117
118=cut
119*/
120
121PERLVAR(IDBsub, GV *)
122PERLVAR(IDBsingle, SV *)
123PERLVAR(IDBtrace, SV *)
124PERLVAR(IDBsignal, SV *)
125PERLVAR(Ilineary, AV *) /* lines of script for debugger */
126PERLVAR(Idbargs, AV *) /* args to call listed by caller function */
127
128/* symbol tables */
129PERLVAR(Idebstash, HV *) /* symbol table for perldb package */
130PERLVAR(Iglobalstash, HV *) /* global keyword overrides imported here */
131PERLVAR(Icurstname, SV *) /* name of current package */
132PERLVAR(Ibeginav, AV *) /* names of BEGIN subroutines */
133PERLVAR(Iendav, AV *) /* names of END subroutines */
134PERLVAR(Icheckav, AV *) /* names of CHECK subroutines */
135PERLVAR(Iinitav, AV *) /* names of INIT subroutines */
136PERLVAR(Istrtab, HV *) /* shared string table */
137PERLVARI(Isub_generation,U32,1) /* incr to invalidate method cache */
138
139/* memory management */
140PERLVAR(Isv_count, I32) /* how many SV* are currently allocated */
141PERLVAR(Isv_objcount, I32) /* how many objects are currently allocated */
142PERLVAR(Isv_root, SV*) /* storage for SVs belonging to interp */
143PERLVAR(Isv_arenaroot, SV*) /* list of areas for garbage collection */
144
145/* funky return mechanisms */
146PERLVAR(Iforkprocess, int) /* so do_open |- can return proc# */
147
148/* subprocess state */
149PERLVAR(Ifdpid, AV *) /* keep fd-to-pid mappings for my_popen */
150
151/* internal state */
152PERLVAR(Itainting, bool) /* doing taint checks */
153PERLVARI(Iop_mask, char *, NULL) /* masked operations for safe evals */
154
155/* current interpreter roots */
156PERLVAR(Imain_cv, CV *)
157PERLVAR(Imain_root, OP *)
158PERLVAR(Imain_start, OP *)
159PERLVAR(Ieval_root, OP *)
160PERLVAR(Ieval_start, OP *)
161
162/* runtime control stuff */
163PERLVARI(Icurcopdb, COP *, NULL)
164PERLVARI(Icopline, line_t, NOLINE)
165
166/* statics moved here for shared library purposes */
167PERLVAR(Ifilemode, int) /* so nextargv() can preserve mode */
168PERLVAR(Ilastfd, int) /* what to preserve mode on */
169PERLVAR(Ioldname, char *) /* what to preserve mode on */
170PERLVAR(IArgv, char **) /* stuff to free from do_aexec, vfork safe */
171PERLVAR(ICmd, char *) /* stuff to free from do_aexec, vfork safe */
172PERLVARI(Igensym, I32, 0) /* next symbol for getsym() to define */
173PERLVAR(Ipreambled, bool)
174PERLVAR(Ipreambleav, AV *)
175PERLVARI(Ilaststatval, int, -1)
176PERLVARI(Ilaststype, I32, OP_STAT)
177PERLVAR(Imess_sv, SV *)
178
179/* XXX shouldn't these be per-thread? --GSAR */
180PERLVAR(Iors_sv, SV *) /* output record separator $\ */
181PERLVAR(Iofmt, char *) /* output format for numbers $# */
182
183/* interpreter atexit processing */
184PERLVARI(Iexitlist, PerlExitListEntry *, NULL)
185 /* list of exit functions */
186PERLVARI(Iexitlistlen, I32, 0) /* length of same */
187
188/*
189=for apidoc Amn|HV*|PL_modglobal
190
191C<PL_modglobal> is a general purpose, interpreter global HV for use by
192extensions that need to keep information on a per-interpreter basis.
193In a pinch, it can also be used as a symbol table for extensions
194to share data among each other. It is a good idea to use keys
195prefixed by the package name of the extension that owns the data.
196
197=cut
198*/
199
200PERLVAR(Imodglobal, HV *) /* per-interp module data */
201
202/* these used to be in global before 5.004_68 */
203PERLVARI(Iprofiledata, U32 *, NULL) /* table of ops, counts */
204PERLVARI(Irsfp, PerlIO * VOL, Nullfp) /* current source file pointer */
205PERLVARI(Irsfp_filters, AV *, Nullav) /* keeps active source filters */
206
207PERLVAR(Icompiling, COP) /* compiling/done executing marker */
208
209PERLVAR(Icompcv, CV *) /* currently compiling subroutine */
210PERLVAR(IBINCOMPAT0, AV *) /* filler for binary compatibility */
211PERLVAR(Icomppad_name, AV *) /* variable names for "my" variables */
212PERLVAR(Icomppad_name_fill, I32) /* last "introduced" variable offset */
213PERLVAR(Icomppad_name_floor, I32) /* start of vars in innermost block */
214
215#ifdef HAVE_INTERP_INTERN
216PERLVAR(Isys_intern, struct interp_intern)
217 /* platform internals */
218#endif
219
220/* more statics moved here */
221PERLVARI(Igeneration, int, 100) /* from op.c */
222PERLVAR(IDBcv, CV *) /* from perl.c */
223
224PERLVARI(Iin_clean_objs,bool, FALSE) /* from sv.c */
225PERLVARI(Iin_clean_all, bool, FALSE) /* from sv.c */
226
227PERLVAR(Ilinestart, char *) /* beg. of most recently read line */
228PERLVAR(Ipending_ident, char) /* pending identifier lookup */
229PERLVAR(Isublex_info, SUBLEXINFO) /* from toke.c */
230
231#ifdef USE_5005THREADS
232PERLVAR(Ithrsv, SV *) /* struct perl_thread for main thread */
233PERLVARI(Ithreadnum, U32, 0) /* incremented each thread creation */
234PERLVAR(Istrtab_mutex, perl_mutex) /* Mutex for string table access */
235#endif /* USE_5005THREADS */
236
237PERLVAR(Iuid, Uid_t) /* current real user id */
238PERLVAR(Ieuid, Uid_t) /* current effective user id */
239PERLVAR(Igid, Gid_t) /* current real group id */
240PERLVAR(Iegid, Gid_t) /* current effective group id */
241PERLVAR(Inomemok, bool) /* let malloc context handle nomem */
242PERLVARI(Ian, U32, 0) /* malloc sequence number */
243PERLVARI(Icop_seqmax, U32, 0) /* statement sequence number */
244PERLVARI(Iop_seqmax, U16, 0) /* op sequence number */
245PERLVARI(Ievalseq, U32, 0) /* eval sequence number */
246PERLVAR(Iorigenviron, char **)
247PERLVAR(Iorigalen, U32)
248PERLVAR(Ipidstatus, HV *) /* pid-to-status mappings for waitpid */
249PERLVARI(Imaxo, int, MAXO) /* maximum number of ops */
250PERLVAR(Iosname, char *) /* operating system */
251
252/* For binary compatibility with older versions only */
253PERLVARI(Ish_path_compat, const char *, SH_PATH)/* full path of shell */
254
255PERLVAR(Isighandlerp, Sighandler_t)
256
257PERLVAR(Ixiv_arenaroot, XPV*) /* list of allocated xiv areas */
258PERLVAR(Ixiv_root, IV *) /* free xiv list */
259PERLVAR(Ixnv_root, NV *) /* free xnv list */
260PERLVAR(Ixrv_root, XRV *) /* free xrv list */
261PERLVAR(Ixpv_root, XPV *) /* free xpv list */
262PERLVAR(Ixpviv_root, XPVIV *) /* free xpviv list */
263PERLVAR(Ixpvnv_root, XPVNV *) /* free xpvnv list */
264PERLVAR(Ixpvcv_root, XPVCV *) /* free xpvcv list */
265PERLVAR(Ixpvav_root, XPVAV *) /* free xpvav list */
266PERLVAR(Ixpvhv_root, XPVHV *) /* free xpvhv list */
267PERLVAR(Ixpvmg_root, XPVMG *) /* free xpvmg list */
268PERLVAR(Ixpvlv_root, XPVLV *) /* free xpvlv list */
269PERLVAR(Ixpvbm_root, XPVBM *) /* free xpvbm list */
270PERLVAR(Ihe_root, HE *) /* free he list */
271PERLVAR(Inice_chunk, char *) /* a nice chunk of memory to reuse */
272PERLVAR(Inice_chunk_size, U32) /* how nice the chunk of memory is */
273
274PERLVARI(Irunops, runops_proc_t, MEMBER_TO_FPTR(RUNOPS_DEFAULT))
275
276PERLVARA(Itokenbuf,256, char)
277
278/*
279=for apidoc Amn|SV|PL_sv_undef
280This is the C<undef> SV. Always refer to this as C<&PL_sv_undef>.
281
282=for apidoc Amn|SV|PL_sv_no
283This is the C<false> SV. See C<PL_sv_yes>. Always refer to this as
284C<&PL_sv_no>.
285
286=for apidoc Amn|SV|PL_sv_yes
287This is the C<true> SV. See C<PL_sv_no>. Always refer to this as
288C<&PL_sv_yes>.
289
290=cut
291*/
292
293PERLVAR(Isv_undef, SV)
294PERLVAR(Isv_no, SV)
295PERLVAR(Isv_yes, SV)
296
297#ifdef CSH
298PERLVARI(Icshname, const char *, CSH)
299PERLVARI(Icshlen, I32, 0)
300#endif
301
302PERLVAR(Ilex_state, U32) /* next token is determined */
303PERLVAR(Ilex_defer, U32) /* state after determined token */
304PERLVAR(Ilex_expect, int) /* expect after determined token */
305PERLVAR(Ilex_brackets, I32) /* bracket count */
306PERLVAR(Ilex_formbrack, I32) /* bracket count at outer format level */
307PERLVAR(Ilex_casemods, I32) /* casemod count */
308PERLVAR(Ilex_dojoin, I32) /* doing an array interpolation */
309PERLVAR(Ilex_starts, I32) /* how many interps done on level */
310PERLVAR(Ilex_stuff, SV *) /* runtime pattern from m// or s/// */
311PERLVAR(Ilex_repl, SV *) /* runtime replacement from s/// */
312PERLVAR(Ilex_op, OP *) /* extra info to pass back on op */
313PERLVAR(Ilex_inpat, OP *) /* in pattern $) and $| are special */
314PERLVAR(Ilex_inwhat, I32) /* what kind of quoting are we in */
315PERLVAR(Ilex_brackstack,char *) /* what kind of brackets to pop */
316PERLVAR(Ilex_casestack, char *) /* what kind of case mods in effect */
317
318/* What we know when we're in LEX_KNOWNEXT state. */
319PERLVARA(Inextval,5, YYSTYPE) /* value of next token, if any */
320PERLVARA(Inexttype,5, I32) /* type of next token */
321PERLVAR(Inexttoke, I32)
322
323PERLVAR(Ilinestr, SV *)
324PERLVAR(Ibufptr, char *)
325PERLVAR(Ioldbufptr, char *)
326PERLVAR(Ioldoldbufptr, char *)
327PERLVAR(Ibufend, char *)
328PERLVARI(Iexpect,int, XSTATE) /* how to interpret ambiguous tokens */
329
330PERLVAR(Imulti_start, I32) /* 1st line of multi-line string */
331PERLVAR(Imulti_end, I32) /* last line of multi-line string */
332PERLVAR(Imulti_open, I32) /* delimiter of said string */
333PERLVAR(Imulti_close, I32) /* delimiter of said string */
334
335PERLVAR(Ierror_count, I32) /* how many errors so far, max 10 */
336PERLVAR(Isubline, I32) /* line this subroutine began on */
337PERLVAR(Isubname, SV *) /* name of current subroutine */
338
339PERLVAR(Imin_intro_pending, I32) /* start of vars to introduce */
340PERLVAR(Imax_intro_pending, I32) /* end of vars to introduce */
341PERLVAR(Ipadix, I32) /* max used index in current "register" pad */
342PERLVAR(Ipadix_floor, I32) /* how low may inner block reset padix */
343PERLVAR(Ipad_reset_pending, I32) /* reset pad on next attempted alloc */
344
345PERLVAR(Ilast_uni, char *) /* position of last named-unary op */
346PERLVAR(Ilast_lop, char *) /* position of last list operator */
347PERLVAR(Ilast_lop_op, OPCODE) /* last list operator */
348PERLVAR(Iin_my, I32) /* we're compiling a "my" (or "our") declaration */
349PERLVAR(Iin_my_stash, HV *) /* declared class of this "my" declaration */
350#ifdef FCRYPT
351PERLVARI(Icryptseen, bool, FALSE) /* has fast crypt() been initialized? */
352#endif
353
354PERLVAR(Ihints, U32) /* pragma-tic compile-time flags */
355
356PERLVAR(Idebug, VOL U32) /* flags given to -D switch */
357
358PERLVARI(Iamagic_generation, long, 0)
359
360#ifdef USE_LOCALE_COLLATE
361PERLVARI(Icollation_ix, U32, 0) /* Collation generation index */
362PERLVAR(Icollation_name,char *) /* Name of current collation */
363PERLVARI(Icollation_standard, bool, TRUE)
364 /* Assume simple collation */
365PERLVAR(Icollxfrm_base, Size_t) /* Basic overhead in *xfrm() */
366PERLVARI(Icollxfrm_mult,Size_t, 2) /* Expansion factor in *xfrm() */
367#endif /* USE_LOCALE_COLLATE */
368
369#ifdef USE_LOCALE_NUMERIC
370
371PERLVAR(Inumeric_name, char *) /* Name of current numeric locale */
372PERLVARI(Inumeric_standard, bool, TRUE)
373 /* Assume simple numerics */
374PERLVARI(Inumeric_local, bool, TRUE)
375 /* Assume local numerics */
376
377PERLVAR(Inumeric_compat1, char)
378 /* Used to be numeric_radix */
379#endif /* !USE_LOCALE_NUMERIC */
380
381/* utf8 character classes */
382PERLVAR(Iutf8_alnum, SV *)
383PERLVAR(Iutf8_alnumc, SV *)
384PERLVAR(Iutf8_ascii, SV *)
385PERLVAR(Iutf8_alpha, SV *)
386PERLVAR(Iutf8_space, SV *)
387PERLVAR(Iutf8_cntrl, SV *)
388PERLVAR(Iutf8_graph, SV *)
389PERLVAR(Iutf8_digit, SV *)
390PERLVAR(Iutf8_upper, SV *)
391PERLVAR(Iutf8_lower, SV *)
392PERLVAR(Iutf8_print, SV *)
393PERLVAR(Iutf8_punct, SV *)
394PERLVAR(Iutf8_xdigit, SV *)
395PERLVAR(Iutf8_mark, SV *)
396PERLVAR(Iutf8_toupper, SV *)
397PERLVAR(Iutf8_totitle, SV *)
398PERLVAR(Iutf8_tolower, SV *)
399PERLVAR(Iutf8_tofold, SV *)
400PERLVAR(Ilast_swash_hv, HV *)
401PERLVAR(Ilast_swash_klen, U32)
402PERLVARA(Ilast_swash_key,10, U8)
403PERLVAR(Ilast_swash_tmps, U8 *)
404PERLVAR(Ilast_swash_slen, STRLEN)
405
406/* perly.c globals */
407PERLVAR(Iyydebug, int)
408PERLVAR(Iyynerrs, int)
409PERLVAR(Iyyerrflag, int)
410PERLVAR(Iyychar, int)
411PERLVAR(Iyyval, YYSTYPE)
412PERLVAR(Iyylval, YYSTYPE)
413
414PERLVARI(Iglob_index, int, 0)
415PERLVAR(Isrand_called, bool)
416PERLVARA(Iuudmap,256, char)
417PERLVAR(Ibitcount, char *)
418
419#ifdef USE_5005THREADS
420PERLVAR(Isv_mutex, perl_mutex) /* Mutex for allocating SVs in sv.c */
421PERLVAR(Ieval_mutex, perl_mutex) /* Mutex for doeval */
422PERLVAR(Ieval_cond, perl_cond) /* Condition variable for doeval */
423PERLVAR(Ieval_owner, struct perl_thread *)
424 /* Owner thread for doeval */
425PERLVAR(Inthreads, int) /* Number of threads currently */
426PERLVAR(Ithreads_mutex, perl_mutex) /* Mutex for nthreads and thread list */
427PERLVAR(Inthreads_cond, perl_cond) /* Condition variable for nthreads */
428PERLVAR(Isvref_mutex, perl_mutex) /* Mutex for SvREFCNT_{inc,dec} */
429PERLVARI(Ithreadsv_names,char *, THREADSV_NAMES)
430#ifdef FAKE_THREADS
431PERLVAR(Icurthr, struct perl_thread *)
432 /* Currently executing (fake) thread */
433#endif
434
435PERLVAR(Icred_mutex, perl_mutex) /* altered credentials in effect */
436
437#endif /* USE_5005THREADS */
438
439PERLVAR(Ipsig_ptr, SV**)
440PERLVAR(Ipsig_name, SV**)
441
442#if defined(PERL_IMPLICIT_SYS)
443PERLVAR(IMem, struct IPerlMem*)
444PERLVAR(IMemShared, struct IPerlMem*)
445PERLVAR(IMemParse, struct IPerlMem*)
446PERLVAR(IEnv, struct IPerlEnv*)
447PERLVAR(IStdIO, struct IPerlStdIO*)
448PERLVAR(ILIO, struct IPerlLIO*)
449PERLVAR(IDir, struct IPerlDir*)
450PERLVAR(ISock, struct IPerlSock*)
451PERLVAR(IProc, struct IPerlProc*)
452#endif
453
454#if defined(USE_ITHREADS)
455PERLVAR(Iptr_table, PTR_TBL_t*)
456#endif
457PERLVARI(Ibeginav_save, AV*, Nullav) /* save BEGIN{}s when compiling */
458
459#ifdef USE_5005THREADS
460PERLVAR(Ifdpid_mutex, perl_mutex) /* mutex for fdpid array */
461PERLVAR(Isv_lock_mutex, perl_mutex) /* mutex for SvLOCK macro */
462#endif
463
464PERLVAR(Inullstash, HV *) /* illegal symbols end up here */
465
466PERLVAR(Ixnv_arenaroot, XPV*) /* list of allocated xnv areas */
467PERLVAR(Ixrv_arenaroot, XPV*) /* list of allocated xrv areas */
468PERLVAR(Ixpv_arenaroot, XPV*) /* list of allocated xpv areas */
469PERLVAR(Ixpviv_arenaroot,XPVIV*) /* list of allocated xpviv areas */
470PERLVAR(Ixpvnv_arenaroot,XPVNV*) /* list of allocated xpvnv areas */
471PERLVAR(Ixpvcv_arenaroot,XPVCV*) /* list of allocated xpvcv areas */
472PERLVAR(Ixpvav_arenaroot,XPVAV*) /* list of allocated xpvav areas */
473PERLVAR(Ixpvhv_arenaroot,XPVHV*) /* list of allocated xpvhv areas */
474PERLVAR(Ixpvmg_arenaroot,XPVMG*) /* list of allocated xpvmg areas */
475PERLVAR(Ixpvlv_arenaroot,XPVLV*) /* list of allocated xpvlv areas */
476PERLVAR(Ixpvbm_arenaroot,XPVBM*) /* list of allocated xpvbm areas */
477PERLVAR(Ihe_arenaroot, XPV*) /* list of allocated he areas */
478
479 /* 5.6.0 stopped here */
480
481PERLVAR(Ipsig_pend, int *) /* per-signal "count" of pending */
482PERLVARI(Isig_pending, int,0) /* Number if highest signal pending */
483
484#ifdef USE_LOCALE_NUMERIC
485
486PERLVAR(Inumeric_radix_sv, SV *) /* The radix separator if not '.' */
487
488#endif
489
490#if defined(USE_ITHREADS)
491PERLVAR(Iregex_pad, SV**) /* All regex objects */
492PERLVAR(Iregex_padav, AV*) /* All regex objects */
493
494#endif
495
496#ifdef USE_REENTRANT_API
497PERLVAR(Ireentrant_buffer, REENTR*) /* here we store the _r buffers */
498#endif
499
500PERLVARI(Isavebegin, bool, FALSE) /* save BEGINs for compiler */
501
502PERLVAR(Icustom_op_names, HV*) /* Names of user defined ops */
503PERLVAR(Icustom_op_descs, HV*) /* Descriptions of user defined ops */
504
505#ifdef PERLIO_LAYERS
506PERLVARI(Iperlio, PerlIO *,NULL)
507PERLVARI(Iknown_layers, PerlIO_list_t *,NULL)
508PERLVARI(Idef_layerlist, PerlIO_list_t *,NULL)
509#endif
510
511PERLVARI(Iencoding, SV*, Nullsv) /* character encoding */
512
513PERLVAR(Idebug_pad, struct perl_debug_pad) /* always needed because of the re extension */
514
515PERLVAR(Itaint_warn, bool) /* taint warns instead of dying */
516
517#ifdef PL_OP_SLAB_ALLOC
518PERLVAR(IOpPtr,I32 **)
519PERLVARI(IOpSpace,I32,0)
520PERLVAR(IOpSlab,I32 *)
521#endif
522
523PERLVAR(Iutf8locale, bool) /* utf8 locale detected */
524
525PERLVAR(Iutf8_idstart, SV *)
526PERLVAR(Iutf8_idcont, SV *)
527
528PERLVAR(Isort_RealCmp, SVCOMPARE_t)
529
530PERLVARI(Icheckav_save, AV*, Nullav) /* save CHECK{}s when compiling */
531
532PERLVARI(Iclocktick, long, 0) /* this many times() ticks in a second */
533
534PERLVARI(Iin_load_module, int, 0) /* to prevent recursions in PerlIO_find_layer */
535
536PERLVAR(Iunicode, U32) /* Unicode features: $ENV{PERL_UNICODE} or -C */
537
538PERLVAR(Isignals, U32) /* Using which pre-5.8 signals */
539
540PERLVAR(Istashcache, HV *) /* Cache to speed up S_method_common */
541
542PERLVAR(Ireentrant_retint, int) /* Integer return value from reentrant functions */
543
544/* Hooks to shared SVs and locks. */
545PERLVARI(Isharehook, share_proc_t, MEMBER_TO_FPTR(Perl_sv_nosharing))
546PERLVARI(Ilockhook, share_proc_t, MEMBER_TO_FPTR(Perl_sv_nolocking))
547PERLVARI(Iunlockhook, share_proc_t, MEMBER_TO_FPTR(Perl_sv_nounlocking))
548PERLVARI(Ithreadhook, thrhook_proc_t, MEMBER_TO_FPTR(Perl_nothreadhook))
549
550/* Force inclusion of both runops options */
551PERLVARI(Irunops_std, runops_proc_t, MEMBER_TO_FPTR(Perl_runops_standard))
552PERLVARI(Irunops_dbg, runops_proc_t, MEMBER_TO_FPTR(Perl_runops_debug))
553
554/* Stores the PPID */
555#ifdef THREADS_HAVE_PIDS
556PERLVARI(Ippid, IV, 0)
557#endif
558
559PERLVARI(Ihash_seed, UV, 0) /* Hash initializer */
560
561PERLVARI(Ihash_seed_set, bool, FALSE) /* Hash initialized? */
562
563PERLVARI(Irehash_seed, UV, 0) /* 582 hash initializer */
564
565PERLVARI(Irehash_seed_set, bool, FALSE) /* 582 hash initialized? */
566
567/* These two variables are needed to preserve 5.8.x bincompat because we can't
568 change function prototypes of two exported functions. Probably should be
569 taken out of blead soon, and relevant prototypes changed. */
570PERLVARI(Ifdscript, int, -1) /* fd for script */
571PERLVARI(Isuidscript, int, -1) /* fd for suid script */
572
573#if defined(USE_ITHREADS)
574PERLVAR(Ipte_root, struct ptr_tbl_ent *) /* free ptr_tbl_ent list */
575PERLVAR(Ipte_arenaroot, XPV*) /* list of allocated pte areas */
576#endif
577
578/* New variables must be added to the very end, before this comment,
579 * for binary compatibility (the offsets of the old members must not change).
580 * (Don't forget to add your variable also to perl_clone()!)
581 * XSUB.h provides wrapper functions via perlapi.h that make this
582 * irrelevant, but not all code may be expected to #include XSUB.h.
583 */
584
585#ifdef DEBUG_LEAKING_SCALARS_FORK_DUMP
586/* File descriptor to talk to the child which dumps scalars. */
587PERLVARI(Idumper_fd, int, -1)
588#endif
Note: See TracBrowser for help on using the repository browser.