summaryrefslogtreecommitdiff
path: root/embedvar.h
blob: b68624ab69619c233ebf08439bfd06b026679bf7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
/* !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
   This file is built by embed.pl from global.sym, intrpvar.h,
   and thrdvar.h.  Any changes made here will be lost!
*/

/* (Doing namespace management portably in C is really gross.) */

/*  EMBED has no run-time penalty, but helps keep the Perl namespace
    from colliding with that used by other libraries pulled in
    by extensions or by embedding perl.  Allow a cc -DNO_EMBED
    override, however, to keep binary compatability with previous
    versions of perl.
*/


/* Put interpreter-specific symbols into a struct? */

#ifdef MULTIPLICITY

#ifndef USE_THREADS
/* If we do not have threads then per-thread vars are per-interpreter */

#define Sv			(curinterp->TSv)
#define Xpv			(curinterp->TXpv)
#define bodytarget		(curinterp->Tbodytarget)
#define chopset			(curinterp->Tchopset)
#define curcop			(curinterp->Tcurcop)
#define curpad			(curinterp->Tcurpad)
#define curpm			(curinterp->Tcurpm)
#define curstack		(curinterp->Tcurstack)
#define curstash		(curinterp->Tcurstash)
#define cxstack			(curinterp->Tcxstack)
#define cxstack_ix		(curinterp->Tcxstack_ix)
#define cxstack_max		(curinterp->Tcxstack_max)
#define defoutgv		(curinterp->Tdefoutgv)
#define defstash		(curinterp->Tdefstash)
#define delaymagic		(curinterp->Tdelaymagic)
#define dirty			(curinterp->Tdirty)
#define formtarget		(curinterp->Tformtarget)
#define in_eval			(curinterp->Tin_eval)
#define last_in_gv		(curinterp->Tlast_in_gv)
#define localizing		(curinterp->Tlocalizing)
#define mainstack		(curinterp->Tmainstack)
#define markstack		(curinterp->Tmarkstack)
#define markstack_max		(curinterp->Tmarkstack_max)
#define markstack_ptr		(curinterp->Tmarkstack_ptr)
#define nrs			(curinterp->Tnrs)
#define ofs			(curinterp->Tofs)
#define ofslen			(curinterp->Tofslen)
#define op			(curinterp->Top)
#define opsave			(curinterp->Topsave)
#define restartop		(curinterp->Trestartop)
#define retstack		(curinterp->Tretstack)
#define retstack_ix		(curinterp->Tretstack_ix)
#define retstack_max		(curinterp->Tretstack_max)
#define rs			(curinterp->Trs)
#define savestack		(curinterp->Tsavestack)
#define savestack_ix		(curinterp->Tsavestack_ix)
#define savestack_max		(curinterp->Tsavestack_max)
#define scopestack		(curinterp->Tscopestack)
#define scopestack_ix		(curinterp->Tscopestack_ix)
#define scopestack_max		(curinterp->Tscopestack_max)
#define stack_base		(curinterp->Tstack_base)
#define stack_max		(curinterp->Tstack_max)
#define stack_sp		(curinterp->Tstack_sp)
#define start_env		(curinterp->Tstart_env)
#define statbuf			(curinterp->Tstatbuf)
#define tainted			(curinterp->Ttainted)
#define timesbuf		(curinterp->Ttimesbuf)
#define tmps_floor		(curinterp->Ttmps_floor)
#define tmps_ix			(curinterp->Ttmps_ix)
#define tmps_max		(curinterp->Ttmps_max)
#define tmps_stack		(curinterp->Ttmps_stack)
#define top_env			(curinterp->Ttop_env)
#define toptarget		(curinterp->Ttoptarget)

#endif /* !USE_THREADS */

/* These are always per-interpreter if there is more than one */

#define Argv			(curinterp->IArgv)
#define Cmd			(curinterp->ICmd)
#define DBgv			(curinterp->IDBgv)
#define DBline			(curinterp->IDBline)
#define DBsignal		(curinterp->IDBsignal)
#define DBsingle		(curinterp->IDBsingle)
#define DBsub			(curinterp->IDBsub)
#define DBtrace			(curinterp->IDBtrace)
#define ampergv			(curinterp->Iampergv)
#define argvgv			(curinterp->Iargvgv)
#define argvoutgv		(curinterp->Iargvoutgv)
#define basetime		(curinterp->Ibasetime)
#define beginav			(curinterp->Ibeginav)
#define cddir			(curinterp->Icddir)
#define copline			(curinterp->Icopline)
#define curcopdb		(curinterp->Icurcopdb)
#define curstname		(curinterp->Icurstname)
#define dbargs			(curinterp->Idbargs)
#define debdelim		(curinterp->Idebdelim)
#define debname			(curinterp->Idebname)
#define debstash		(curinterp->Idebstash)
#define defgv			(curinterp->Idefgv)
#define diehook			(curinterp->Idiehook)
#define dlevel			(curinterp->Idlevel)
#define dlmax			(curinterp->Idlmax)
#define doextract		(curinterp->Idoextract)
#define doswitches		(curinterp->Idoswitches)
#define dowarn			(curinterp->Idowarn)
#define dumplvl			(curinterp->Idumplvl)
#define e_fp			(curinterp->Ie_fp)
#define e_tmpname		(curinterp->Ie_tmpname)
#define endav			(curinterp->Iendav)
#define envgv			(curinterp->Ienvgv)
#define errgv			(curinterp->Ierrgv)
#define eval_root		(curinterp->Ieval_root)
#define eval_start		(curinterp->Ieval_start)
#define fdpid			(curinterp->Ifdpid)
#define filemode		(curinterp->Ifilemode)
#define firstgv			(curinterp->Ifirstgv)
#define forkprocess		(curinterp->Iforkprocess)
#define formfeed		(curinterp->Iformfeed)
#define gensym			(curinterp->Igensym)
#define globalstash		(curinterp->Iglobalstash)
#define incgv			(curinterp->Iincgv)
#define initav			(curinterp->Iinitav)
#define inplace			(curinterp->Iinplace)
#define lastfd			(curinterp->Ilastfd)
#define lastscream		(curinterp->Ilastscream)
#define lastsize		(curinterp->Ilastsize)
#define lastspbase		(curinterp->Ilastspbase)
#define laststatval		(curinterp->Ilaststatval)
#define laststype		(curinterp->Ilaststype)
#define leftgv			(curinterp->Ileftgv)
#define lineary			(curinterp->Ilineary)
#define localpatches		(curinterp->Ilocalpatches)
#define main_cv			(curinterp->Imain_cv)
#define main_root		(curinterp->Imain_root)
#define main_start		(curinterp->Imain_start)
#define maxscream		(curinterp->Imaxscream)
#define maxsysfd		(curinterp->Imaxsysfd)
#define mess_sv			(curinterp->Imess_sv)
#define minus_F			(curinterp->Iminus_F)
#define minus_a			(curinterp->Iminus_a)
#define minus_c			(curinterp->Iminus_c)
#define minus_l			(curinterp->Iminus_l)
#define minus_n			(curinterp->Iminus_n)
#define minus_p			(curinterp->Iminus_p)
#define multiline		(curinterp->Imultiline)
#define mystrk			(curinterp->Imystrk)
#define ofmt			(curinterp->Iofmt)
#define oldlastpm		(curinterp->Ioldlastpm)
#define oldname			(curinterp->Ioldname)
#define op_mask			(curinterp->Iop_mask)
#define origargc		(curinterp->Iorigargc)
#define origargv		(curinterp->Iorigargv)
#define origfilename		(curinterp->Iorigfilename)
#define ors			(curinterp->Iors)
#define orslen			(curinterp->Iorslen)
#define parsehook		(curinterp->Iparsehook)
#define patchlevel		(curinterp->Ipatchlevel)
#define perl_destruct_level	(curinterp->Iperl_destruct_level)
#define perldb			(curinterp->Iperldb)
#define preambleav		(curinterp->Ipreambleav)
#define preambled		(curinterp->Ipreambled)
#define preprocess		(curinterp->Ipreprocess)
#define rightgv			(curinterp->Irightgv)
#define sawampersand		(curinterp->Isawampersand)
#define sawstudy		(curinterp->Isawstudy)
#define sawvec			(curinterp->Isawvec)
#define screamfirst		(curinterp->Iscreamfirst)
#define screamnext		(curinterp->Iscreamnext)
#define secondgv		(curinterp->Isecondgv)
#define siggv			(curinterp->Isiggv)
#define signalstack		(curinterp->Isignalstack)
#define sortcop			(curinterp->Isortcop)
#define sortstack		(curinterp->Isortstack)
#define sortstash		(curinterp->Isortstash)
#define splitstr		(curinterp->Isplitstr)
#define statcache		(curinterp->Istatcache)
#define statgv			(curinterp->Istatgv)
#define statname		(curinterp->Istatname)
#define statusvalue		(curinterp->Istatusvalue)
#define statusvalue_vms		(curinterp->Istatusvalue_vms)
#define stdingv			(curinterp->Istdingv)
#define strchop			(curinterp->Istrchop)
#define strtab			(curinterp->Istrtab)
#define sv_arenaroot		(curinterp->Isv_arenaroot)
#define sv_count		(curinterp->Isv_count)
#define sv_objcount		(curinterp->Isv_objcount)
#define sv_root			(curinterp->Isv_root)
#define tainting		(curinterp->Itainting)
#define thrsv			(curinterp->Ithrsv)
#define unsafe			(curinterp->Iunsafe)
#define warnhook		(curinterp->Iwarnhook)

#else	/* !MULTIPLICITY */

#define IArgv			Argv
#define ICmd			Cmd
#define IDBgv			DBgv
#define IDBline			DBline
#define IDBsignal		DBsignal
#define IDBsingle		DBsingle
#define IDBsub			DBsub
#define IDBtrace		DBtrace
#define Iampergv		ampergv
#define Iargvgv			argvgv
#define Iargvoutgv		argvoutgv
#define Ibasetime		basetime
#define Ibeginav		beginav
#define Icddir			cddir
#define Icopline		copline
#define Icurcopdb		curcopdb
#define Icurstname		curstname
#define Idbargs			dbargs
#define Idebdelim		debdelim
#define Idebname		debname
#define Idebstash		debstash
#define Idefgv			defgv
#define Idiehook		diehook
#define Idlevel			dlevel
#define Idlmax			dlmax
#define Idoextract		doextract
#define Idoswitches		doswitches
#define Idowarn			dowarn
#define Idumplvl		dumplvl
#define Ie_fp			e_fp
#define Ie_tmpname		e_tmpname
#define Iendav			endav
#define Ienvgv			envgv
#define Ierrgv			errgv
#define Ieval_root		eval_root
#define Ieval_start		eval_start
#define Ifdpid			fdpid
#define Ifilemode		filemode
#define Ifirstgv		firstgv
#define Iforkprocess		forkprocess
#define Iformfeed		formfeed
#define Igensym			gensym
#define Iglobalstash		globalstash
#define Iincgv			incgv
#define Iinitav			initav
#define Iinplace		inplace
#define Ilastfd			lastfd
#define Ilastscream		lastscream
#define Ilastsize		lastsize
#define Ilastspbase		lastspbase
#define Ilaststatval		laststatval
#define Ilaststype		laststype
#define Ileftgv			leftgv
#define Ilineary		lineary
#define Ilocalpatches		localpatches
#define Imain_cv		main_cv
#define Imain_root		main_root
#define Imain_start		main_start
#define Imaxscream		maxscream
#define Imaxsysfd		maxsysfd
#define Imess_sv		mess_sv
#define Iminus_F		minus_F
#define Iminus_a		minus_a
#define Iminus_c		minus_c
#define Iminus_l		minus_l
#define Iminus_n		minus_n
#define Iminus_p		minus_p
#define Imultiline		multiline
#define Imystrk			mystrk
#define Iofmt			ofmt
#define Ioldlastpm		oldlastpm
#define Ioldname		oldname
#define Iop_mask		op_mask
#define Iorigargc		origargc
#define Iorigargv		origargv
#define Iorigfilename		origfilename
#define Iors			ors
#define Iorslen			orslen
#define Iparsehook		parsehook
#define Ipatchlevel		patchlevel
#define Iperl_destruct_level	perl_destruct_level
#define Iperldb			perldb
#define Ipreambleav		preambleav
#define Ipreambled		preambled
#define Ipreprocess		preprocess
#define Irightgv		rightgv
#define Isawampersand		sawampersand
#define Isawstudy		sawstudy
#define Isawvec			sawvec
#define Iscreamfirst		screamfirst
#define Iscreamnext		screamnext
#define Isecondgv		secondgv
#define Isiggv			siggv
#define Isignalstack		signalstack
#define Isortcop		sortcop
#define Isortstack		sortstack
#define Isortstash		sortstash
#define Isplitstr		splitstr
#define Istatcache		statcache
#define Istatgv			statgv
#define Istatname		statname
#define Istatusvalue		statusvalue
#define Istatusvalue_vms	statusvalue_vms
#define Istdingv		stdingv
#define Istrchop		strchop
#define Istrtab			strtab
#define Isv_arenaroot		sv_arenaroot
#define Isv_count		sv_count
#define Isv_objcount		sv_objcount
#define Isv_root		sv_root
#define Itainting		tainting
#define Ithrsv			thrsv
#define Iunsafe			unsafe
#define Iwarnhook		warnhook

#ifndef USE_THREADS

#define TSv			Sv
#define TXpv			Xpv
#define Tbodytarget		bodytarget
#define Tchopset		chopset
#define Tcurcop			curcop
#define Tcurpad			curpad
#define Tcurpm			curpm
#define Tcurstack		curstack
#define Tcurstash		curstash
#define Tcxstack		cxstack
#define Tcxstack_ix		cxstack_ix
#define Tcxstack_max		cxstack_max
#define Tdefoutgv		defoutgv
#define Tdefstash		defstash
#define Tdelaymagic		delaymagic
#define Tdirty			dirty
#define Tformtarget		formtarget
#define Tin_eval		in_eval
#define Tlast_in_gv		last_in_gv
#define Tlocalizing		localizing
#define Tmainstack		mainstack
#define Tmarkstack		markstack
#define Tmarkstack_max		markstack_max
#define Tmarkstack_ptr		markstack_ptr
#define Tnrs			nrs
#define Tofs			ofs
#define Tofslen			ofslen
#define Top			op
#define Topsave			opsave
#define Trestartop		restartop
#define Tretstack		retstack
#define Tretstack_ix		retstack_ix
#define Tretstack_max		retstack_max
#define Trs			rs
#define Tsavestack		savestack
#define Tsavestack_ix		savestack_ix
#define Tsavestack_max		savestack_max
#define Tscopestack		scopestack
#define Tscopestack_ix		scopestack_ix
#define Tscopestack_max		scopestack_max
#define Tstack_base		stack_base
#define Tstack_max		stack_max
#define Tstack_sp		stack_sp
#define Tstart_env		start_env
#define Tstatbuf		statbuf
#define Ttainted		tainted
#define Ttimesbuf		timesbuf
#define Ttmps_floor		tmps_floor
#define Ttmps_ix		tmps_ix
#define Ttmps_max		tmps_max
#define Ttmps_stack		tmps_stack
#define Ttop_env		top_env
#define Ttoptarget		toptarget

#endif /* USE_THREADS */

/* Hide what would have been interpreter-specific symbols? */

#ifdef EMBED

#define Argv			Perl_Argv
#define Cmd			Perl_Cmd
#define DBgv			Perl_DBgv
#define DBline			Perl_DBline
#define DBsignal		Perl_DBsignal
#define DBsingle		Perl_DBsingle
#define DBsub			Perl_DBsub
#define DBtrace			Perl_DBtrace
#define ampergv			Perl_ampergv
#define argvgv			Perl_argvgv
#define argvoutgv		Perl_argvoutgv
#define basetime		Perl_basetime
#define beginav			Perl_beginav
#define cddir			Perl_cddir
#define copline			Perl_copline
#define curcopdb		Perl_curcopdb
#define curstname		Perl_curstname
#define dbargs			Perl_dbargs
#define debdelim		Perl_debdelim
#define debname			Perl_debname
#define debstash		Perl_debstash
#define defgv			Perl_defgv
#define diehook			Perl_diehook
#define dlevel			Perl_dlevel
#define dlmax			Perl_dlmax
#define doextract		Perl_doextract
#define doswitches		Perl_doswitches
#define dowarn			Perl_dowarn
#define dumplvl			Perl_dumplvl
#define e_fp			Perl_e_fp
#define e_tmpname		Perl_e_tmpname
#define endav			Perl_endav
#define envgv			Perl_envgv
#define errgv			Perl_errgv
#define eval_root		Perl_eval_root
#define eval_start		Perl_eval_start
#define fdpid			Perl_fdpid
#define filemode		Perl_filemode
#define firstgv			Perl_firstgv
#define forkprocess		Perl_forkprocess
#define formfeed		Perl_formfeed
#define gensym			Perl_gensym
#define globalstash		Perl_globalstash
#define incgv			Perl_incgv
#define initav			Perl_initav
#define inplace			Perl_inplace
#define lastfd			Perl_lastfd
#define lastscream		Perl_lastscream
#define lastsize		Perl_lastsize
#define lastspbase		Perl_lastspbase
#define laststatval		Perl_laststatval
#define laststype		Perl_laststype
#define leftgv			Perl_leftgv
#define lineary			Perl_lineary
#define localpatches		Perl_localpatches
#define main_cv			Perl_main_cv
#define main_root		Perl_main_root
#define main_start		Perl_main_start
#define maxscream		Perl_maxscream
#define maxsysfd		Perl_maxsysfd
#define mess_sv			Perl_mess_sv
#define minus_F			Perl_minus_F
#define minus_a			Perl_minus_a
#define minus_c			Perl_minus_c
#define minus_l			Perl_minus_l
#define minus_n			Perl_minus_n
#define minus_p			Perl_minus_p
#define multiline		Perl_multiline
#define mystrk			Perl_mystrk
#define ofmt			Perl_ofmt
#define oldlastpm		Perl_oldlastpm
#define oldname			Perl_oldname
#define op_mask			Perl_op_mask
#define origargc		Perl_origargc
#define origargv		Perl_origargv
#define origfilename		Perl_origfilename
#define ors			Perl_ors
#define orslen			Perl_orslen
#define parsehook		Perl_parsehook
#define patchlevel		Perl_patchlevel
#define perl_destruct_level	Perl_perl_destruct_level
#define perldb			Perl_perldb
#define preambleav		Perl_preambleav
#define preambled		Perl_preambled
#define preprocess		Perl_preprocess
#define rightgv			Perl_rightgv
#define sawampersand		Perl_sawampersand
#define sawstudy		Perl_sawstudy
#define sawvec			Perl_sawvec
#define screamfirst		Perl_screamfirst
#define screamnext		Perl_screamnext
#define secondgv		Perl_secondgv
#define siggv			Perl_siggv
#define signalstack		Perl_signalstack
#define sortcop			Perl_sortcop
#define sortstack		Perl_sortstack
#define sortstash		Perl_sortstash
#define splitstr		Perl_splitstr
#define statcache		Perl_statcache
#define statgv			Perl_statgv
#define statname		Perl_statname
#define statusvalue		Perl_statusvalue
#define statusvalue_vms		Perl_statusvalue_vms
#define stdingv			Perl_stdingv
#define strchop			Perl_strchop
#define strtab			Perl_strtab
#define sv_arenaroot		Perl_sv_arenaroot
#define sv_count		Perl_sv_count
#define sv_objcount		Perl_sv_objcount
#define sv_root			Perl_sv_root
#define tainting		Perl_tainting
#define thrsv			Perl_thrsv
#define unsafe			Perl_unsafe
#define warnhook		Perl_warnhook

#ifndef USE_THREADS

#define Sv			Perl_Sv
#define Xpv			Perl_Xpv
#define bodytarget		Perl_bodytarget
#define chopset			Perl_chopset
#define curcop			Perl_curcop
#define curpad			Perl_curpad
#define curpm			Perl_curpm
#define curstack		Perl_curstack
#define curstash		Perl_curstash
#define cxstack			Perl_cxstack
#define cxstack_ix		Perl_cxstack_ix
#define cxstack_max		Perl_cxstack_max
#define defoutgv		Perl_defoutgv
#define defstash		Perl_defstash
#define delaymagic		Perl_delaymagic
#define dirty			Perl_dirty
#define formtarget		Perl_formtarget
#define in_eval			Perl_in_eval
#define last_in_gv		Perl_last_in_gv
#define localizing		Perl_localizing
#define mainstack		Perl_mainstack
#define markstack		Perl_markstack
#define markstack_max		Perl_markstack_max
#define markstack_ptr		Perl_markstack_ptr
#define nrs			Perl_nrs
#define ofs			Perl_ofs
#define ofslen			Perl_ofslen
#define op			Perl_op
#define opsave			Perl_opsave
#define restartop		Perl_restartop
#define retstack		Perl_retstack
#define retstack_ix		Perl_retstack_ix
#define retstack_max		Perl_retstack_max
#define rs			Perl_rs
#define savestack		Perl_savestack
#define savestack_ix		Perl_savestack_ix
#define savestack_max		Perl_savestack_max
#define scopestack		Perl_scopestack
#define scopestack_ix		Perl_scopestack_ix
#define scopestack_max		Perl_scopestack_max
#define stack_base		Perl_stack_base
#define stack_max		Perl_stack_max
#define stack_sp		Perl_stack_sp
#define start_env		Perl_start_env
#define statbuf			Perl_statbuf
#define tainted			Perl_tainted
#define timesbuf		Perl_timesbuf
#define tmps_floor		Perl_tmps_floor
#define tmps_ix			Perl_tmps_ix
#define tmps_max		Perl_tmps_max
#define tmps_stack		Perl_tmps_stack
#define top_env			Perl_top_env
#define toptarget		Perl_toptarget

#endif /* USE_THREADS */
#endif /* EMBED */
#endif /* MULTIPLICITY */

/* Now same trickey for per-thread variables */

#ifdef USE_THREADS

#define Sv			(thr->TSv)
#define Xpv			(thr->TXpv)
#define bodytarget		(thr->Tbodytarget)
#define chopset			(thr->Tchopset)
#define curcop			(thr->Tcurcop)
#define curpad			(thr->Tcurpad)
#define curpm			(thr->Tcurpm)
#define curstack		(thr->Tcurstack)
#define curstash		(thr->Tcurstash)
#define cxstack			(thr->Tcxstack)
#define cxstack_ix		(thr->Tcxstack_ix)
#define cxstack_max		(thr->Tcxstack_max)
#define defoutgv		(thr->Tdefoutgv)
#define defstash		(thr->Tdefstash)
#define delaymagic		(thr->Tdelaymagic)
#define dirty			(thr->Tdirty)
#define formtarget		(thr->Tformtarget)
#define in_eval			(thr->Tin_eval)
#define last_in_gv		(thr->Tlast_in_gv)
#define localizing		(thr->Tlocalizing)
#define mainstack		(thr->Tmainstack)
#define markstack		(thr->Tmarkstack)
#define markstack_max		(thr->Tmarkstack_max)
#define markstack_ptr		(thr->Tmarkstack_ptr)
#define nrs			(thr->Tnrs)
#define ofs			(thr->Tofs)
#define ofslen			(thr->Tofslen)
#define op			(thr->Top)
#define opsave			(thr->Topsave)
#define restartop		(thr->Trestartop)
#define retstack		(thr->Tretstack)
#define retstack_ix		(thr->Tretstack_ix)
#define retstack_max		(thr->Tretstack_max)
#define rs			(thr->Trs)
#define savestack		(thr->Tsavestack)
#define savestack_ix		(thr->Tsavestack_ix)
#define savestack_max		(thr->Tsavestack_max)
#define scopestack		(thr->Tscopestack)
#define scopestack_ix		(thr->Tscopestack_ix)
#define scopestack_max		(thr->Tscopestack_max)
#define stack_base		(thr->Tstack_base)
#define stack_max		(thr->Tstack_max)
#define stack_sp		(thr->Tstack_sp)
#define start_env		(thr->Tstart_env)
#define statbuf			(thr->Tstatbuf)
#define tainted			(thr->Ttainted)
#define timesbuf		(thr->Ttimesbuf)
#define tmps_floor		(thr->Ttmps_floor)
#define tmps_ix			(thr->Ttmps_ix)
#define tmps_max		(thr->Ttmps_max)
#define tmps_stack		(thr->Ttmps_stack)
#define top_env			(thr->Ttop_env)
#define toptarget		(thr->Ttoptarget)

#endif /* USE_THREADS */