Commit | Line | Data |
49f531da |
1 | /* Per-thread variables */ |
2 | /* Important ones in the first cache line (if alignment is done right) */ |
d4cce5f1 |
3 | |
49f531da |
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 |
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 |
31 | PERLVAR(TSv, SV *) |
32 | PERLVAR(TXpv, XPV *) |
61bb5906 |
33 | PERLVAR(Tstatbuf, Stat_t) |
49f531da |
34 | #ifdef HAS_TIMES |
35 | PERLVAR(Ttimesbuf, struct tms) |
36 | #endif |
37 | |
49f531da |
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 |
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 |
47 | PERLVAR(Tofslen, STRLEN) |
48 | PERLVAR(Tdefoutgv, GV *) |
d4cce5f1 |
49 | PERLVARI(Tchopset, char *, " \n-") /* $: */ |
49f531da |
50 | PERLVAR(Tformtarget, SV *) |
51 | PERLVAR(Tbodytarget, SV *) |
52 | PERLVAR(Ttoptarget, SV *) |
53 | |
d4cce5f1 |
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 |
60 | PERLVARI(Ttmps_ix, I32, -1) |
61 | PERLVARI(Ttmps_floor, I32, -1) |
49f531da |
62 | PERLVAR(Ttmps_max, I32) |
63 | |
d4cce5f1 |
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 | |
71 | PERLVAR(Tcxstack, PERL_CONTEXT *) |
d4cce5f1 |
72 | PERLVARI(Tcxstack_ix, I32, -1) |
73 | PERLVARI(Tcxstack_max, I32, 128) |
49f531da |
74 | |
d4cce5f1 |
75 | PERLVAR(Tcurstack, AV *) /* THE STACK */ |
76 | PERLVAR(Tmainstack, AV *) /* the stack when nothing funny is happening */ |
77 | PERLVAR(Ttop_env, JMPENV *) /* ptr. to current sigjmp() environment */ |
78 | PERLVAR(Tstart_env, JMPENV) /* empty startup sigjmp() environment */ |
49f531da |
79 | |
80 | /* XXX Sort stuff, firstgv secongv and so on? */ |
d4cce5f1 |
81 | /* XXX What about regexp stuff? */ |
82 | |
83 | #ifdef USE_THREADS |
49f531da |
84 | |
85 | PERLVAR(oursv, SV *) |
86 | PERLVAR(cvcache, HV *) |
87 | PERLVAR(self, perl_os_thread) /* Underlying thread object */ |
88 | PERLVAR(flags, U32) |
89 | PERLVAR(threadsv, AV *) /* Per-thread SVs ($_, $@ etc.) */ |
940cb80d |
90 | PERLVAR(threadsvp, SV **) /* AvARRAY(threadsv) */ |
49f531da |
91 | PERLVAR(specific, AV *) /* Thread-specific user data */ |
92 | PERLVAR(errsv, SV *) /* Backing SV for $@ */ |
93 | PERLVAR(errhv, HV *) /* HV for what was %@ in pp_ctl.c */ |
94 | PERLVAR(mutex, perl_mutex) /* For the fields others can change */ |
95 | PERLVAR(tid, U32) |
96 | PERLVAR(prev, struct perl_thread *) |
97 | PERLVAR(next, struct perl_thread *) /* Circular linked list of threads */ |
98 | |
99 | #ifdef HAVE_THREAD_INTERN |
100 | PERLVAR(i, struct thread_intern) /* Platform-dependent internals */ |
101 | #endif |
102 | |
103 | PERLVAR(trailing_nul, char) /* For the sake of thrsv and oursv */ |
104 | |
d4cce5f1 |
105 | #endif /* USE_THREADS */ |