summaryrefslogtreecommitdiff
path: root/embedvar.h
blob: ae37202410224451f99b95edf13beefab3b54546 (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
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
/* !!!!!!!   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 PL_Sv			(curinterp->TSv)
#define PL_Xpv			(curinterp->TXpv)
#define PL_av_fetch_sv		(curinterp->Tav_fetch_sv)
#define PL_bodytarget		(curinterp->Tbodytarget)
#define PL_bostr		(curinterp->Tbostr)
#define PL_chopset		(curinterp->Tchopset)
#define PL_colors		(curinterp->Tcolors)
#define PL_colorset		(curinterp->Tcolorset)
#define PL_curcop		(curinterp->Tcurcop)
#define PL_curpad		(curinterp->Tcurpad)
#define PL_curpm		(curinterp->Tcurpm)
#define PL_curstack		(curinterp->Tcurstack)
#define PL_curstackinfo		(curinterp->Tcurstackinfo)
#define PL_curstash		(curinterp->Tcurstash)
#define PL_defoutgv		(curinterp->Tdefoutgv)
#define PL_defstash		(curinterp->Tdefstash)
#define PL_delaymagic		(curinterp->Tdelaymagic)
#define PL_dirty		(curinterp->Tdirty)
#define PL_extralen		(curinterp->Textralen)
#define PL_firstgv		(curinterp->Tfirstgv)
#define PL_formtarget		(curinterp->Tformtarget)
#define PL_hv_fetch_ent_mh	(curinterp->Thv_fetch_ent_mh)
#define PL_hv_fetch_sv		(curinterp->Thv_fetch_sv)
#define PL_in_eval		(curinterp->Tin_eval)
#define PL_last_in_gv		(curinterp->Tlast_in_gv)
#define PL_lastgotoprobe	(curinterp->Tlastgotoprobe)
#define PL_lastscream		(curinterp->Tlastscream)
#define PL_localizing		(curinterp->Tlocalizing)
#define PL_mainstack		(curinterp->Tmainstack)
#define PL_markstack		(curinterp->Tmarkstack)
#define PL_markstack_max	(curinterp->Tmarkstack_max)
#define PL_markstack_ptr	(curinterp->Tmarkstack_ptr)
#define PL_maxscream		(curinterp->Tmaxscream)
#define PL_modcount		(curinterp->Tmodcount)
#define PL_nrs			(curinterp->Tnrs)
#define PL_ofs			(curinterp->Tofs)
#define PL_ofslen		(curinterp->Tofslen)
#define PL_op			(curinterp->Top)
#define PL_opsave		(curinterp->Topsave)
#define PL_reg_eval_set		(curinterp->Treg_eval_set)
#define PL_reg_flags		(curinterp->Treg_flags)
#define PL_reg_start_tmp	(curinterp->Treg_start_tmp)
#define PL_reg_start_tmpl	(curinterp->Treg_start_tmpl)
#define PL_regbol		(curinterp->Tregbol)
#define PL_regcc		(curinterp->Tregcc)
#define PL_regcode		(curinterp->Tregcode)
#define PL_regcomp_parse	(curinterp->Tregcomp_parse)
#define PL_regcomp_rx		(curinterp->Tregcomp_rx)
#define PL_regcompp		(curinterp->Tregcompp)
#define PL_regdata		(curinterp->Tregdata)
#define PL_regdummy		(curinterp->Tregdummy)
#define PL_regendp		(curinterp->Tregendp)
#define PL_regeol		(curinterp->Tregeol)
#define PL_regexecp		(curinterp->Tregexecp)
#define PL_regflags		(curinterp->Tregflags)
#define PL_regindent		(curinterp->Tregindent)
#define PL_reginput		(curinterp->Treginput)
#define PL_reginterp_cnt	(curinterp->Treginterp_cnt)
#define PL_reglastparen		(curinterp->Treglastparen)
#define PL_regnarrate		(curinterp->Tregnarrate)
#define PL_regnaughty		(curinterp->Tregnaughty)
#define PL_regnpar		(curinterp->Tregnpar)
#define PL_regprecomp		(curinterp->Tregprecomp)
#define PL_regprev		(curinterp->Tregprev)
#define PL_regprogram		(curinterp->Tregprogram)
#define PL_regsawback		(curinterp->Tregsawback)
#define PL_regseen		(curinterp->Tregseen)
#define PL_regsize		(curinterp->Tregsize)
#define PL_regstartp		(curinterp->Tregstartp)
#define PL_regtill		(curinterp->Tregtill)
#define PL_regxend		(curinterp->Tregxend)
#define PL_restartop		(curinterp->Trestartop)
#define PL_retstack		(curinterp->Tretstack)
#define PL_retstack_ix		(curinterp->Tretstack_ix)
#define PL_retstack_max		(curinterp->Tretstack_max)
#define PL_rs			(curinterp->Trs)
#define PL_savestack		(curinterp->Tsavestack)
#define PL_savestack_ix		(curinterp->Tsavestack_ix)
#define PL_savestack_max	(curinterp->Tsavestack_max)
#define PL_scopestack		(curinterp->Tscopestack)
#define PL_scopestack_ix	(curinterp->Tscopestack_ix)
#define PL_scopestack_max	(curinterp->Tscopestack_max)
#define PL_screamfirst		(curinterp->Tscreamfirst)
#define PL_screamnext		(curinterp->Tscreamnext)
#define PL_secondgv		(curinterp->Tsecondgv)
#define PL_seen_evals		(curinterp->Tseen_evals)
#define PL_seen_zerolen		(curinterp->Tseen_zerolen)
#define PL_sortcop		(curinterp->Tsortcop)
#define PL_sortcxix		(curinterp->Tsortcxix)
#define PL_sortstash		(curinterp->Tsortstash)
#define PL_stack_base		(curinterp->Tstack_base)
#define PL_stack_max		(curinterp->Tstack_max)
#define PL_stack_sp		(curinterp->Tstack_sp)
#define PL_start_env		(curinterp->Tstart_env)
#define PL_statbuf		(curinterp->Tstatbuf)
#define PL_statcache		(curinterp->Tstatcache)
#define PL_statgv		(curinterp->Tstatgv)
#define PL_statname		(curinterp->Tstatname)
#define PL_tainted		(curinterp->Ttainted)
#define PL_timesbuf		(curinterp->Ttimesbuf)
#define PL_tmps_floor		(curinterp->Ttmps_floor)
#define PL_tmps_ix		(curinterp->Ttmps_ix)
#define PL_tmps_max		(curinterp->Ttmps_max)
#define PL_tmps_stack		(curinterp->Ttmps_stack)
#define PL_top_env		(curinterp->Ttop_env)
#define PL_toptarget		(curinterp->Ttoptarget)

#endif /* !USE_THREADS */

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

#define PL_Argv			(curinterp->IArgv)
#define PL_Cmd			(curinterp->ICmd)
#define PL_DBcv			(curinterp->IDBcv)
#define PL_DBgv			(curinterp->IDBgv)
#define PL_DBline		(curinterp->IDBline)
#define PL_DBsignal		(curinterp->IDBsignal)
#define PL_DBsingle		(curinterp->IDBsingle)
#define PL_DBsub		(curinterp->IDBsub)
#define PL_DBtrace		(curinterp->IDBtrace)
#define PL_ampergv		(curinterp->Iampergv)
#define PL_archpat_auto		(curinterp->Iarchpat_auto)
#define PL_argvgv		(curinterp->Iargvgv)
#define PL_argvoutgv		(curinterp->Iargvoutgv)
#define PL_basetime		(curinterp->Ibasetime)
#define PL_beginav		(curinterp->Ibeginav)
#define PL_cddir		(curinterp->Icddir)
#define PL_compcv		(curinterp->Icompcv)
#define PL_compiling		(curinterp->Icompiling)
#define PL_comppad		(curinterp->Icomppad)
#define PL_comppad_name		(curinterp->Icomppad_name)
#define PL_comppad_name_fill	(curinterp->Icomppad_name_fill)
#define PL_comppad_name_floor	(curinterp->Icomppad_name_floor)
#define PL_copline		(curinterp->Icopline)
#define PL_curcopdb		(curinterp->Icurcopdb)
#define PL_curstname		(curinterp->Icurstname)
#define PL_dbargs		(curinterp->Idbargs)
#define PL_debdelim		(curinterp->Idebdelim)
#define PL_debname		(curinterp->Idebname)
#define PL_debstash		(curinterp->Idebstash)
#define PL_defgv		(curinterp->Idefgv)
#define PL_diehook		(curinterp->Idiehook)
#define PL_dlevel		(curinterp->Idlevel)
#define PL_dlmax		(curinterp->Idlmax)
#define PL_doextract		(curinterp->Idoextract)
#define PL_doswitches		(curinterp->Idoswitches)
#define PL_dowarn		(curinterp->Idowarn)
#define PL_dumplvl		(curinterp->Idumplvl)
#define PL_e_script		(curinterp->Ie_script)
#define PL_endav		(curinterp->Iendav)
#define PL_envgv		(curinterp->Ienvgv)
#define PL_errgv		(curinterp->Ierrgv)
#define PL_eval_root		(curinterp->Ieval_root)
#define PL_eval_start		(curinterp->Ieval_start)
#define PL_exitlist		(curinterp->Iexitlist)
#define PL_exitlistlen		(curinterp->Iexitlistlen)
#define PL_fdpid		(curinterp->Ifdpid)
#define PL_filemode		(curinterp->Ifilemode)
#define PL_forkprocess		(curinterp->Iforkprocess)
#define PL_formfeed		(curinterp->Iformfeed)
#define PL_generation		(curinterp->Igeneration)
#define PL_gensym		(curinterp->Igensym)
#define PL_globalstash		(curinterp->Iglobalstash)
#define PL_hintgv		(curinterp->Ihintgv)
#define PL_in_clean_all		(curinterp->Iin_clean_all)
#define PL_in_clean_objs	(curinterp->Iin_clean_objs)
#define PL_incgv		(curinterp->Iincgv)
#define PL_initav		(curinterp->Iinitav)
#define PL_inplace		(curinterp->Iinplace)
#define PL_last_proto		(curinterp->Ilast_proto)
#define PL_lastfd		(curinterp->Ilastfd)
#define PL_lastsize		(curinterp->Ilastsize)
#define PL_lastspbase		(curinterp->Ilastspbase)
#define PL_laststatval		(curinterp->Ilaststatval)
#define PL_laststype		(curinterp->Ilaststype)
#define PL_leftgv		(curinterp->Ileftgv)
#define PL_lineary		(curinterp->Ilineary)
#define PL_linestart		(curinterp->Ilinestart)
#define PL_localpatches		(curinterp->Ilocalpatches)
#define PL_main_cv		(curinterp->Imain_cv)
#define PL_main_root		(curinterp->Imain_root)
#define PL_main_start		(curinterp->Imain_start)
#define PL_maxsysfd		(curinterp->Imaxsysfd)
#define PL_mess_sv		(curinterp->Imess_sv)
#define PL_minus_F		(curinterp->Iminus_F)
#define PL_minus_a		(curinterp->Iminus_a)
#define PL_minus_c		(curinterp->Iminus_c)
#define PL_minus_l		(curinterp->Iminus_l)
#define PL_minus_n		(curinterp->Iminus_n)
#define PL_minus_p		(curinterp->Iminus_p)
#define PL_modglobal		(curinterp->Imodglobal)
#define PL_multiline		(curinterp->Imultiline)
#define PL_mystrk		(curinterp->Imystrk)
#define PL_ofmt			(curinterp->Iofmt)
#define PL_oldlastpm		(curinterp->Ioldlastpm)
#define PL_oldname		(curinterp->Ioldname)
#define PL_op_mask		(curinterp->Iop_mask)
#define PL_origargc		(curinterp->Iorigargc)
#define PL_origargv		(curinterp->Iorigargv)
#define PL_origfilename		(curinterp->Iorigfilename)
#define PL_ors			(curinterp->Iors)
#define PL_orslen		(curinterp->Iorslen)
#define PL_parsehook		(curinterp->Iparsehook)
#define PL_patchlevel		(curinterp->Ipatchlevel)
#define PL_pending_ident	(curinterp->Ipending_ident)
#define PL_perl_destruct_level	(curinterp->Iperl_destruct_level)
#define PL_perldb		(curinterp->Iperldb)
#define PL_preambleav		(curinterp->Ipreambleav)
#define PL_preambled		(curinterp->Ipreambled)
#define PL_preprocess		(curinterp->Ipreprocess)
#define PL_profiledata		(curinterp->Iprofiledata)
#define PL_replgv		(curinterp->Ireplgv)
#define PL_rightgv		(curinterp->Irightgv)
#define PL_rsfp			(curinterp->Irsfp)
#define PL_rsfp_filters		(curinterp->Irsfp_filters)
#define PL_sawampersand		(curinterp->Isawampersand)
#define PL_sawstudy		(curinterp->Isawstudy)
#define PL_sawvec		(curinterp->Isawvec)
#define PL_siggv		(curinterp->Isiggv)
#define PL_splitstr		(curinterp->Isplitstr)
#define PL_statusvalue		(curinterp->Istatusvalue)
#define PL_statusvalue_vms	(curinterp->Istatusvalue_vms)
#define PL_stdingv		(curinterp->Istdingv)
#define PL_strchop		(curinterp->Istrchop)
#define PL_strtab		(curinterp->Istrtab)
#define PL_sub_generation	(curinterp->Isub_generation)
#define PL_sublex_info		(curinterp->Isublex_info)
#define PL_sv_arenaroot		(curinterp->Isv_arenaroot)
#define PL_sv_count		(curinterp->Isv_count)
#define PL_sv_objcount		(curinterp->Isv_objcount)
#define PL_sv_root		(curinterp->Isv_root)
#define PL_sys_intern		(curinterp->Isys_intern)
#define PL_tainting		(curinterp->Itainting)
#define PL_threadnum		(curinterp->Ithreadnum)
#define PL_thrsv		(curinterp->Ithrsv)
#define PL_unsafe		(curinterp->Iunsafe)
#define PL_warnhook		(curinterp->Iwarnhook)

#else	/* !MULTIPLICITY */

#define IArgv			PL_Argv
#define ICmd			PL_Cmd
#define IDBcv			PL_DBcv
#define IDBgv			PL_DBgv
#define IDBline			PL_DBline
#define IDBsignal		PL_DBsignal
#define IDBsingle		PL_DBsingle
#define IDBsub			PL_DBsub
#define IDBtrace		PL_DBtrace
#define Iampergv		PL_ampergv
#define Iarchpat_auto		PL_archpat_auto
#define Iargvgv			PL_argvgv
#define Iargvoutgv		PL_argvoutgv
#define Ibasetime		PL_basetime
#define Ibeginav		PL_beginav
#define Icddir			PL_cddir
#define Icompcv			PL_compcv
#define Icompiling		PL_compiling
#define Icomppad		PL_comppad
#define Icomppad_name		PL_comppad_name
#define Icomppad_name_fill	PL_comppad_name_fill
#define Icomppad_name_floor	PL_comppad_name_floor
#define Icopline		PL_copline
#define Icurcopdb		PL_curcopdb
#define Icurstname		PL_curstname
#define Idbargs			PL_dbargs
#define Idebdelim		PL_debdelim
#define Idebname		PL_debname
#define Idebstash		PL_debstash
#define Idefgv			PL_defgv
#define Idiehook		PL_diehook
#define Idlevel			PL_dlevel
#define Idlmax			PL_dlmax
#define Idoextract		PL_doextract
#define Idoswitches		PL_doswitches
#define Idowarn			PL_dowarn
#define Idumplvl		PL_dumplvl
#define Ie_script		PL_e_script
#define Iendav			PL_endav
#define Ienvgv			PL_envgv
#define Ierrgv			PL_errgv
#define Ieval_root		PL_eval_root
#define Ieval_start		PL_eval_start
#define Iexitlist		PL_exitlist
#define Iexitlistlen		PL_exitlistlen
#define Ifdpid			PL_fdpid
#define Ifilemode		PL_filemode
#define Iforkprocess		PL_forkprocess
#define Iformfeed		PL_formfeed
#define Igeneration		PL_generation
#define Igensym			PL_gensym
#define Iglobalstash		PL_globalstash
#define Ihintgv			PL_hintgv
#define Iin_clean_all		PL_in_clean_all
#define Iin_clean_objs		PL_in_clean_objs
#define Iincgv			PL_incgv
#define Iinitav			PL_initav
#define Iinplace		PL_inplace
#define Ilast_proto		PL_last_proto
#define Ilastfd			PL_lastfd
#define Ilastsize		PL_lastsize
#define Ilastspbase		PL_lastspbase
#define Ilaststatval		PL_laststatval
#define Ilaststype		PL_laststype
#define Ileftgv			PL_leftgv
#define Ilineary		PL_lineary
#define Ilinestart		PL_linestart
#define Ilocalpatches		PL_localpatches
#define Imain_cv		PL_main_cv
#define Imain_root		PL_main_root
#define Imain_start		PL_main_start
#define Imaxsysfd		PL_maxsysfd
#define Imess_sv		PL_mess_sv
#define Iminus_F		PL_minus_F
#define Iminus_a		PL_minus_a
#define Iminus_c		PL_minus_c
#define Iminus_l		PL_minus_l
#define Iminus_n		PL_minus_n
#define Iminus_p		PL_minus_p
#define Imodglobal		PL_modglobal
#define Imultiline		PL_multiline
#define Imystrk			PL_mystrk
#define Iofmt			PL_ofmt
#define Ioldlastpm		PL_oldlastpm
#define Ioldname		PL_oldname
#define Iop_mask		PL_op_mask
#define Iorigargc		PL_origargc
#define Iorigargv		PL_origargv
#define Iorigfilename		PL_origfilename
#define Iors			PL_ors
#define Iorslen			PL_orslen
#define Iparsehook		PL_parsehook
#define Ipatchlevel		PL_patchlevel
#define Ipending_ident		PL_pending_ident
#define Iperl_destruct_level	PL_perl_destruct_level
#define Iperldb			PL_perldb
#define Ipreambleav		PL_preambleav
#define Ipreambled		PL_preambled
#define Ipreprocess		PL_preprocess
#define Iprofiledata		PL_profiledata
#define Ireplgv			PL_replgv
#define Irightgv		PL_rightgv
#define Irsfp			PL_rsfp
#define Irsfp_filters		PL_rsfp_filters
#define Isawampersand		PL_sawampersand
#define Isawstudy		PL_sawstudy
#define Isawvec			PL_sawvec
#define Isiggv			PL_siggv
#define Isplitstr		PL_splitstr
#define Istatusvalue		PL_statusvalue
#define Istatusvalue_vms	PL_statusvalue_vms
#define Istdingv		PL_stdingv
#define Istrchop		PL_strchop
#define Istrtab			PL_strtab
#define Isub_generation		PL_sub_generation
#define Isublex_info		PL_sublex_info
#define Isv_arenaroot		PL_sv_arenaroot
#define Isv_count		PL_sv_count
#define Isv_objcount		PL_sv_objcount
#define Isv_root		PL_sv_root
#define Isys_intern		PL_sys_intern
#define Itainting		PL_tainting
#define Ithreadnum		PL_threadnum
#define Ithrsv			PL_thrsv
#define Iunsafe			PL_unsafe
#define Iwarnhook		PL_warnhook

#ifndef USE_THREADS

#define TSv			PL_Sv
#define TXpv			PL_Xpv
#define Tav_fetch_sv		PL_av_fetch_sv
#define Tbodytarget		PL_bodytarget
#define Tbostr			PL_bostr
#define Tchopset		PL_chopset
#define Tcolors			PL_colors
#define Tcolorset		PL_colorset
#define Tcurcop			PL_curcop
#define Tcurpad			PL_curpad
#define Tcurpm			PL_curpm
#define Tcurstack		PL_curstack
#define Tcurstackinfo		PL_curstackinfo
#define Tcurstash		PL_curstash
#define Tdefoutgv		PL_defoutgv
#define Tdefstash		PL_defstash
#define Tdelaymagic		PL_delaymagic
#define Tdirty			PL_dirty
#define Textralen		PL_extralen
#define Tfirstgv		PL_firstgv
#define Tformtarget		PL_formtarget
#define Thv_fetch_ent_mh	PL_hv_fetch_ent_mh
#define Thv_fetch_sv		PL_hv_fetch_sv
#define Tin_eval		PL_in_eval
#define Tlast_in_gv		PL_last_in_gv
#define Tlastgotoprobe		PL_lastgotoprobe
#define Tlastscream		PL_lastscream
#define Tlocalizing		PL_localizing
#define Tmainstack		PL_mainstack
#define Tmarkstack		PL_markstack
#define Tmarkstack_max		PL_markstack_max
#define Tmarkstack_ptr		PL_markstack_ptr
#define Tmaxscream		PL_maxscream
#define Tmodcount		PL_modcount
#define Tnrs			PL_nrs
#define Tofs			PL_ofs
#define Tofslen			PL_ofslen
#define Top			PL_op
#define Topsave			PL_opsave
#define Treg_eval_set		PL_reg_eval_set
#define Treg_flags		PL_reg_flags
#define Treg_start_tmp		PL_reg_start_tmp
#define Treg_start_tmpl		PL_reg_start_tmpl
#define Tregbol			PL_regbol
#define Tregcc			PL_regcc
#define Tregcode		PL_regcode
#define Tregcomp_parse		PL_regcomp_parse
#define Tregcomp_rx		PL_regcomp_rx
#define Tregcompp		PL_regcompp
#define Tregdata		PL_regdata
#define Tregdummy		PL_regdummy
#define Tregendp		PL_regendp
#define Tregeol			PL_regeol
#define Tregexecp		PL_regexecp
#define Tregflags		PL_regflags
#define Tregindent		PL_regindent
#define Treginput		PL_reginput
#define Treginterp_cnt		PL_reginterp_cnt
#define Treglastparen		PL_reglastparen
#define Tregnarrate		PL_regnarrate
#define Tregnaughty		PL_regnaughty
#define Tregnpar		PL_regnpar
#define Tregprecomp		PL_regprecomp
#define Tregprev		PL_regprev
#define Tregprogram		PL_regprogram
#define Tregsawback		PL_regsawback
#define Tregseen		PL_regseen
#define Tregsize		PL_regsize
#define Tregstartp		PL_regstartp
#define Tregtill		PL_regtill
#define Tregxend		PL_regxend
#define Trestartop		PL_restartop
#define Tretstack		PL_retstack
#define Tretstack_ix		PL_retstack_ix
#define Tretstack_max		PL_retstack_max
#define Trs			PL_rs
#define Tsavestack		PL_savestack
#define Tsavestack_ix		PL_savestack_ix
#define Tsavestack_max		PL_savestack_max
#define Tscopestack		PL_scopestack
#define Tscopestack_ix		PL_scopestack_ix
#define Tscopestack_max		PL_scopestack_max
#define Tscreamfirst		PL_screamfirst
#define Tscreamnext		PL_screamnext
#define Tsecondgv		PL_secondgv
#define Tseen_evals		PL_seen_evals
#define Tseen_zerolen		PL_seen_zerolen
#define Tsortcop		PL_sortcop
#define Tsortcxix		PL_sortcxix
#define Tsortstash		PL_sortstash
#define Tstack_base		PL_stack_base
#define Tstack_max		PL_stack_max
#define Tstack_sp		PL_stack_sp
#define Tstart_env		PL_start_env
#define Tstatbuf		PL_statbuf
#define Tstatcache		PL_statcache
#define Tstatgv			PL_statgv
#define Tstatname		PL_statname
#define Ttainted		PL_tainted
#define Ttimesbuf		PL_timesbuf
#define Ttmps_floor		PL_tmps_floor
#define Ttmps_ix		PL_tmps_ix
#define Ttmps_max		PL_tmps_max
#define Ttmps_stack		PL_tmps_stack
#define Ttop_env		PL_top_env
#define Ttoptarget		PL_toptarget

#endif /* USE_THREADS */

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

#ifdef EMBED


#ifndef USE_THREADS


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

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

#ifdef USE_THREADS

#define PL_Sv			(thr->TSv)
#define PL_Xpv			(thr->TXpv)
#define PL_av_fetch_sv		(thr->Tav_fetch_sv)
#define PL_bodytarget		(thr->Tbodytarget)
#define PL_bostr		(thr->Tbostr)
#define PL_chopset		(thr->Tchopset)
#define PL_colors		(thr->Tcolors)
#define PL_colorset		(thr->Tcolorset)
#define PL_curcop		(thr->Tcurcop)
#define PL_curpad		(thr->Tcurpad)
#define PL_curpm		(thr->Tcurpm)
#define PL_curstack		(thr->Tcurstack)
#define PL_curstackinfo		(thr->Tcurstackinfo)
#define PL_curstash		(thr->Tcurstash)
#define PL_defoutgv		(thr->Tdefoutgv)
#define PL_defstash		(thr->Tdefstash)
#define PL_delaymagic		(thr->Tdelaymagic)
#define PL_dirty		(thr->Tdirty)
#define PL_extralen		(thr->Textralen)
#define PL_firstgv		(thr->Tfirstgv)
#define PL_formtarget		(thr->Tformtarget)
#define PL_hv_fetch_ent_mh	(thr->Thv_fetch_ent_mh)
#define PL_hv_fetch_sv		(thr->Thv_fetch_sv)
#define PL_in_eval		(thr->Tin_eval)
#define PL_last_in_gv		(thr->Tlast_in_gv)
#define PL_lastgotoprobe	(thr->Tlastgotoprobe)
#define PL_lastscream		(thr->Tlastscream)
#define PL_localizing		(thr->Tlocalizing)
#define PL_mainstack		(thr->Tmainstack)
#define PL_markstack		(thr->Tmarkstack)
#define PL_markstack_max	(thr->Tmarkstack_max)
#define PL_markstack_ptr	(thr->Tmarkstack_ptr)
#define PL_maxscream		(thr->Tmaxscream)
#define PL_modcount		(thr->Tmodcount)
#define PL_nrs			(thr->Tnrs)
#define PL_ofs			(thr->Tofs)
#define PL_ofslen		(thr->Tofslen)
#define PL_op			(thr->Top)
#define PL_opsave		(thr->Topsave)
#define PL_reg_eval_set		(thr->Treg_eval_set)
#define PL_reg_flags		(thr->Treg_flags)
#define PL_reg_start_tmp	(thr->Treg_start_tmp)
#define PL_reg_start_tmpl	(thr->Treg_start_tmpl)
#define PL_regbol		(thr->Tregbol)
#define PL_regcc		(thr->Tregcc)
#define PL_regcode		(thr->Tregcode)
#define PL_regcomp_parse	(thr->Tregcomp_parse)
#define PL_regcomp_rx		(thr->Tregcomp_rx)
#define PL_regcompp		(thr->Tregcompp)
#define PL_regdata		(thr->Tregdata)
#define PL_regdummy		(thr->Tregdummy)
#define PL_regendp		(thr->Tregendp)
#define PL_regeol		(thr->Tregeol)
#define PL_regexecp		(thr->Tregexecp)
#define PL_regflags		(thr->Tregflags)
#define PL_regindent		(thr->Tregindent)
#define PL_reginput		(thr->Treginput)
#define PL_reginterp_cnt	(thr->Treginterp_cnt)
#define PL_reglastparen		(thr->Treglastparen)
#define PL_regnarrate		(thr->Tregnarrate)
#define PL_regnaughty		(thr->Tregnaughty)
#define PL_regnpar		(thr->Tregnpar)
#define PL_regprecomp		(thr->Tregprecomp)
#define PL_regprev		(thr->Tregprev)
#define PL_regprogram		(thr->Tregprogram)
#define PL_regsawback		(thr->Tregsawback)
#define PL_regseen		(thr->Tregseen)
#define PL_regsize		(thr->Tregsize)
#define PL_regstartp		(thr->Tregstartp)
#define PL_regtill		(thr->Tregtill)
#define PL_regxend		(thr->Tregxend)
#define PL_restartop		(thr->Trestartop)
#define PL_retstack		(thr->Tretstack)
#define PL_retstack_ix		(thr->Tretstack_ix)
#define PL_retstack_max		(thr->Tretstack_max)
#define PL_rs			(thr->Trs)
#define PL_savestack		(thr->Tsavestack)
#define PL_savestack_ix		(thr->Tsavestack_ix)
#define PL_savestack_max	(thr->Tsavestack_max)
#define PL_scopestack		(thr->Tscopestack)
#define PL_scopestack_ix	(thr->Tscopestack_ix)
#define PL_scopestack_max	(thr->Tscopestack_max)
#define PL_screamfirst		(thr->Tscreamfirst)
#define PL_screamnext		(thr->Tscreamnext)
#define PL_secondgv		(thr->Tsecondgv)
#define PL_seen_evals		(thr->Tseen_evals)
#define PL_seen_zerolen		(thr->Tseen_zerolen)
#define PL_sortcop		(thr->Tsortcop)
#define PL_sortcxix		(thr->Tsortcxix)
#define PL_sortstash		(thr->Tsortstash)
#define PL_stack_base		(thr->Tstack_base)
#define PL_stack_max		(thr->Tstack_max)
#define PL_stack_sp		(thr->Tstack_sp)
#define PL_start_env		(thr->Tstart_env)
#define PL_statbuf		(thr->Tstatbuf)
#define PL_statcache		(thr->Tstatcache)
#define PL_statgv		(thr->Tstatgv)
#define PL_statname		(thr->Tstatname)
#define PL_tainted		(thr->Ttainted)
#define PL_timesbuf		(thr->Ttimesbuf)
#define PL_tmps_floor		(thr->Ttmps_floor)
#define PL_tmps_ix		(thr->Ttmps_ix)
#define PL_tmps_max		(thr->Ttmps_max)
#define PL_tmps_stack		(thr->Ttmps_stack)
#define PL_top_env		(thr->Ttop_env)
#define PL_toptarget		(thr->Ttoptarget)

#endif /* USE_THREADS */

#ifdef PERL_GLOBAL_STRUCT

#define PL_No			(Perl_Vars.GNo)
#define PL_Yes			(Perl_Vars.GYes)
#define PL_amagic_generation	(Perl_Vars.Gamagic_generation)
#define PL_an			(Perl_Vars.Gan)
#define PL_bufend		(Perl_Vars.Gbufend)
#define PL_bufptr		(Perl_Vars.Gbufptr)
#define PL_collation_ix		(Perl_Vars.Gcollation_ix)
#define PL_collation_name	(Perl_Vars.Gcollation_name)
#define PL_collation_standard	(Perl_Vars.Gcollation_standard)
#define PL_collxfrm_base	(Perl_Vars.Gcollxfrm_base)
#define PL_collxfrm_mult	(Perl_Vars.Gcollxfrm_mult)
#define PL_cop_seqmax		(Perl_Vars.Gcop_seqmax)
#define PL_cryptseen		(Perl_Vars.Gcryptseen)
#define PL_cshlen		(Perl_Vars.Gcshlen)
#define PL_cshname		(Perl_Vars.Gcshname)
#define PL_curinterp		(Perl_Vars.Gcurinterp)
#define PL_curthr		(Perl_Vars.Gcurthr)
#define PL_debug		(Perl_Vars.Gdebug)
#define PL_do_undump		(Perl_Vars.Gdo_undump)
#define PL_egid			(Perl_Vars.Gegid)
#define PL_error_count		(Perl_Vars.Gerror_count)
#define PL_euid			(Perl_Vars.Geuid)
#define PL_eval_cond		(Perl_Vars.Geval_cond)
#define PL_eval_mutex		(Perl_Vars.Geval_mutex)
#define PL_eval_owner		(Perl_Vars.Geval_owner)
#define PL_evalseq		(Perl_Vars.Gevalseq)
#define PL_expect		(Perl_Vars.Gexpect)
#define PL_gid			(Perl_Vars.Ggid)
#define PL_he_root		(Perl_Vars.Ghe_root)
#define PL_hexdigit		(Perl_Vars.Ghexdigit)
#define PL_hints		(Perl_Vars.Ghints)
#define PL_in_my		(Perl_Vars.Gin_my)
#define PL_in_my_stash		(Perl_Vars.Gin_my_stash)
#define PL_last_lop		(Perl_Vars.Glast_lop)
#define PL_last_lop_op		(Perl_Vars.Glast_lop_op)
#define PL_last_uni		(Perl_Vars.Glast_uni)
#define PL_lex_brackets		(Perl_Vars.Glex_brackets)
#define PL_lex_brackstack	(Perl_Vars.Glex_brackstack)
#define PL_lex_casemods		(Perl_Vars.Glex_casemods)
#define PL_lex_casestack	(Perl_Vars.Glex_casestack)
#define PL_lex_defer		(Perl_Vars.Glex_defer)
#define PL_lex_dojoin		(Perl_Vars.Glex_dojoin)
#define PL_lex_expect		(Perl_Vars.Glex_expect)
#define PL_lex_fakebrack	(Perl_Vars.Glex_fakebrack)
#define PL_lex_formbrack	(Perl_Vars.Glex_formbrack)
#define PL_lex_inpat		(Perl_Vars.Glex_inpat)
#define PL_lex_inwhat		(Perl_Vars.Glex_inwhat)
#define PL_lex_op		(Perl_Vars.Glex_op)
#define PL_lex_repl		(Perl_Vars.Glex_repl)
#define PL_lex_starts		(Perl_Vars.Glex_starts)
#define PL_lex_state		(Perl_Vars.Glex_state)
#define PL_lex_stuff		(Perl_Vars.Glex_stuff)
#define PL_linestr		(Perl_Vars.Glinestr)
#define PL_malloc_mutex		(Perl_Vars.Gmalloc_mutex)
#define PL_max_intro_pending	(Perl_Vars.Gmax_intro_pending)
#define PL_maxo			(Perl_Vars.Gmaxo)
#define PL_min_intro_pending	(Perl_Vars.Gmin_intro_pending)
#define PL_multi_close		(Perl_Vars.Gmulti_close)
#define PL_multi_end		(Perl_Vars.Gmulti_end)
#define PL_multi_open		(Perl_Vars.Gmulti_open)
#define PL_multi_start		(Perl_Vars.Gmulti_start)
#define PL_na			(Perl_Vars.Gna)
#define PL_nexttoke		(Perl_Vars.Gnexttoke)
#define PL_nexttype		(Perl_Vars.Gnexttype)
#define PL_nextval		(Perl_Vars.Gnextval)
#define PL_nice_chunk		(Perl_Vars.Gnice_chunk)
#define PL_nice_chunk_size	(Perl_Vars.Gnice_chunk_size)
#define PL_ninterps		(Perl_Vars.Gninterps)
#define PL_nomemok		(Perl_Vars.Gnomemok)
#define PL_nthreads		(Perl_Vars.Gnthreads)
#define PL_nthreads_cond	(Perl_Vars.Gnthreads_cond)
#define PL_numeric_local	(Perl_Vars.Gnumeric_local)
#define PL_numeric_name		(Perl_Vars.Gnumeric_name)
#define PL_numeric_standard	(Perl_Vars.Gnumeric_standard)
#define PL_oldbufptr		(Perl_Vars.Goldbufptr)
#define PL_oldoldbufptr		(Perl_Vars.Goldoldbufptr)
#define PL_op_seqmax		(Perl_Vars.Gop_seqmax)
#define PL_origalen		(Perl_Vars.Gorigalen)
#define PL_origenviron		(Perl_Vars.Gorigenviron)
#define PL_osname		(Perl_Vars.Gosname)
#define PL_pad_reset_pending	(Perl_Vars.Gpad_reset_pending)
#define PL_padix		(Perl_Vars.Gpadix)
#define PL_padix_floor		(Perl_Vars.Gpadix_floor)
#define PL_patleave		(Perl_Vars.Gpatleave)
#define PL_pidstatus		(Perl_Vars.Gpidstatus)
#define PL_runops		(Perl_Vars.Grunops)
#define PL_sh_path		(Perl_Vars.Gsh_path)
#define PL_sighandlerp		(Perl_Vars.Gsighandlerp)
#define PL_specialsv_list	(Perl_Vars.Gspecialsv_list)
#define PL_subline		(Perl_Vars.Gsubline)
#define PL_subname		(Perl_Vars.Gsubname)
#define PL_sv_mutex		(Perl_Vars.Gsv_mutex)
#define PL_sv_no		(Perl_Vars.Gsv_no)
#define PL_sv_undef		(Perl_Vars.Gsv_undef)
#define PL_sv_yes		(Perl_Vars.Gsv_yes)
#define PL_svref_mutex		(Perl_Vars.Gsvref_mutex)
#define PL_thisexpr		(Perl_Vars.Gthisexpr)
#define PL_thr_key		(Perl_Vars.Gthr_key)
#define PL_threads_mutex	(Perl_Vars.Gthreads_mutex)
#define PL_threadsv_names	(Perl_Vars.Gthreadsv_names)
#define PL_tokenbuf		(Perl_Vars.Gtokenbuf)
#define PL_uid			(Perl_Vars.Guid)
#define PL_xiv_arenaroot	(Perl_Vars.Gxiv_arenaroot)
#define PL_xiv_root		(Perl_Vars.Gxiv_root)
#define PL_xnv_root		(Perl_Vars.Gxnv_root)
#define PL_xpv_root		(Perl_Vars.Gxpv_root)
#define PL_xrv_root		(Perl_Vars.Gxrv_root)

#else /* !PERL_GLOBAL_STRUCT */

#define GNo			PL_No
#define GYes			PL_Yes
#define Gamagic_generation	PL_amagic_generation
#define Gan			PL_an
#define Gbufend			PL_bufend
#define Gbufptr			PL_bufptr
#define Gcollation_ix		PL_collation_ix
#define Gcollation_name		PL_collation_name
#define Gcollation_standard	PL_collation_standard
#define Gcollxfrm_base		PL_collxfrm_base
#define Gcollxfrm_mult		PL_collxfrm_mult
#define Gcop_seqmax		PL_cop_seqmax
#define Gcryptseen		PL_cryptseen
#define Gcshlen			PL_cshlen
#define Gcshname		PL_cshname
#define Gcurinterp		PL_curinterp
#define Gcurthr			PL_curthr
#define Gdebug			PL_debug
#define Gdo_undump		PL_do_undump
#define Gegid			PL_egid
#define Gerror_count		PL_error_count
#define Geuid			PL_euid
#define Geval_cond		PL_eval_cond
#define Geval_mutex		PL_eval_mutex
#define Geval_owner		PL_eval_owner
#define Gevalseq		PL_evalseq
#define Gexpect			PL_expect
#define Ggid			PL_gid
#define Ghe_root		PL_he_root
#define Ghexdigit		PL_hexdigit
#define Ghints			PL_hints
#define Gin_my			PL_in_my
#define Gin_my_stash		PL_in_my_stash
#define Glast_lop		PL_last_lop
#define Glast_lop_op		PL_last_lop_op
#define Glast_uni		PL_last_uni
#define Glex_brackets		PL_lex_brackets
#define Glex_brackstack		PL_lex_brackstack
#define Glex_casemods		PL_lex_casemods
#define Glex_casestack		PL_lex_casestack
#define Glex_defer		PL_lex_defer
#define Glex_dojoin		PL_lex_dojoin
#define Glex_expect		PL_lex_expect
#define Glex_fakebrack		PL_lex_fakebrack
#define Glex_formbrack		PL_lex_formbrack
#define Glex_inpat		PL_lex_inpat
#define Glex_inwhat		PL_lex_inwhat
#define Glex_op			PL_lex_op
#define Glex_repl		PL_lex_repl
#define Glex_starts		PL_lex_starts
#define Glex_state		PL_lex_state
#define Glex_stuff		PL_lex_stuff
#define Glinestr		PL_linestr
#define Gmalloc_mutex		PL_malloc_mutex
#define Gmax_intro_pending	PL_max_intro_pending
#define Gmaxo			PL_maxo
#define Gmin_intro_pending	PL_min_intro_pending
#define Gmulti_close		PL_multi_close
#define Gmulti_end		PL_multi_end
#define Gmulti_open		PL_multi_open
#define Gmulti_start		PL_multi_start
#define Gna			PL_na
#define Gnexttoke		PL_nexttoke
#define Gnexttype		PL_nexttype
#define Gnextval		PL_nextval
#define Gnice_chunk		PL_nice_chunk
#define Gnice_chunk_size	PL_nice_chunk_size
#define Gninterps		PL_ninterps
#define Gnomemok		PL_nomemok
#define Gnthreads		PL_nthreads
#define Gnthreads_cond		PL_nthreads_cond
#define Gnumeric_local		PL_numeric_local
#define Gnumeric_name		PL_numeric_name
#define Gnumeric_standard	PL_numeric_standard
#define Goldbufptr		PL_oldbufptr
#define Goldoldbufptr		PL_oldoldbufptr
#define Gop_seqmax		PL_op_seqmax
#define Gorigalen		PL_origalen
#define Gorigenviron		PL_origenviron
#define Gosname			PL_osname
#define Gpad_reset_pending	PL_pad_reset_pending
#define Gpadix			PL_padix
#define Gpadix_floor		PL_padix_floor
#define Gpatleave		PL_patleave
#define Gpidstatus		PL_pidstatus
#define Grunops			PL_runops
#define Gsh_path		PL_sh_path
#define Gsighandlerp		PL_sighandlerp
#define Gspecialsv_list		PL_specialsv_list
#define Gsubline		PL_subline
#define Gsubname		PL_subname
#define Gsv_mutex		PL_sv_mutex
#define Gsv_no			PL_sv_no
#define Gsv_undef		PL_sv_undef
#define Gsv_yes			PL_sv_yes
#define Gsvref_mutex		PL_svref_mutex
#define Gthisexpr		PL_thisexpr
#define Gthr_key		PL_thr_key
#define Gthreads_mutex		PL_threads_mutex
#define Gthreadsv_names		PL_threadsv_names
#define Gtokenbuf		PL_tokenbuf
#define Guid			PL_uid
#define Gxiv_arenaroot		PL_xiv_arenaroot
#define Gxiv_root		PL_xiv_root
#define Gxnv_root		PL_xnv_root
#define Gxpv_root		PL_xpv_root
#define Gxrv_root		PL_xrv_root

#ifdef EMBED


#endif /* EMBED */
#endif /* PERL_GLOBAL_STRUCT */