adcc2c097b8e8c69d3a86b214d8e68b4b4f75915
[p5sagit/p5-mst-13.2.git] / perlvars.h
1 /*    perlvars.h
2  *
3  *    Copyright (c) 1997-2002, Larry Wall
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 PERLVAR(Gsharedsv_space, PerlInterpreter*) /* The shared sv space */
50 PERLVAR(Gsharedsv_space_mutex, perl_mutex) /* Mutex protecting the shared sv space */
51 #endif
52
53 /* Force inclusion of both runops options */
54 PERLVARI(Grunops_std,   runops_proc_t,  MEMBER_TO_FPTR(Perl_runops_standard))
55 PERLVARI(Grunops_dbg,   runops_proc_t,  MEMBER_TO_FPTR(Perl_runops_debug))
56