Commit | Line | Data |
49f531da |
1 | /* Per-thread variables */ |
2 | /* Important ones in the first cache line (if alignment is done right) */ |
3 | PERLVAR(Tstack_sp, SV **) |
4 | #ifdef OP_IN_REGISTER |
5 | PERLVAR(Topsave, OP *) |
6 | #else |
7 | PERLVAR(Top, OP *) |
8 | #endif |
9 | PERLVAR(Tcurpad, SV **) |
10 | PERLVAR(Tstack_base, SV **) |
11 | |
12 | PERLVAR(Tstack_max, SV **) |
13 | |
14 | PERLVAR(Tscopestack, I32 *) |
15 | PERLVAR(Tscopestack_ix, I32) |
16 | PERLVAR(Tscopestack_max,I32) |
17 | |
18 | PERLVAR(Tsavestack, ANY *) |
19 | PERLVAR(Tsavestack_ix, I32) |
20 | PERLVAR(Tsavestack_max, I32) |
21 | |
22 | PERLVAR(Tretstack, OP **) |
23 | PERLVAR(Tretstack_ix, I32) |
24 | PERLVAR(Tretstack_max, I32) |
25 | |
26 | PERLVAR(Tmarkstack, I32 *) |
27 | PERLVAR(Tmarkstack_ptr, I32 *) |
28 | PERLVAR(Tmarkstack_max, I32 *) |
29 | |
30 | PERLVAR(TSv, SV *) |
31 | PERLVAR(TXpv, XPV *) |
32 | PERLVAR(Tstatbuf, struct stat) |
33 | #ifdef HAS_TIMES |
34 | PERLVAR(Ttimesbuf, struct tms) |
35 | #endif |
36 | |
37 | /* XXX What about regexp stuff? */ |
38 | |
39 | /* Now the fields that used to be "per interpreter" (even when global) */ |
40 | |
41 | /* Fields used by magic variables such as $@, $/ and so on */ |
42 | PERLVAR(Ttainted, bool) |
43 | PERLVAR(Tcurpm, PMOP *) |
44 | PERLVAR(Tnrs, SV *) |
45 | PERLVAR(Trs, SV *) |
46 | PERLVAR(Tlast_in_gv, GV *) |
47 | PERLVAR(Tofs, char *) |
48 | PERLVAR(Tofslen, STRLEN) |
49 | PERLVAR(Tdefoutgv, GV *) |
50 | PERLVAR(Tchopset, char *) |
51 | PERLVAR(Tformtarget, SV *) |
52 | PERLVAR(Tbodytarget, SV *) |
53 | PERLVAR(Ttoptarget, SV *) |
54 | |
55 | /* Stashes */ |
56 | PERLVAR(Tdefstash, HV *) |
57 | PERLVAR(Tcurstash, HV *) |
58 | |
59 | /* Stacks */ |
60 | PERLVAR(Ttmps_stack, SV **) |
61 | PERLVAR(Ttmps_ix, I32) |
62 | PERLVAR(Ttmps_floor, I32) |
63 | PERLVAR(Ttmps_max, I32) |
64 | |
65 | PERLVAR(Tin_eval, int) |
66 | PERLVAR(Trestartop, OP *) |
67 | PERLVAR(Tdelaymagic, int) |
68 | PERLVAR(Tdirty, bool) |
69 | PERLVAR(Tlocalizing, U8) |
70 | PERLVAR(Tcurcop, COP *) |
71 | |
72 | PERLVAR(Tcxstack, PERL_CONTEXT *) |
73 | PERLVAR(Tcxstack_ix, I32) |
74 | PERLVAR(Tcxstack_max, I32) |
75 | |
76 | PERLVAR(Tcurstack, AV *) |
77 | PERLVAR(Tmainstack, AV *) |
78 | PERLVAR(Ttop_env, JMPENV *) |
79 | PERLVAR(Tstart_env, JMPENV) /* Top of top_env longjmp() chain */ |
80 | |
81 | /* XXX Sort stuff, firstgv secongv and so on? */ |
82 | |
83 | PERLVAR(oursv, SV *) |
84 | PERLVAR(cvcache, HV *) |
85 | PERLVAR(self, perl_os_thread) /* Underlying thread object */ |
86 | PERLVAR(flags, U32) |
87 | PERLVAR(threadsv, AV *) /* Per-thread SVs ($_, $@ etc.) */ |
88 | PERLVAR(specific, AV *) /* Thread-specific user data */ |
89 | PERLVAR(errsv, SV *) /* Backing SV for $@ */ |
90 | PERLVAR(errhv, HV *) /* HV for what was %@ in pp_ctl.c */ |
91 | PERLVAR(mutex, perl_mutex) /* For the fields others can change */ |
92 | PERLVAR(tid, U32) |
93 | PERLVAR(prev, struct perl_thread *) |
94 | PERLVAR(next, struct perl_thread *) /* Circular linked list of threads */ |
95 | |
96 | #ifdef HAVE_THREAD_INTERN |
97 | PERLVAR(i, struct thread_intern) /* Platform-dependent internals */ |
98 | #endif |
99 | |
100 | PERLVAR(trailing_nul, char) /* For the sake of thrsv and oursv */ |
101 | |