This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Assimilate Digest 1.05
[perl5.git] / perlvars.h
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_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_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 #ifdef 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