[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3-unattended/var/se3/unattended/install/linuxaux/opt/perl/lib/5.10.0/i586-linux-thread-multi/CORE/ -> perlvars.h (source)

   1  /*    perlvars.h
   2   *
   3   *    Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
   4   *    by Larry Wall and others
   5   *
   6   *    You may distribute under the terms of either the GNU General Public
   7   *    License or the Artistic License, as specified in the README file.
   8   *
   9   */
  10  
  11  /****************/
  12  /* Truly global */
  13  /****************/
  14  
  15  /* Don't forget to re-run embed.pl to propagate changes! */
  16  
  17  /* This file describes the "global" variables used by perl
  18   * This used to be in perl.h directly but we want to abstract out into
  19   * distinct files which are per-thread, per-interpreter or really global,
  20   * and how they're initialized.
  21   *
  22   * The 'G' prefix is only needed for vars that need appropriate #defines
  23   * generated in embed*.h.  Such symbols are also used to generate
  24   * the appropriate export list for win32. */
  25  
  26  /* global state */
  27  PERLVAR(Gcurinterp,    PerlInterpreter *)
  28                      /* currently running interpreter
  29                       * (initial parent interpreter under
  30                       * useithreads) */
  31  #if defined(USE_ITHREADS)
  32  PERLVAR(Gthr_key,    perl_key)    /* key to retrieve per-thread struct */
  33  #endif
  34  
  35  /* constants (these are not literals to facilitate pointer comparisons)
  36   * (PERLVARISC really does create variables, despite its looks) */
  37  PERLVARISC(GYes,    "1")
  38  PERLVARISC(GNo,        "")
  39  PERLVARISC(Ghexdigit,    "0123456789abcdef0123456789ABCDEF")
  40  PERLVARISC(Gpatleave,    "\\.^$@dDwWsSbB+*?|()-nrtfeaxc0123456789[{]}")
  41  
  42  /* XXX does anyone even use this? */
  43  PERLVARI(Gdo_undump,    bool,    FALSE)    /* -u or dump seen? */
  44  
  45  #if defined(MYMALLOC) && defined(USE_ITHREADS)
  46  PERLVAR(Gmalloc_mutex,    perl_mutex)    /* Mutex for malloc */
  47  #endif
  48  
  49  #if defined(USE_ITHREADS)
  50  PERLVAR(Gop_mutex,    perl_mutex)    /* Mutex for op refcounting */
  51  #endif
  52  
  53  #ifdef USE_ITHREADS
  54  PERLVAR(Gdollarzero_mutex, perl_mutex)    /* Modifying $0 */
  55  #endif
  56  
  57  
  58  /* This is constant on most architectures, a global on OS/2 */
  59  #ifdef OS2
  60  #  define PERL___C
  61  #else
  62  #  define PERL___C const
  63  #endif
  64  PERLVARI(Gsh_path,    PERL___C char *, SH_PATH) /* full path of shell */
  65  #undef PERL___C
  66  
  67  #ifndef PERL_MICRO
  68  /* If Perl has to ignore SIGPFE, this is its saved state.
  69   * See perl.h macros PERL_FPU_INIT and PERL_FPU_{PRE,POST}_EXEC. */
  70  PERLVAR(Gsigfpe_saved,    Sighandler_t)
  71  #endif
  72  
  73  /* Restricted hashes placeholder value.
  74   * The contents are never used, only the address. */
  75  PERLVAR(Gsv_placeholder, SV)
  76  
  77  #ifndef PERL_MICRO
  78  PERLVARI(Gcsighandlerp,    Sighandler_t, Perl_csighandler)    /* Pointer to C-level sighandler */
  79  #endif
  80  
  81  #ifndef PERL_USE_SAFE_PUTENV
  82  PERLVARI(Guse_safe_putenv, int, 1)
  83  #endif
  84  
  85  #ifdef USE_PERLIO
  86  PERLVARI(Gperlio_fd_refcnt, int*, 0) /* Pointer to array of fd refcounts.  */
  87  PERLVARI(Gperlio_fd_refcnt_size, int, 0) /* Size of the array */
  88  PERLVARI(Gperlio_debug_fd, int, 0) /* the fd to write perlio debug into, 0 means not set yet */
  89  #endif
  90  
  91  #ifdef HAS_MMAP
  92  PERLVARI(Gmmap_page_size, IV, 0)
  93  #endif
  94  
  95  #if defined(FAKE_PERSISTENT_SIGNAL_HANDLERS)||defined(FAKE_DEFAULT_SIGNAL_HANDLERS)
  96  PERLVARI(Gsig_handlers_initted, int, 0)
  97  #endif
  98  #ifdef FAKE_PERSISTENT_SIGNAL_HANDLERS
  99  PERLVARA(Gsig_ignoring, SIG_SIZE, int)    /* which signals we are ignoring */
 100  #endif
 101  #ifdef FAKE_DEFAULT_SIGNAL_HANDLERS
 102  PERLVARA(Gsig_defaulting, SIG_SIZE, int)
 103  #endif
 104  
 105  #ifndef PERL_IMPLICIT_CONTEXT
 106  PERLVAR(Gsig_sv, SV*)
 107  #endif
 108  
 109  /* XXX signals are process-wide anyway, so we
 110   * ignore the implications of this for threading */
 111  #ifndef HAS_SIGACTION
 112  PERLVARI(Gsig_trapped, int, 0)
 113  #endif
 114  
 115  #ifdef DEBUGGING
 116  PERLVAR(Gwatch_pvx, char*)
 117  #endif
 118  
 119  #ifdef PERL_GLOBAL_STRUCT 
 120  PERLVAR(Gppaddr, Perl_ppaddr_t*) /* or opcode.h */
 121  PERLVAR(Gcheck,  Perl_check_t *) /* or opcode.h */
 122  PERLVARA(Gfold_locale, 256, unsigned char) /* or perl.h */
 123  #endif
 124  
 125  #ifdef PERL_NEED_APPCTX
 126  PERLVAR(Gappctx, void*) /* the application context */
 127  #endif
 128  
 129  PERLVAR(Gop_sequence, HV*) /* dump.c */
 130  PERLVARI(Gop_seq, UV, 0) /* dump.c */
 131  
 132  #if defined(HAS_TIMES) && defined(PERL_NEED_TIMESBASE)
 133  PERLVAR(Gtimesbase, struct tms)
 134  #endif
 135  
 136  /* allocate a unique index to every module that calls MY_CXT_INIT */
 137  
 138  #ifdef PERL_IMPLICIT_CONTEXT
 139  # ifdef USE_ITHREADS
 140  PERLVAR(Gmy_ctx_mutex, perl_mutex)
 141  # endif
 142  PERLVARI(Gmy_cxt_index, int, 0)
 143  #endif
 144  
 145  #if defined(USE_ITHREADS)
 146  PERLVAR(Ghints_mutex, perl_mutex)    /* Mutex for refcounted he refcounting */
 147  #endif
 148  
 149  #if defined(USE_ITHREADS)
 150  PERLVAR(Gperlio_mutex, perl_mutex)    /* Mutex for perlio fd refcounts */
 151  #endif
 152  
 153  /* this is currently set without MUTEX protection, so keep it a type which
 154   * can be set atomically (ie not a bit field) */
 155  PERLVARI(Gveto_cleanup,    int, FALSE)    /* exit without cleanup */
 156  
 157  /* dummy variables that hold pointers to both runops functions, thus forcing
 158   * them *both* to get linked in (useful for Peek.xs, debugging etc) */
 159  
 160  PERLVARI(Grunops_std,    runops_proc_t,    MEMBER_TO_FPTR(Perl_runops_standard))
 161  PERLVARI(Grunops_dbg,    runops_proc_t,    MEMBER_TO_FPTR(Perl_runops_debug))
 162  
 163  
 164  /* These are baked at compile time into any shared perl library.
 165     In future 5.10.x releases this will allow us in main() to sanity test the
 166     library we're linking against.  */
 167  
 168  PERLVARI(Grevision,    U8,    PERL_REVISION)
 169  PERLVARI(Gversion,    U8,    PERL_VERSION)
 170  PERLVARI(Gsubversion,    U8,    PERL_SUBVERSION)
 171  
 172  #if defined(MULTIPLICITY)
 173  #  define PERL_INTERPRETER_SIZE_UPTO_MEMBER(member)            \
 174      STRUCT_OFFSET(struct interpreter, member) +                \
 175      sizeof(((struct interpreter*)0)->member)
 176  
 177  /* These might be useful.  */
 178  PERLVARI(Ginterp_size,    U16,    sizeof(struct interpreter))
 179  #if defined(PERL_GLOBAL_STRUCT)
 180  PERLVARI(Gglobal_struct_size,    U16,    sizeof(struct perl_vars))
 181  #endif
 182  
 183  /* This will be useful for subsequent releases, because this has to be the
 184     same in your libperl as in main(), else you have a mismatch and must abort.
 185  */
 186  PERLVARI(Ginterp_size_5_10_0, U16,
 187       PERL_INTERPRETER_SIZE_UPTO_MEMBER(PERL_LAST_5_10_0_INTERP_MEMBER))
 188  #endif


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1