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