Commit | Line | Data |
---|---|---|
49f531da NIS |
1 | /* Per-thread variables */ |
2 | /* Important ones in the first cache line (if alignment is done right) */ | |
d4cce5f1 | 3 | |
49f531da NIS |
4 | PERLVAR(Tstack_sp, SV **) |
5 | #ifdef OP_IN_REGISTER | |
6 | PERLVAR(Topsave, OP *) | |
7 | #else | |
8 | PERLVAR(Top, OP *) | |
9 | #endif | |
10 | PERLVAR(Tcurpad, SV **) | |
49f531da | 11 | |
d4cce5f1 | 12 | PERLVAR(Tstack_base, SV **) |
49f531da NIS |
13 | PERLVAR(Tstack_max, SV **) |
14 | ||
15 | PERLVAR(Tscopestack, I32 *) | |
16 | PERLVAR(Tscopestack_ix, I32) | |
17 | PERLVAR(Tscopestack_max,I32) | |
18 | ||
19 | PERLVAR(Tsavestack, ANY *) | |
20 | PERLVAR(Tsavestack_ix, I32) | |
21 | PERLVAR(Tsavestack_max, I32) | |
22 | ||
23 | PERLVAR(Tretstack, OP **) | |
24 | PERLVAR(Tretstack_ix, I32) | |
25 | PERLVAR(Tretstack_max, I32) | |
26 | ||
27 | PERLVAR(Tmarkstack, I32 *) | |
28 | PERLVAR(Tmarkstack_ptr, I32 *) | |
29 | PERLVAR(Tmarkstack_max, I32 *) | |
30 | ||
d4cce5f1 NIS |
31 | PERLVAR(TSv, SV *) |
32 | PERLVAR(TXpv, XPV *) | |
61bb5906 | 33 | PERLVAR(Tstatbuf, Stat_t) |
49f531da NIS |
34 | #ifdef HAS_TIMES |
35 | PERLVAR(Ttimesbuf, struct tms) | |
36 | #endif | |
37 | ||
49f531da NIS |
38 | /* Now the fields that used to be "per interpreter" (even when global) */ |
39 | ||
40 | /* Fields used by magic variables such as $@, $/ and so on */ | |
d4cce5f1 NIS |
41 | PERLVAR(Ttainted, bool) /* using variables controlled by $< */ |
42 | PERLVAR(Tcurpm, PMOP *) /* what to do \ interps from */ | |
49f531da | 43 | PERLVAR(Tnrs, SV *) |
d4cce5f1 | 44 | PERLVAR(Trs, SV *) /* $/ */ |
49f531da | 45 | PERLVAR(Tlast_in_gv, GV *) |
d4cce5f1 | 46 | PERLVAR(Tofs, char *) /* $, */ |
49f531da NIS |
47 | PERLVAR(Tofslen, STRLEN) |
48 | PERLVAR(Tdefoutgv, GV *) | |
d4cce5f1 | 49 | PERLVARI(Tchopset, char *, " \n-") /* $: */ |
49f531da NIS |
50 | PERLVAR(Tformtarget, SV *) |
51 | PERLVAR(Tbodytarget, SV *) | |
52 | PERLVAR(Ttoptarget, SV *) | |
53 | ||
d4cce5f1 NIS |
54 | /* Stashes */ |
55 | PERLVAR(Tdefstash, HV *) /* main symbol table */ | |
56 | PERLVAR(Tcurstash, HV *) /* symbol table for current package */ | |
49f531da | 57 | |
d4cce5f1 | 58 | /* Stacks */ |
49f531da | 59 | PERLVAR(Ttmps_stack, SV **) |
d4cce5f1 NIS |
60 | PERLVARI(Ttmps_ix, I32, -1) |
61 | PERLVARI(Ttmps_floor, I32, -1) | |
49f531da NIS |
62 | PERLVAR(Ttmps_max, I32) |
63 | ||
d4cce5f1 NIS |
64 | PERLVAR(Trestartop, OP *) /* Are we propagating an error from croak? */ |
65 | PERLVARI(Tcurcop, COP * VOL, &compiling) | |
66 | PERLVAR(Tin_eval, VOL int) /* trap "fatal" errors? */ | |
67 | PERLVAR(Tdelaymagic, int) /* ($<,$>) = ... */ | |
68 | PERLVAR(Tdirty, bool) /* In the middle of tearing things down? */ | |
61bb5906 | 69 | PERLVAR(Tlocalizing, int) /* are we processing a local() list? */ |
49f531da | 70 | |
d4cce5f1 | 71 | PERLVAR(Tcurstack, AV *) /* THE STACK */ |
e336de0d | 72 | PERLVAR(Tcurstackinfo, PERL_SI *) /* current stack + context */ |
d4cce5f1 NIS |
73 | PERLVAR(Tmainstack, AV *) /* the stack when nothing funny is happening */ |
74 | PERLVAR(Ttop_env, JMPENV *) /* ptr. to current sigjmp() environment */ | |
75 | PERLVAR(Tstart_env, JMPENV) /* empty startup sigjmp() environment */ | |
49f531da | 76 | |
4e4c362e GS |
77 | /* statics "owned" by various functions */ |
78 | PERLVAR(Tav_fetch_sv, SV *) | |
79 | PERLVAR(Thv_fetch_sv, SV *) | |
80 | PERLVAR(Thv_fetch_ent_mh, HE) | |
81 | ||
49f531da | 82 | /* XXX Sort stuff, firstgv secongv and so on? */ |
d4cce5f1 NIS |
83 | /* XXX What about regexp stuff? */ |
84 | ||
85 | #ifdef USE_THREADS | |
49f531da NIS |
86 | |
87 | PERLVAR(oursv, SV *) | |
88 | PERLVAR(cvcache, HV *) | |
89 | PERLVAR(self, perl_os_thread) /* Underlying thread object */ | |
90 | PERLVAR(flags, U32) | |
91 | PERLVAR(threadsv, AV *) /* Per-thread SVs ($_, $@ etc.) */ | |
940cb80d | 92 | PERLVAR(threadsvp, SV **) /* AvARRAY(threadsv) */ |
49f531da NIS |
93 | PERLVAR(specific, AV *) /* Thread-specific user data */ |
94 | PERLVAR(errsv, SV *) /* Backing SV for $@ */ | |
95 | PERLVAR(errhv, HV *) /* HV for what was %@ in pp_ctl.c */ | |
96 | PERLVAR(mutex, perl_mutex) /* For the fields others can change */ | |
97 | PERLVAR(tid, U32) | |
98 | PERLVAR(prev, struct perl_thread *) | |
99 | PERLVAR(next, struct perl_thread *) /* Circular linked list of threads */ | |
100 | ||
101 | #ifdef HAVE_THREAD_INTERN | |
102 | PERLVAR(i, struct thread_intern) /* Platform-dependent internals */ | |
103 | #endif | |
104 | ||
105 | PERLVAR(trailing_nul, char) /* For the sake of thrsv and oursv */ | |
106 | ||
d4cce5f1 | 107 | #endif /* USE_THREADS */ |