[asperl] fixups to make it build and pass tests under both compilers
[p5sagit/p5-mst-13.2.git] / thrdvar.h
index 4c69836..7c40481 100644 (file)
--- a/thrdvar.h
+++ b/thrdvar.h
@@ -1,4 +1,10 @@
-/* Per-thread variables */
+/* Don't forget to re-run embed.pl to propagate changes! */
+
+/* Per-thread variables
+   The 'T' prefix is only needed for vars that need appropriate #defines
+generated when built with or without USE_THREADS.  (It is also used
+to generate the appropriate the export list for win32.) */
+
 /* Important ones in the first cache line (if alignment is done right) */
 
 PERLVAR(Tstack_sp,     SV **)          
@@ -30,7 +36,7 @@ PERLVAR(Tmarkstack_max,       I32 *)
 
 PERLVAR(TSv,           SV *)           
 PERLVAR(TXpv,          XPV *)          
-PERLVAR(Tstatbuf,      struct stat)            
+PERLVAR(Tstatbuf,      Stat_t)         
 #ifdef HAS_TIMES
 PERLVAR(Ttimesbuf,     struct tms)             
 #endif
@@ -66,20 +72,26 @@ PERLVARI(Tcurcop,   COP * VOL,      &compiling)
 PERLVAR(Tin_eval,      VOL int)        /* trap "fatal" errors? */
 PERLVAR(Tdelaymagic,   int)            /* ($<,$>) = ... */
 PERLVAR(Tdirty,                bool)           /* In the middle of tearing things down? */
-PERLVAR(Tlocalizing,   U8)             /* are we processing a local() list? */
-
-PERLVAR(Tcxstack,      PERL_CONTEXT *)         
-PERLVARI(Tcxstack_ix,  I32,    -1)     
-PERLVARI(Tcxstack_max, I32,    128)    
+PERLVAR(Tlocalizing,   int)            /* are we processing a local() list? */
 
 PERLVAR(Tcurstack,     AV *)                   /* THE STACK */
+PERLVAR(Tcurstackinfo, PERL_SI *)              /* current stack + context */
 PERLVAR(Tmainstack,    AV *)                   /* the stack when nothing funny is happening */
 PERLVAR(Ttop_env,      JMPENV *)               /* ptr. to current sigjmp() environment */
 PERLVAR(Tstart_env,    JMPENV)                 /* empty startup sigjmp() environment */
 
+/* statics "owned" by various functions */
+PERLVAR(Tav_fetch_sv,  SV *)
+PERLVAR(Thv_fetch_sv,  SV *)
+PERLVAR(Thv_fetch_ent_mh, HE)
+PERLVAR(Tmodcount, I32)
+
 /* XXX Sort stuff, firstgv secongv and so on? */
 /* XXX What about regexp stuff? */
 
+/* Note that the variables below are all explicitly referenced in the code
+as thr->whatever and therefore don't need the 'T' prefix. */
+
 #ifdef USE_THREADS
 
 PERLVAR(oursv,         SV *)           
@@ -87,6 +99,7 @@ PERLVAR(cvcache,      HV *)
 PERLVAR(self,          perl_os_thread)         /* Underlying thread object */
 PERLVAR(flags,         U32)            
 PERLVAR(threadsv,      AV *)                   /* Per-thread SVs ($_, $@ etc.) */
+PERLVAR(threadsvp,     SV **)                  /* AvARRAY(threadsv) */
 PERLVAR(specific,      AV *)                   /* Thread-specific user data */
 PERLVAR(errsv,         SV *)                   /* Backing SV for $@ */
 PERLVAR(errhv,         HV *)                   /* HV for what was %@ in pp_ctl.c */