home *** CD-ROM | disk | FTP | other *** search
/ Australian Personal Computer 2004 July / APC0407D2.iso / workshop / apache / files / ActivePerl-5.6.1.638-MSWin32-x86.msi / _bf0b19aae00ec7efcb31476b206ff902 < prev    next >
Encoding:
Text File  |  2004-04-13  |  9.6 KB  |  258 lines

  1. /***********************************************/
  2. /* Global only to current thread               */
  3. /***********************************************/
  4.  
  5. /* Don't forget to re-run embed.pl to propagate changes! */
  6.  
  7. /* The 'T' prefix is only needed for vars that need appropriate #defines
  8.  * generated when built with or without USE_THREADS.  It is also used
  9.  * to generate the appropriate export list for win32.
  10.  *
  11.  * When building without USE_THREADS, these variables will be truly global.
  12.  * When building without USE_THREADS but with MULTIPLICITY, these variables
  13.  * will be global per-interpreter. */
  14.  
  15. /* Important ones in the first cache line (if alignment is done right) */
  16.  
  17. #ifdef USE_THREADS
  18. PERLVAR(interp,        PerlInterpreter*)    /* thread owner */
  19. #endif
  20.  
  21. PERLVAR(Tstack_sp,    SV **)        /* top of the stack */
  22. #ifdef OP_IN_REGISTER
  23. PERLVAR(Topsave,    OP *)
  24. #else
  25. PERLVAR(Top,        OP *)        /* currently executing op */
  26. #endif
  27. PERLVAR(Tcurpad,    SV **)        /* active pad (lexicals+tmps) */
  28.  
  29. PERLVAR(Tstack_base,    SV **)
  30. PERLVAR(Tstack_max,    SV **)
  31.  
  32. PERLVAR(Tscopestack,    I32 *)        /* scopes we've ENTERed */
  33. PERLVAR(Tscopestack_ix,    I32)
  34. PERLVAR(Tscopestack_max,I32)
  35.  
  36. PERLVAR(Tsavestack,    ANY *)        /* items that need to be restored
  37.                        when LEAVEing scopes we've ENTERed */
  38. PERLVAR(Tsavestack_ix,    I32)
  39. PERLVAR(Tsavestack_max,    I32)
  40.  
  41. PERLVAR(Ttmps_stack,    SV **)        /* mortals we've made */
  42. PERLVARI(Ttmps_ix,    I32,    -1)
  43. PERLVARI(Ttmps_floor,    I32,    -1)
  44. PERLVAR(Ttmps_max,    I32)
  45.  
  46. PERLVAR(Tmarkstack,    I32 *)        /* stack_sp locations we're remembering */
  47. PERLVAR(Tmarkstack_ptr,    I32 *)
  48. PERLVAR(Tmarkstack_max,    I32 *)
  49.  
  50. PERLVAR(Tretstack,    OP **)        /* OPs we have postponed executing */
  51. PERLVAR(Tretstack_ix,    I32)
  52. PERLVAR(Tretstack_max,    I32)
  53.  
  54. PERLVAR(TSv,        SV *)        /* used to hold temporary values */
  55. PERLVAR(TXpv,        XPV *)        /* used to hold temporary values */
  56.  
  57. /*
  58. =for apidoc Amn|STRLEN|PL_na
  59.  
  60. A convenience variable which is typically used with C<SvPV> when one
  61. doesn't care about the length of the string.  It is usually more efficient
  62. to either declare a local variable and use that instead or to use the
  63. C<SvPV_nolen> macro.
  64.  
  65. =cut
  66. */
  67.  
  68. PERLVAR(Tna,        STRLEN)        /* for use in SvPV when length is
  69.                        Not Applicable */
  70.  
  71. /* stat stuff */
  72. PERLVAR(Tstatbuf,    Stat_t)
  73. PERLVAR(Tstatcache,    Stat_t)        /* _ */
  74. PERLVAR(Tstatgv,    GV *)
  75. PERLVARI(Tstatname,    SV *,    Nullsv)
  76.  
  77. #ifdef HAS_TIMES
  78. PERLVAR(Ttimesbuf,    struct tms)
  79. #endif
  80.  
  81. /* Fields used by magic variables such as $@, $/ and so on */
  82. PERLVAR(Ttainted,    bool)        /* using variables controlled by $< */
  83. PERLVAR(Tcurpm,        PMOP *)        /* what to do \ interps in REs from */
  84. PERLVAR(Tnrs,        SV *)
  85.  
  86. /*
  87. =for apidoc mn|SV*|PL_rs
  88.  
  89. The input record separator - C<$/> in Perl space.
  90.  
  91. =for apidoc mn|GV*|PL_last_in_gv
  92.  
  93. The GV which was last used for a filehandle input operation. (C<< <FH> >>)
  94.  
  95. =for apidoc mn|SV*|PL_ofs_sv
  96.  
  97. The output field separator - C<$,> in Perl space.
  98.  
  99. =cut
  100. */
  101.  
  102. PERLVAR(Trs,        SV *)        /* input record separator $/ */
  103. PERLVAR(Tlast_in_gv,    GV *)        /* GV used in last <FH> */
  104. PERLVAR(Tofs,        char *)        /* output field separator $, */
  105. PERLVAR(Tofslen,    STRLEN)
  106. PERLVAR(Tdefoutgv,    GV *)        /* default FH for output */
  107. PERLVARI(Tchopset,    char *,    " \n-")    /* $: */
  108. PERLVAR(Tformtarget,    SV *)
  109. PERLVAR(Tbodytarget,    SV *)
  110. PERLVAR(Ttoptarget,    SV *)
  111.  
  112. /* Stashes */
  113. PERLVAR(Tdefstash,    HV *)        /* main symbol table */
  114. PERLVAR(Tcurstash,    HV *)        /* symbol table for current package */
  115.  
  116. PERLVAR(Trestartop,    OP *)        /* propagating an error from croak? */
  117. PERLVARI(Tcurcop,    COP * VOL,    &PL_compiling)
  118. PERLVAR(Tin_eval,    VOL int)    /* trap "fatal" errors? */
  119. PERLVAR(Tdelaymagic,    int)        /* ($<,$>) = ... */
  120. PERLVARI(Tdirty,    bool, FALSE)    /* in the middle of tearing things down? */
  121. PERLVAR(Tlocalizing,    int)        /* are we processing a local() list? */
  122.  
  123. PERLVAR(Tcurstack,    AV *)        /* THE STACK */
  124. PERLVAR(Tcurstackinfo,    PERL_SI *)    /* current stack + context */
  125. PERLVAR(Tmainstack,    AV *)        /* the stack when nothing funny is happening */
  126.  
  127. PERLVAR(Ttop_env,    JMPENV *)    /* ptr. to current sigjmp() environment */
  128. PERLVAR(Tstart_env,    JMPENV)        /* empty startup sigjmp() environment */
  129. #ifdef PERL_FLEXIBLE_EXCEPTIONS
  130. PERLVARI(Tprotect,    protect_proc_t,    MEMBER_TO_FPTR(Perl_default_protect))
  131. #endif
  132. PERLVARI(Terrors,    SV *, Nullsv)    /* outstanding queued errors */
  133.  
  134. /* statics "owned" by various functions */
  135. PERLVAR(Tav_fetch_sv,    SV *)        /* owned by av_fetch() */
  136. PERLVAR(Thv_fetch_sv,    SV *)        /* owned by hv_fetch() */
  137. PERLVAR(Thv_fetch_ent_mh, HE)        /* owned by hv_fetch_ent() */
  138.  
  139. PERLVAR(Tmodcount,    I32)        /* how much mod()ification in assignment? */
  140.  
  141. PERLVAR(Tlastgotoprobe,    OP*)        /* from pp_ctl.c */
  142. PERLVARI(Tdumpindent,    I32, 4)        /* # of blanks per dump indentation level */
  143.  
  144. /* sort stuff */
  145. PERLVAR(Tsortcop,    OP *)        /* user defined sort routine */
  146. PERLVAR(Tsortstash,    HV *)        /* which is in some package or other */
  147. PERLVAR(Tfirstgv,    GV *)        /* $a */
  148. PERLVAR(Tsecondgv,    GV *)        /* $b */
  149. PERLVAR(Tsortcxix,    I32)        /* from pp_ctl.c */
  150.  
  151. /* float buffer */
  152. PERLVAR(Tefloatbuf,    char*)
  153. PERLVAR(Tefloatsize,    STRLEN)
  154.  
  155. /* regex stuff */
  156.  
  157. PERLVAR(Tscreamfirst,    I32 *)
  158. PERLVAR(Tscreamnext,    I32 *)
  159. PERLVARI(Tmaxscream,    I32,    -1)
  160. PERLVAR(Tlastscream,    SV *)
  161.  
  162. PERLVAR(Tregdummy,    regnode)    /* from regcomp.c */
  163. PERLVAR(Tregcomp_parse,    char*)        /* Input-scan pointer. */
  164. PERLVAR(Tregxend,    char*)        /* End of input for compile */
  165. PERLVAR(Tregcode,    regnode*)    /* Code-emit pointer; ®dummy = don't */
  166. PERLVAR(Tregnaughty,    I32)        /* How bad is this pattern? */
  167. PERLVAR(Tregsawback,    I32)        /* Did we see \1, ...? */
  168. PERLVAR(Tregprecomp,    char *)        /* uncompiled string. */
  169. PERLVAR(Tregnpar,    I32)        /* () count. */
  170. PERLVAR(Tregsize,    I32)        /* Code size. */
  171. PERLVAR(Tregflags,    U16)        /* are we folding, multilining? */
  172. PERLVAR(Tregseen,    U32)        /* from regcomp.c */
  173. PERLVAR(Tseen_zerolen,    I32)        /* from regcomp.c */
  174. PERLVAR(Tseen_evals,    I32)        /* from regcomp.c */
  175. PERLVAR(Tregcomp_rx,    regexp *)    /* from regcomp.c */
  176. PERLVAR(Textralen,    I32)        /* from regcomp.c */
  177. PERLVAR(Tcolorset,    int)        /* from regcomp.c */
  178. PERLVARA(Tcolors,6,    char *)        /* from regcomp.c */
  179. PERLVAR(Treg_whilem_seen, I32)        /* number of WHILEM in this expr */
  180. PERLVAR(Treginput,    char *)        /* String-input pointer. */
  181. PERLVAR(Tregbol,    char *)        /* Beginning of input, for ^ check. */
  182. PERLVAR(Tregeol,    char *)        /* End of input, for $ check. */
  183. PERLVAR(Tregstartp,    I32 *)        /* Pointer to startp array. */
  184. PERLVAR(Tregendp,    I32 *)        /* Ditto for endp. */
  185. PERLVAR(Treglastparen,    U32 *)        /* Similarly for lastparen. */
  186. PERLVAR(Tregtill,    char *)        /* How far we are required to go. */
  187. PERLVAR(Tregprev,    char)        /* char before regbol, \n if none */
  188. PERLVAR(Treg_start_tmp,    char **)    /* from regexec.c */
  189. PERLVAR(Treg_start_tmpl,U32)        /* from regexec.c */
  190. PERLVAR(Tregdata,    struct reg_data *)
  191.                     /* from regexec.c renamed was data */
  192. PERLVAR(Tbostr,        char *)        /* from regexec.c */
  193. PERLVAR(Treg_flags,    U32)        /* from regexec.c */
  194. PERLVAR(Treg_eval_set,    I32)        /* from regexec.c */
  195. PERLVAR(Tregnarrate,    I32)        /* from regexec.c */
  196. PERLVAR(Tregprogram,    regnode *)    /* from regexec.c */
  197. PERLVARI(Tregindent,    int,        0)    /* from regexec.c */
  198. PERLVAR(Tregcc,        CURCUR *)    /* from regexec.c */
  199. PERLVAR(Treg_call_cc,    struct re_cc_state *)    /* from regexec.c */
  200. PERLVAR(Treg_re,    regexp *)    /* from regexec.c */
  201. PERLVAR(Treg_ganch,    char *)        /* position of \G */
  202. PERLVAR(Treg_sv,    SV *)        /* what we match against */
  203. PERLVAR(Treg_magic,    MAGIC *)    /* pos-magic of what we match */
  204. PERLVAR(Treg_oldpos,    I32)        /* old pos of what we match */
  205. PERLVARI(Treg_oldcurpm,    PMOP*, NULL)    /* curpm before match */
  206. PERLVARI(Treg_curpm,    PMOP*, NULL)    /* curpm during match */
  207. PERLVAR(Treg_oldsaved,    char*)        /* old saved substr during match */
  208. PERLVAR(Treg_oldsavedlen, STRLEN)    /* old length of saved substr during match */
  209. PERLVAR(Treg_maxiter,    I32)        /* max wait until caching pos */
  210. PERLVAR(Treg_leftiter,    I32)        /* wait until caching pos */
  211. PERLVARI(Treg_poscache, char *, Nullch)    /* cache of pos of WHILEM */
  212. PERLVAR(Treg_poscache_size, STRLEN)    /* size of pos cache of WHILEM */
  213.  
  214. PERLVARI(Tregcompp,    regcomp_t, MEMBER_TO_FPTR(Perl_pregcomp))
  215.                     /* Pointer to REx compiler */
  216. PERLVARI(Tregexecp,    regexec_t, MEMBER_TO_FPTR(Perl_regexec_flags))
  217.                     /* Pointer to REx executer */
  218. PERLVARI(Tregint_start,    re_intuit_start_t, MEMBER_TO_FPTR(Perl_re_intuit_start))
  219.                     /* Pointer to optimized REx executer */
  220. PERLVARI(Tregint_string,re_intuit_string_t, MEMBER_TO_FPTR(Perl_re_intuit_string))
  221.                     /* Pointer to optimized REx string */
  222. PERLVARI(Tregfree,    regfree_t, MEMBER_TO_FPTR(Perl_pregfree))
  223.                     /* Pointer to REx free()er */
  224.  
  225. PERLVARI(Treginterp_cnt,int,        0)    /* Whether `Regexp'
  226.                            was interpolated. */
  227. PERLVARI(Treg_starttry,    char *,        0)    /* -Dr: where regtry was called. */
  228. PERLVARI(Twatchaddr,    char **,    0)
  229. PERLVAR(Twatchok,    char *)
  230.  
  231. /* Note that the variables below are all explicitly referenced in the code
  232.  * as thr->whatever and therefore don't need the 'T' prefix. */
  233.  
  234. #ifdef USE_THREADS
  235.  
  236. PERLVAR(oursv,        SV *)
  237. PERLVAR(cvcache,    HV *)
  238. PERLVAR(self,        perl_os_thread)    /* Underlying thread object */
  239. PERLVAR(flags,        U32)
  240. PERLVAR(threadsv,    AV *)        /* Per-thread SVs ($_, $@ etc.) */
  241. PERLVAR(threadsvp,    SV **)        /* AvARRAY(threadsv) */
  242. PERLVAR(specific,    AV *)        /* Thread-specific user data */
  243. PERLVAR(errsv,        SV *)        /* Backing SV for $@ */
  244. PERLVAR(mutex,        perl_mutex)    /* For the fields others can change */
  245. PERLVAR(tid,        U32)
  246. PERLVAR(prev,        struct perl_thread *)
  247. PERLVAR(next,        struct perl_thread *)
  248.                     /* Circular linked list of threads */
  249.  
  250. #ifdef HAVE_THREAD_INTERN
  251. PERLVAR(i,        struct thread_intern)
  252.                     /* Platform-dependent internals */
  253. #endif
  254.  
  255. PERLVAR(trailing_nul,    char)        /* For the sake of thrsv and oursv */
  256.  
  257. #endif /* USE_THREADS */
  258.