xref: /onnv-gate/usr/src/cmd/perl/5.8.4/distrib/perlvars.h (revision 0:68f95e015346)
1 /*    perlvars.h
2  *
3  *    Copyright (C) 1999, 2000, 2001, 2002, by Larry Wall and others
4  *
5  *    You may distribute under the terms of either the GNU General Public
6  *    License or the Artistic License, as specified in the README file.
7  *
8  */
9 
10 /****************/
11 /* Truly global */
12 /****************/
13 
14 /* Don't forget to re-run embed.pl to propagate changes! */
15 
16 /* This file describes the "global" variables used by perl
17  * This used to be in perl.h directly but we want to abstract out into
18  * distinct files which are per-thread, per-interpreter or really global,
19  * and how they're initialized.
20  *
21  * The 'G' prefix is only needed for vars that need appropriate #defines
22  * generated in embed*.h.  Such symbols are also used to generate
23  * the appropriate export list for win32. */
24 
25 /* global state */
26 PERLVAR(Gcurinterp,	PerlInterpreter *)
27 					/* currently running interpreter
28 					 * (initial parent interpreter under
29 					 * useithreads) */
30 #if defined(USE_5005THREADS) || defined(USE_ITHREADS)
31 PERLVAR(Gthr_key,	perl_key)	/* key to retrieve per-thread struct */
32 #endif
33 
34 /* constants (these are not literals to facilitate pointer comparisons) */
35 PERLVARIC(GYes,		char *, "1")
36 PERLVARIC(GNo,		char *, "")
37 PERLVARIC(Ghexdigit,	char *, "0123456789abcdef0123456789ABCDEF")
38 PERLVARIC(Gpatleave,	char *, "\\.^$@dDwWsSbB+*?|()-nrtfeaxc0123456789[{]}")
39 
40 /* XXX does anyone even use this? */
41 PERLVARI(Gdo_undump,	bool,	FALSE)	/* -u or dump seen? */
42 
43 #if defined(MYMALLOC) && (defined(USE_5005THREADS) || defined(USE_ITHREADS))
44 PERLVAR(Gmalloc_mutex,	perl_mutex)	/* Mutex for malloc */
45 #endif
46 
47 #if defined(USE_ITHREADS)
48 PERLVAR(Gop_mutex,	perl_mutex)	/* Mutex for op refcounting */
49 #endif
50 
51 #if defined(USE_5005THREADS) || defined(USE_ITHREADS)
52 PERLVAR(Gdollarzero_mutex, perl_mutex)	/* Modifying $0 */
53 #endif
54 
55 /* This is constant on most architectures, a global on OS/2 */
56 PERLVARI(Gsh_path,	char *,	SH_PATH)/* full path of shell */
57 
58 #ifndef PERL_MICRO
59 /* If Perl has to ignore SIGPFE, this is its saved state.
60  * See perl.h macros PERL_FPU_INIT and PERL_FPU_{PRE,POST}_EXEC. */
61 PERLVAR(Gsigfpe_saved,	Sighandler_t)
62 #endif
63 
64 /* Restricted hashes placeholder value.
65  * The contents are never used, only the address. */
66 PERLVAR(Gsv_placeholder, SV)
67 
68 #ifndef PERL_MICRO
69 PERLVARI(Gcsighandlerp,	Sighandler_t, &Perl_csighandler)	/* Pointer to C-level sighandler */
70 #endif
71 
72