summaryrefslogtreecommitdiff
path: root/embedvar.h
blob: 3e83de1d22e57599aa3824866362410951b07155 (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
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
/* !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
   This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h,
   perlvars.h and thrdvar.h.  Any changes made here will be lost!
*/

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

/*
   The following combinations of MULTIPLICITY, USE_THREADS, PERL_OBJECT
   and PERL_IMPLICIT_CONTEXT are supported:
     1) none
     2) MULTIPLICITY	# supported for compatibility
     3) MULTIPLICITY && PERL_IMPLICIT_CONTEXT
     4) USE_THREADS && PERL_IMPLICIT_CONTEXT
     5) MULTIPLICITY && USE_THREADS && PERL_IMPLICIT_CONTEXT
     6) PERL_OBJECT && PERL_IMPLICIT_CONTEXT

   All other combinations of these flags are errors.

   #3, #4, #5, and #6 are supported directly, while #2 is a special
   case of #3 (supported by redefining vTHX appropriately).
*/

#if defined(MULTIPLICITY)
/* cases 2, 3 and 5 above */

#  if defined(PERL_IMPLICIT_CONTEXT)
#    define vTHX	aTHX
#  else
#    define vTHX	PERL_GET_INTERP
#  endif

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

#  if defined(PERL_OBJECT)
#    include "error: PERL_OBJECT + MULTIPLICITY don't go together"
#  endif

#  if defined(USE_THREADS)
/* case 5 above */

#define PL_Argv			(PERL_GET_INTERP->IArgv)
#define PL_Cmd			(PERL_GET_INTERP->ICmd)
#define PL_DBcv			(PERL_GET_INTERP->IDBcv)
#define PL_DBgv			(PERL_GET_INTERP->IDBgv)
#define PL_DBline		(PERL_GET_INTERP->IDBline)
#define PL_DBsignal		(PERL_GET_INTERP->IDBsignal)
#define PL_DBsingle		(PERL_GET_INTERP->IDBsingle)
#define PL_DBsub		(PERL_GET_INTERP->IDBsub)
#define PL_DBtrace		(PERL_GET_INTERP->IDBtrace)
#define PL_Dir			(PERL_GET_INTERP->IDir)
#define PL_Env			(PERL_GET_INTERP->IEnv)
#define PL_LIO			(PERL_GET_INTERP->ILIO)
#define PL_Mem			(PERL_GET_INTERP->IMem)
#define PL_Proc			(PERL_GET_INTERP->IProc)
#define PL_Sock			(PERL_GET_INTERP->ISock)
#define PL_StdIO		(PERL_GET_INTERP->IStdIO)
#define PL_amagic_generation	(PERL_GET_INTERP->Iamagic_generation)
#define PL_ampergv		(PERL_GET_INTERP->Iampergv)
#define PL_an			(PERL_GET_INTERP->Ian)
#define PL_archpat_auto		(PERL_GET_INTERP->Iarchpat_auto)
#define PL_argvgv		(PERL_GET_INTERP->Iargvgv)
#define PL_argvoutgv		(PERL_GET_INTERP->Iargvoutgv)
#define PL_basetime		(PERL_GET_INTERP->Ibasetime)
#define PL_beginav		(PERL_GET_INTERP->Ibeginav)
#define PL_bitcount		(PERL_GET_INTERP->Ibitcount)
#define PL_bufend		(PERL_GET_INTERP->Ibufend)
#define PL_bufptr		(PERL_GET_INTERP->Ibufptr)
#define PL_cddir		(PERL_GET_INTERP->Icddir)
#define PL_collation_ix		(PERL_GET_INTERP->Icollation_ix)
#define PL_collation_name	(PERL_GET_INTERP->Icollation_name)
#define PL_collation_standard	(PERL_GET_INTERP->Icollation_standard)
#define PL_collxfrm_base	(PERL_GET_INTERP->Icollxfrm_base)
#define PL_collxfrm_mult	(PERL_GET_INTERP->Icollxfrm_mult)
#define PL_compcv		(PERL_GET_INTERP->Icompcv)
#define PL_compiling		(PERL_GET_INTERP->Icompiling)
#define PL_comppad		(PERL_GET_INTERP->Icomppad)
#define PL_comppad_name		(PERL_GET_INTERP->Icomppad_name)
#define PL_comppad_name_fill	(PERL_GET_INTERP->Icomppad_name_fill)
#define PL_comppad_name_floor	(PERL_GET_INTERP->Icomppad_name_floor)
#define PL_cop_seqmax		(PERL_GET_INTERP->Icop_seqmax)
#define PL_copline		(PERL_GET_INTERP->Icopline)
#define PL_cred_mutex		(PERL_GET_INTERP->Icred_mutex)
#define PL_cryptseen		(PERL_GET_INTERP->Icryptseen)
#define PL_cshlen		(PERL_GET_INTERP->Icshlen)
#define PL_cshname		(PERL_GET_INTERP->Icshname)
#define PL_curcopdb		(PERL_GET_INTERP->Icurcopdb)
#define PL_curstname		(PERL_GET_INTERP->Icurstname)
#define PL_curthr		(PERL_GET_INTERP->Icurthr)
#define PL_dbargs		(PERL_GET_INTERP->Idbargs)
#define PL_debdelim		(PERL_GET_INTERP->Idebdelim)
#define PL_debname		(PERL_GET_INTERP->Idebname)
#define PL_debstash		(PERL_GET_INTERP->Idebstash)
#define PL_debug		(PERL_GET_INTERP->Idebug)
#define PL_defgv		(PERL_GET_INTERP->Idefgv)
#define PL_diehook		(PERL_GET_INTERP->Idiehook)
#define PL_dlevel		(PERL_GET_INTERP->Idlevel)
#define PL_dlmax		(PERL_GET_INTERP->Idlmax)
#define PL_doextract		(PERL_GET_INTERP->Idoextract)
#define PL_doswitches		(PERL_GET_INTERP->Idoswitches)
#define PL_dowarn		(PERL_GET_INTERP->Idowarn)
#define PL_e_script		(PERL_GET_INTERP->Ie_script)
#define PL_efloatbuf		(PERL_GET_INTERP->Iefloatbuf)
#define PL_efloatsize		(PERL_GET_INTERP->Iefloatsize)
#define PL_egid			(PERL_GET_INTERP->Iegid)
#define PL_endav		(PERL_GET_INTERP->Iendav)
#define PL_envgv		(PERL_GET_INTERP->Ienvgv)
#define PL_errgv		(PERL_GET_INTERP->Ierrgv)
#define PL_error_count		(PERL_GET_INTERP->Ierror_count)
#define PL_euid			(PERL_GET_INTERP->Ieuid)
#define PL_eval_cond		(PERL_GET_INTERP->Ieval_cond)
#define PL_eval_mutex		(PERL_GET_INTERP->Ieval_mutex)
#define PL_eval_owner		(PERL_GET_INTERP->Ieval_owner)
#define PL_eval_root		(PERL_GET_INTERP->Ieval_root)
#define PL_eval_start		(PERL_GET_INTERP->Ieval_start)
#define PL_evalseq		(PERL_GET_INTERP->Ievalseq)
#define PL_exitlist		(PERL_GET_INTERP->Iexitlist)
#define PL_exitlistlen		(PERL_GET_INTERP->Iexitlistlen)
#define PL_expect		(PERL_GET_INTERP->Iexpect)
#define PL_fdpid		(PERL_GET_INTERP->Ifdpid)
#define PL_filemode		(PERL_GET_INTERP->Ifilemode)
#define PL_filter_debug		(PERL_GET_INTERP->Ifilter_debug)
#define PL_forkprocess		(PERL_GET_INTERP->Iforkprocess)
#define PL_formfeed		(PERL_GET_INTERP->Iformfeed)
#define PL_generation		(PERL_GET_INTERP->Igeneration)
#define PL_gensym		(PERL_GET_INTERP->Igensym)
#define PL_gid			(PERL_GET_INTERP->Igid)
#define PL_glob_index		(PERL_GET_INTERP->Iglob_index)
#define PL_globalstash		(PERL_GET_INTERP->Iglobalstash)
#define PL_he_root		(PERL_GET_INTERP->Ihe_root)
#define PL_hintgv		(PERL_GET_INTERP->Ihintgv)
#define PL_hints		(PERL_GET_INTERP->Ihints)
#define PL_in_clean_all		(PERL_GET_INTERP->Iin_clean_all)
#define PL_in_clean_objs	(PERL_GET_INTERP->Iin_clean_objs)
#define PL_in_my		(PERL_GET_INTERP->Iin_my)
#define PL_in_my_stash		(PERL_GET_INTERP->Iin_my_stash)
#define PL_incgv		(PERL_GET_INTERP->Iincgv)
#define PL_initav		(PERL_GET_INTERP->Iinitav)
#define PL_inplace		(PERL_GET_INTERP->Iinplace)
#define PL_last_lop		(PERL_GET_INTERP->Ilast_lop)
#define PL_last_lop_op		(PERL_GET_INTERP->Ilast_lop_op)
#define PL_last_swash_hv	(PERL_GET_INTERP->Ilast_swash_hv)
#define PL_last_swash_key	(PERL_GET_INTERP->Ilast_swash_key)
#define PL_last_swash_klen	(PERL_GET_INTERP->Ilast_swash_klen)
#define PL_last_swash_slen	(PERL_GET_INTERP->Ilast_swash_slen)
#define PL_last_swash_tmps	(PERL_GET_INTERP->Ilast_swash_tmps)
#define PL_last_uni		(PERL_GET_INTERP->Ilast_uni)
#define PL_lastfd		(PERL_GET_INTERP->Ilastfd)
#define PL_lastsize		(PERL_GET_INTERP->Ilastsize)
#define PL_lastspbase		(PERL_GET_INTERP->Ilastspbase)
#define PL_laststatval		(PERL_GET_INTERP->Ilaststatval)
#define PL_laststype		(PERL_GET_INTERP->Ilaststype)
#define PL_leftgv		(PERL_GET_INTERP->Ileftgv)
#define PL_lex_brackets		(PERL_GET_INTERP->Ilex_brackets)
#define PL_lex_brackstack	(PERL_GET_INTERP->Ilex_brackstack)
#define PL_lex_casemods		(PERL_GET_INTERP->Ilex_casemods)
#define PL_lex_casestack	(PERL_GET_INTERP->Ilex_casestack)
#define PL_lex_defer		(PERL_GET_INTERP->Ilex_defer)
#define PL_lex_dojoin		(PERL_GET_INTERP->Ilex_dojoin)
#define PL_lex_expect		(PERL_GET_INTERP->Ilex_expect)
#define PL_lex_fakebrack	(PERL_GET_INTERP->Ilex_fakebrack)
#define PL_lex_formbrack	(PERL_GET_INTERP->Ilex_formbrack)
#define PL_lex_inpat		(PERL_GET_INTERP->Ilex_inpat)
#define PL_lex_inwhat		(PERL_GET_INTERP->Ilex_inwhat)
#define PL_lex_op		(PERL_GET_INTERP->Ilex_op)
#define PL_lex_repl		(PERL_GET_INTERP->Ilex_repl)
#define PL_lex_starts		(PERL_GET_INTERP->Ilex_starts)
#define PL_lex_state		(PERL_GET_INTERP->Ilex_state)
#define PL_lex_stuff		(PERL_GET_INTERP->Ilex_stuff)
#define PL_lineary		(PERL_GET_INTERP->Ilineary)
#define PL_linestart		(PERL_GET_INTERP->Ilinestart)
#define PL_linestr		(PERL_GET_INTERP->Ilinestr)
#define PL_localpatches		(PERL_GET_INTERP->Ilocalpatches)
#define PL_main_cv		(PERL_GET_INTERP->Imain_cv)
#define PL_main_root		(PERL_GET_INTERP->Imain_root)
#define PL_main_start		(PERL_GET_INTERP->Imain_start)
#define PL_malloc_mutex		(PERL_GET_INTERP->Imalloc_mutex)
#define PL_max_intro_pending	(PERL_GET_INTERP->Imax_intro_pending)
#define PL_maxo			(PERL_GET_INTERP->Imaxo)
#define PL_maxsysfd		(PERL_GET_INTERP->Imaxsysfd)
#define PL_mess_sv		(PERL_GET_INTERP->Imess_sv)
#define PL_min_intro_pending	(PERL_GET_INTERP->Imin_intro_pending)
#define PL_minus_F		(PERL_GET_INTERP->Iminus_F)
#define PL_minus_a		(PERL_GET_INTERP->Iminus_a)
#define PL_minus_c		(PERL_GET_INTERP->Iminus_c)
#define PL_minus_l		(PERL_GET_INTERP->Iminus_l)
#define PL_minus_n		(PERL_GET_INTERP->Iminus_n)
#define PL_minus_p		(PERL_GET_INTERP->Iminus_p)
#define PL_modglobal		(PERL_GET_INTERP->Imodglobal)
#define PL_multi_close		(PERL_GET_INTERP->Imulti_close)
#define PL_multi_end		(PERL_GET_INTERP->Imulti_end)
#define PL_multi_open		(PERL_GET_INTERP->Imulti_open)
#define PL_multi_start		(PERL_GET_INTERP->Imulti_start)
#define PL_multiline		(PERL_GET_INTERP->Imultiline)
#define PL_mystrk		(PERL_GET_INTERP->Imystrk)
#define PL_nexttoke		(PERL_GET_INTERP->Inexttoke)
#define PL_nexttype		(PERL_GET_INTERP->Inexttype)
#define PL_nextval		(PERL_GET_INTERP->Inextval)
#define PL_nice_chunk		(PERL_GET_INTERP->Inice_chunk)
#define PL_nice_chunk_size	(PERL_GET_INTERP->Inice_chunk_size)
#define PL_nomemok		(PERL_GET_INTERP->Inomemok)
#define PL_nthreads		(PERL_GET_INTERP->Inthreads)
#define PL_nthreads_cond	(PERL_GET_INTERP->Inthreads_cond)
#define PL_numeric_local	(PERL_GET_INTERP->Inumeric_local)
#define PL_numeric_name		(PERL_GET_INTERP->Inumeric_name)
#define PL_numeric_radix	(PERL_GET_INTERP->Inumeric_radix)
#define PL_numeric_standard	(PERL_GET_INTERP->Inumeric_standard)
#define PL_ofmt			(PERL_GET_INTERP->Iofmt)
#define PL_oldbufptr		(PERL_GET_INTERP->Ioldbufptr)
#define PL_oldlastpm		(PERL_GET_INTERP->Ioldlastpm)
#define PL_oldname		(PERL_GET_INTERP->Ioldname)
#define PL_oldoldbufptr		(PERL_GET_INTERP->Ioldoldbufptr)
#define PL_op_mask		(PERL_GET_INTERP->Iop_mask)
#define PL_op_seqmax		(PERL_GET_INTERP->Iop_seqmax)
#define PL_origalen		(PERL_GET_INTERP->Iorigalen)
#define PL_origargc		(PERL_GET_INTERP->Iorigargc)
#define PL_origargv		(PERL_GET_INTERP->Iorigargv)
#define PL_origenviron		(PERL_GET_INTERP->Iorigenviron)
#define PL_origfilename		(PERL_GET_INTERP->Iorigfilename)
#define PL_ors			(PERL_GET_INTERP->Iors)
#define PL_orslen		(PERL_GET_INTERP->Iorslen)
#define PL_osname		(PERL_GET_INTERP->Iosname)
#define PL_pad_reset_pending	(PERL_GET_INTERP->Ipad_reset_pending)
#define PL_padix		(PERL_GET_INTERP->Ipadix)
#define PL_padix_floor		(PERL_GET_INTERP->Ipadix_floor)
#define PL_parsehook		(PERL_GET_INTERP->Iparsehook)
#define PL_patchlevel		(PERL_GET_INTERP->Ipatchlevel)
#define PL_pending_ident	(PERL_GET_INTERP->Ipending_ident)
#define PL_perl_destruct_level	(PERL_GET_INTERP->Iperl_destruct_level)
#define PL_perldb		(PERL_GET_INTERP->Iperldb)
#define PL_pidstatus		(PERL_GET_INTERP->Ipidstatus)
#define PL_preambleav		(PERL_GET_INTERP->Ipreambleav)
#define PL_preambled		(PERL_GET_INTERP->Ipreambled)
#define PL_preprocess		(PERL_GET_INTERP->Ipreprocess)
#define PL_profiledata		(PERL_GET_INTERP->Iprofiledata)
#define PL_replgv		(PERL_GET_INTERP->Ireplgv)
#define PL_rightgv		(PERL_GET_INTERP->Irightgv)
#define PL_rsfp			(PERL_GET_INTERP->Irsfp)
#define PL_rsfp_filters		(PERL_GET_INTERP->Irsfp_filters)
#define PL_runops		(PERL_GET_INTERP->Irunops)
#define PL_sawampersand		(PERL_GET_INTERP->Isawampersand)
#define PL_sawstudy		(PERL_GET_INTERP->Isawstudy)
#define PL_sawvec		(PERL_GET_INTERP->Isawvec)
#define PL_sh_path		(PERL_GET_INTERP->Ish_path)
#define PL_siggv		(PERL_GET_INTERP->Isiggv)
#define PL_sighandlerp		(PERL_GET_INTERP->Isighandlerp)
#define PL_splitstr		(PERL_GET_INTERP->Isplitstr)
#define PL_srand_called		(PERL_GET_INTERP->Isrand_called)
#define PL_statusvalue		(PERL_GET_INTERP->Istatusvalue)
#define PL_statusvalue_vms	(PERL_GET_INTERP->Istatusvalue_vms)
#define PL_stdingv		(PERL_GET_INTERP->Istdingv)
#define PL_strchop		(PERL_GET_INTERP->Istrchop)
#define PL_strtab		(PERL_GET_INTERP->Istrtab)
#define PL_strtab_mutex		(PERL_GET_INTERP->Istrtab_mutex)
#define PL_sub_generation	(PERL_GET_INTERP->Isub_generation)
#define PL_sublex_info		(PERL_GET_INTERP->Isublex_info)
#define PL_subline		(PERL_GET_INTERP->Isubline)
#define PL_subname		(PERL_GET_INTERP->Isubname)
#define PL_sv_arenaroot		(PERL_GET_INTERP->Isv_arenaroot)
#define PL_sv_count		(PERL_GET_INTERP->Isv_count)
#define PL_sv_mutex		(PERL_GET_INTERP->Isv_mutex)
#define PL_sv_no		(PERL_GET_INTERP->Isv_no)
#define PL_sv_objcount		(PERL_GET_INTERP->Isv_objcount)
#define PL_sv_root		(PERL_GET_INTERP->Isv_root)
#define PL_sv_undef		(PERL_GET_INTERP->Isv_undef)
#define PL_sv_yes		(PERL_GET_INTERP->Isv_yes)
#define PL_svref_mutex		(PERL_GET_INTERP->Isvref_mutex)
#define PL_sys_intern		(PERL_GET_INTERP->Isys_intern)
#define PL_tainting		(PERL_GET_INTERP->Itainting)
#define PL_thisexpr		(PERL_GET_INTERP->Ithisexpr)
#define PL_thr_key		(PERL_GET_INTERP->Ithr_key)
#define PL_threadnum		(PERL_GET_INTERP->Ithreadnum)
#define PL_threads_mutex	(PERL_GET_INTERP->Ithreads_mutex)
#define PL_threadsv_names	(PERL_GET_INTERP->Ithreadsv_names)
#define PL_thrsv		(PERL_GET_INTERP->Ithrsv)
#define PL_tokenbuf		(PERL_GET_INTERP->Itokenbuf)
#define PL_uid			(PERL_GET_INTERP->Iuid)
#define PL_unsafe		(PERL_GET_INTERP->Iunsafe)
#define PL_utf8_alnum		(PERL_GET_INTERP->Iutf8_alnum)
#define PL_utf8_alnumc		(PERL_GET_INTERP->Iutf8_alnumc)
#define PL_utf8_alpha		(PERL_GET_INTERP->Iutf8_alpha)
#define PL_utf8_ascii		(PERL_GET_INTERP->Iutf8_ascii)
#define PL_utf8_cntrl		(PERL_GET_INTERP->Iutf8_cntrl)
#define PL_utf8_digit		(PERL_GET_INTERP->Iutf8_digit)
#define PL_utf8_graph		(PERL_GET_INTERP->Iutf8_graph)
#define PL_utf8_lower		(PERL_GET_INTERP->Iutf8_lower)
#define PL_utf8_mark		(PERL_GET_INTERP->Iutf8_mark)
#define PL_utf8_print		(PERL_GET_INTERP->Iutf8_print)
#define PL_utf8_punct		(PERL_GET_INTERP->Iutf8_punct)
#define PL_utf8_space		(PERL_GET_INTERP->Iutf8_space)
#define PL_utf8_tolower		(PERL_GET_INTERP->Iutf8_tolower)
#define PL_utf8_totitle		(PERL_GET_INTERP->Iutf8_totitle)
#define PL_utf8_toupper		(PERL_GET_INTERP->Iutf8_toupper)
#define PL_utf8_upper		(PERL_GET_INTERP->Iutf8_upper)
#define PL_utf8_xdigit		(PERL_GET_INTERP->Iutf8_xdigit)
#define PL_uudmap		(PERL_GET_INTERP->Iuudmap)
#define PL_warnhook		(PERL_GET_INTERP->Iwarnhook)
#define PL_xiv_arenaroot	(PERL_GET_INTERP->Ixiv_arenaroot)
#define PL_xiv_root		(PERL_GET_INTERP->Ixiv_root)
#define PL_xnv_root		(PERL_GET_INTERP->Ixnv_root)
#define PL_xpv_root		(PERL_GET_INTERP->Ixpv_root)
#define PL_xrv_root		(PERL_GET_INTERP->Ixrv_root)
#define PL_yychar		(PERL_GET_INTERP->Iyychar)
#define PL_yydebug		(PERL_GET_INTERP->Iyydebug)
#define PL_yyerrflag		(PERL_GET_INTERP->Iyyerrflag)
#define PL_yylval		(PERL_GET_INTERP->Iyylval)
#define PL_yynerrs		(PERL_GET_INTERP->Iyynerrs)
#define PL_yyval		(PERL_GET_INTERP->Iyyval)

#  else		/* !USE_THREADS */
/* cases 2 and 3 above */

#define PL_Argv			(vTHX->IArgv)
#define PL_Cmd			(vTHX->ICmd)
#define PL_DBcv			(vTHX->IDBcv)
#define PL_DBgv			(vTHX->IDBgv)
#define PL_DBline		(vTHX->IDBline)
#define PL_DBsignal		(vTHX->IDBsignal)
#define PL_DBsingle		(vTHX->IDBsingle)
#define PL_DBsub		(vTHX->IDBsub)
#define PL_DBtrace		(vTHX->IDBtrace)
#define PL_Dir			(vTHX->IDir)
#define PL_Env			(vTHX->IEnv)
#define PL_LIO			(vTHX->ILIO)
#define PL_Mem			(vTHX->IMem)
#define PL_Proc			(vTHX->IProc)
#define PL_Sock			(vTHX->ISock)
#define PL_StdIO		(vTHX->IStdIO)
#define PL_amagic_generation	(vTHX->Iamagic_generation)
#define PL_ampergv		(vTHX->Iampergv)
#define PL_an			(vTHX->Ian)
#define PL_archpat_auto		(vTHX->Iarchpat_auto)
#define PL_argvgv		(vTHX->Iargvgv)
#define PL_argvoutgv		(vTHX->Iargvoutgv)
#define PL_basetime		(vTHX->Ibasetime)
#define PL_beginav		(vTHX->Ibeginav)
#define PL_bitcount		(vTHX->Ibitcount)
#define PL_bufend		(vTHX->Ibufend)
#define PL_bufptr		(vTHX->Ibufptr)
#define PL_cddir		(vTHX->Icddir)
#define PL_collation_ix		(vTHX->Icollation_ix)
#define PL_collation_name	(vTHX->Icollation_name)
#define PL_collation_standard	(vTHX->Icollation_standard)
#define PL_collxfrm_base	(vTHX->Icollxfrm_base)
#define PL_collxfrm_mult	(vTHX->Icollxfrm_mult)
#define PL_compcv		(vTHX->Icompcv)
#define PL_compiling		(vTHX->Icompiling)
#define PL_comppad		(vTHX->Icomppad)
#define PL_comppad_name		(vTHX->Icomppad_name)
#define PL_comppad_name_fill	(vTHX->Icomppad_name_fill)
#define PL_comppad_name_floor	(vTHX->Icomppad_name_floor)
#define PL_cop_seqmax		(vTHX->Icop_seqmax)
#define PL_copline		(vTHX->Icopline)
#define PL_cred_mutex		(vTHX->Icred_mutex)
#define PL_cryptseen		(vTHX->Icryptseen)
#define PL_cshlen		(vTHX->Icshlen)
#define PL_cshname		(vTHX->Icshname)
#define PL_curcopdb		(vTHX->Icurcopdb)
#define PL_curstname		(vTHX->Icurstname)
#define PL_curthr		(vTHX->Icurthr)
#define PL_dbargs		(vTHX->Idbargs)
#define PL_debdelim		(vTHX->Idebdelim)
#define PL_debname		(vTHX->Idebname)
#define PL_debstash		(vTHX->Idebstash)
#define PL_debug		(vTHX->Idebug)
#define PL_defgv		(vTHX->Idefgv)
#define PL_diehook		(vTHX->Idiehook)
#define PL_dlevel		(vTHX->Idlevel)
#define PL_dlmax		(vTHX->Idlmax)
#define PL_doextract		(vTHX->Idoextract)
#define PL_doswitches		(vTHX->Idoswitches)
#define PL_dowarn		(vTHX->Idowarn)
#define PL_e_script		(vTHX->Ie_script)
#define PL_efloatbuf		(vTHX->Iefloatbuf)
#define PL_efloatsize		(vTHX->Iefloatsize)
#define PL_egid			(vTHX->Iegid)
#define PL_endav		(vTHX->Iendav)
#define PL_envgv		(vTHX->Ienvgv)
#define PL_errgv		(vTHX->Ierrgv)
#define PL_error_count		(vTHX->Ierror_count)
#define PL_euid			(vTHX->Ieuid)
#define PL_eval_cond		(vTHX->Ieval_cond)
#define PL_eval_mutex		(vTHX->Ieval_mutex)
#define PL_eval_owner		(vTHX->Ieval_owner)
#define PL_eval_root		(vTHX->Ieval_root)
#define PL_eval_start		(vTHX->Ieval_start)
#define PL_evalseq		(vTHX->Ievalseq)
#define PL_exitlist		(vTHX->Iexitlist)
#define PL_exitlistlen		(vTHX->Iexitlistlen)
#define PL_expect		(vTHX->Iexpect)
#define PL_fdpid		(vTHX->Ifdpid)
#define PL_filemode		(vTHX->Ifilemode)
#define PL_filter_debug		(vTHX->Ifilter_debug)
#define PL_forkprocess		(vTHX->Iforkprocess)
#define PL_formfeed		(vTHX->Iformfeed)
#define PL_generation		(vTHX->Igeneration)
#define PL_gensym		(vTHX->Igensym)
#define PL_gid			(vTHX->Igid)
#define PL_glob_index		(vTHX->Iglob_index)
#define PL_globalstash		(vTHX->Iglobalstash)
#define PL_he_root		(vTHX->Ihe_root)
#define PL_hintgv		(vTHX->Ihintgv)
#define PL_hints		(vTHX->Ihints)
#define PL_in_clean_all		(vTHX->Iin_clean_all)
#define PL_in_clean_objs	(vTHX->Iin_clean_objs)
#define PL_in_my		(vTHX->Iin_my)
#define PL_in_my_stash		(vTHX->Iin_my_stash)
#define PL_incgv		(vTHX->Iincgv)
#define PL_initav		(vTHX->Iinitav)
#define PL_inplace		(vTHX->Iinplace)
#define PL_last_lop		(vTHX->Ilast_lop)
#define PL_last_lop_op		(vTHX->Ilast_lop_op)
#define PL_last_swash_hv	(vTHX->Ilast_swash_hv)
#define PL_last_swash_key	(vTHX->Ilast_swash_key)
#define PL_last_swash_klen	(vTHX->Ilast_swash_klen)
#define PL_last_swash_slen	(vTHX->Ilast_swash_slen)
#define PL_last_swash_tmps	(vTHX->Ilast_swash_tmps)
#define PL_last_uni		(vTHX->Ilast_uni)
#define PL_lastfd		(vTHX->Ilastfd)
#define PL_lastsize		(vTHX->Ilastsize)
#define PL_lastspbase		(vTHX->Ilastspbase)
#define PL_laststatval		(vTHX->Ilaststatval)
#define PL_laststype		(vTHX->Ilaststype)
#define PL_leftgv		(vTHX->Ileftgv)
#define PL_lex_brackets		(vTHX->Ilex_brackets)
#define PL_lex_brackstack	(vTHX->Ilex_brackstack)
#define PL_lex_casemods		(vTHX->Ilex_casemods)
#define PL_lex_casestack	(vTHX->Ilex_casestack)
#define PL_lex_defer		(vTHX->Ilex_defer)
#define PL_lex_dojoin		(vTHX->Ilex_dojoin)
#define PL_lex_expect		(vTHX->Ilex_expect)
#define PL_lex_fakebrack	(vTHX->Ilex_fakebrack)
#define PL_lex_formbrack	(vTHX->Ilex_formbrack)
#define PL_lex_inpat		(vTHX->Ilex_inpat)
#define PL_lex_inwhat		(vTHX->Ilex_inwhat)
#define PL_lex_op		(vTHX->Ilex_op)
#define PL_lex_repl		(vTHX->Ilex_repl)
#define PL_lex_starts		(vTHX->Ilex_starts)
#define PL_lex_state		(vTHX->Ilex_state)
#define PL_lex_stuff		(vTHX->Ilex_stuff)
#define PL_lineary		(vTHX->Ilineary)
#define PL_linestart		(vTHX->Ilinestart)
#define PL_linestr		(vTHX->Ilinestr)
#define PL_localpatches		(vTHX->Ilocalpatches)
#define PL_main_cv		(vTHX->Imain_cv)
#define PL_main_root		(vTHX->Imain_root)
#define PL_main_start		(vTHX->Imain_start)
#define PL_malloc_mutex		(vTHX->Imalloc_mutex)
#define PL_max_intro_pending	(vTHX->Imax_intro_pending)
#define PL_maxo			(vTHX->Imaxo)
#define PL_maxsysfd		(vTHX->Imaxsysfd)
#define PL_mess_sv		(vTHX->Imess_sv)
#define PL_min_intro_pending	(vTHX->Imin_intro_pending)
#define PL_minus_F		(vTHX->Iminus_F)
#define PL_minus_a		(vTHX->Iminus_a)
#define PL_minus_c		(vTHX->Iminus_c)
#define PL_minus_l		(vTHX->Iminus_l)
#define PL_minus_n		(vTHX->Iminus_n)
#define PL_minus_p		(vTHX->Iminus_p)
#define PL_modglobal		(vTHX->Imodglobal)
#define PL_multi_close		(vTHX->Imulti_close)
#define PL_multi_end		(vTHX->Imulti_end)
#define PL_multi_open		(vTHX->Imulti_open)
#define PL_multi_start		(vTHX->Imulti_start)
#define PL_multiline		(vTHX->Imultiline)
#define PL_mystrk		(vTHX->Imystrk)
#define PL_nexttoke		(vTHX->Inexttoke)
#define PL_nexttype		(vTHX->Inexttype)
#define PL_nextval		(vTHX->Inextval)
#define PL_nice_chunk		(vTHX->Inice_chunk)
#define PL_nice_chunk_size	(vTHX->Inice_chunk_size)
#define PL_nomemok		(vTHX->Inomemok)
#define PL_nthreads		(vTHX->Inthreads)
#define PL_nthreads_cond	(vTHX->Inthreads_cond)
#define PL_numeric_local	(vTHX->Inumeric_local)
#define PL_numeric_name		(vTHX->Inumeric_name)
#define PL_numeric_radix	(vTHX->Inumeric_radix)
#define PL_numeric_standard	(vTHX->Inumeric_standard)
#define PL_ofmt			(vTHX->Iofmt)
#define PL_oldbufptr		(vTHX->Ioldbufptr)
#define PL_oldlastpm		(vTHX->Ioldlastpm)
#define PL_oldname		(vTHX->Ioldname)
#define PL_oldoldbufptr		(vTHX->Ioldoldbufptr)
#define PL_op_mask		(vTHX->Iop_mask)
#define PL_op_seqmax		(vTHX->Iop_seqmax)
#define PL_origalen		(vTHX->Iorigalen)
#define PL_origargc		(vTHX->Iorigargc)
#define PL_origargv		(vTHX->Iorigargv)
#define PL_origenviron		(vTHX->Iorigenviron)
#define PL_origfilename		(vTHX->Iorigfilename)
#define PL_ors			(vTHX->Iors)
#define PL_orslen		(vTHX->Iorslen)
#define PL_osname		(vTHX->Iosname)
#define PL_pad_reset_pending	(vTHX->Ipad_reset_pending)
#define PL_padix		(vTHX->Ipadix)
#define PL_padix_floor		(vTHX->Ipadix_floor)
#define PL_parsehook		(vTHX->Iparsehook)
#define PL_patchlevel		(vTHX->Ipatchlevel)
#define PL_pending_ident	(vTHX->Ipending_ident)
#define PL_perl_destruct_level	(vTHX->Iperl_destruct_level)
#define PL_perldb		(vTHX->Iperldb)
#define PL_pidstatus		(vTHX->Ipidstatus)
#define PL_preambleav		(vTHX->Ipreambleav)
#define PL_preambled		(vTHX->Ipreambled)
#define PL_preprocess		(vTHX->Ipreprocess)
#define PL_profiledata		(vTHX->Iprofiledata)
#define PL_replgv		(vTHX->Ireplgv)
#define PL_rightgv		(vTHX->Irightgv)
#define PL_rsfp			(vTHX->Irsfp)
#define PL_rsfp_filters		(vTHX->Irsfp_filters)
#define PL_runops		(vTHX->Irunops)
#define PL_sawampersand		(vTHX->Isawampersand)
#define PL_sawstudy		(vTHX->Isawstudy)
#define PL_sawvec		(vTHX->Isawvec)
#define PL_sh_path		(vTHX->Ish_path)
#define PL_siggv		(vTHX->Isiggv)
#define PL_sighandlerp		(vTHX->Isighandlerp)
#define PL_splitstr		(vTHX->Isplitstr)
#define PL_srand_called		(vTHX->Isrand_called)
#define PL_statusvalue		(vTHX->Istatusvalue)
#define PL_statusvalue_vms	(vTHX->Istatusvalue_vms)
#define PL_stdingv		(vTHX->Istdingv)
#define PL_strchop		(vTHX->Istrchop)
#define PL_strtab		(vTHX->Istrtab)
#define PL_strtab_mutex		(vTHX->Istrtab_mutex)
#define PL_sub_generation	(vTHX->Isub_generation)
#define PL_sublex_info		(vTHX->Isublex_info)
#define PL_subline		(vTHX->Isubline)
#define PL_subname		(vTHX->Isubname)
#define PL_sv_arenaroot		(vTHX->Isv_arenaroot)
#define PL_sv_count		(vTHX->Isv_count)
#define PL_sv_mutex		(vTHX->Isv_mutex)
#define PL_sv_no		(vTHX->Isv_no)
#define PL_sv_objcount		(vTHX->Isv_objcount)
#define PL_sv_root		(vTHX->Isv_root)
#define PL_sv_undef		(vTHX->Isv_undef)
#define PL_sv_yes		(vTHX->Isv_yes)
#define PL_svref_mutex		(vTHX->Isvref_mutex)
#define PL_sys_intern		(vTHX->Isys_intern)
#define PL_tainting		(vTHX->Itainting)
#define PL_thisexpr		(vTHX->Ithisexpr)
#define PL_thr_key		(vTHX->Ithr_key)
#define PL_threadnum		(vTHX->Ithreadnum)
#define PL_threads_mutex	(vTHX->Ithreads_mutex)
#define PL_threadsv_names	(vTHX->Ithreadsv_names)
#define PL_thrsv		(vTHX->Ithrsv)
#define PL_tokenbuf		(vTHX->Itokenbuf)
#define PL_uid			(vTHX->Iuid)
#define PL_unsafe		(vTHX->Iunsafe)
#define PL_utf8_alnum		(vTHX->Iutf8_alnum)
#define PL_utf8_alnumc		(vTHX->Iutf8_alnumc)
#define PL_utf8_alpha		(vTHX->Iutf8_alpha)
#define PL_utf8_ascii		(vTHX->Iutf8_ascii)
#define PL_utf8_cntrl		(vTHX->Iutf8_cntrl)
#define PL_utf8_digit		(vTHX->Iutf8_digit)
#define PL_utf8_graph		(vTHX->Iutf8_graph)
#define PL_utf8_lower		(vTHX->Iutf8_lower)
#define PL_utf8_mark		(vTHX->Iutf8_mark)
#define PL_utf8_print		(vTHX->Iutf8_print)
#define PL_utf8_punct		(vTHX->Iutf8_punct)
#define PL_utf8_space		(vTHX->Iutf8_space)
#define PL_utf8_tolower		(vTHX->Iutf8_tolower)
#define PL_utf8_totitle		(vTHX->Iutf8_totitle)
#define PL_utf8_toupper		(vTHX->Iutf8_toupper)
#define PL_utf8_upper		(vTHX->Iutf8_upper)
#define PL_utf8_xdigit		(vTHX->Iutf8_xdigit)
#define PL_uudmap		(vTHX->Iuudmap)
#define PL_warnhook		(vTHX->Iwarnhook)
#define PL_xiv_arenaroot	(vTHX->Ixiv_arenaroot)
#define PL_xiv_root		(vTHX->Ixiv_root)
#define PL_xnv_root		(vTHX->Ixnv_root)
#define PL_xpv_root		(vTHX->Ixpv_root)
#define PL_xrv_root		(vTHX->Ixrv_root)
#define PL_yychar		(vTHX->Iyychar)
#define PL_yydebug		(vTHX->Iyydebug)
#define PL_yyerrflag		(vTHX->Iyyerrflag)
#define PL_yylval		(vTHX->Iyylval)
#define PL_yynerrs		(vTHX->Iyynerrs)
#define PL_yyval		(vTHX->Iyyval)

#  endif	/* USE_THREADS */

#else	/* !MULTIPLICITY */
/* cases 1, 4 and 6 above */

#define PL_IArgv		PL_Argv
#define PL_ICmd			PL_Cmd
#define PL_IDBcv		PL_DBcv
#define PL_IDBgv		PL_DBgv
#define PL_IDBline		PL_DBline
#define PL_IDBsignal		PL_DBsignal
#define PL_IDBsingle		PL_DBsingle
#define PL_IDBsub		PL_DBsub
#define PL_IDBtrace		PL_DBtrace
#define PL_IDir			PL_Dir
#define PL_IEnv			PL_Env
#define PL_ILIO			PL_LIO
#define PL_IMem			PL_Mem
#define PL_IProc		PL_Proc
#define PL_ISock		PL_Sock
#define PL_IStdIO		PL_StdIO
#define PL_Iamagic_generation	PL_amagic_generation
#define PL_Iampergv		PL_ampergv
#define PL_Ian			PL_an
#define PL_Iarchpat_auto	PL_archpat_auto
#define PL_Iargvgv		PL_argvgv
#define PL_Iargvoutgv		PL_argvoutgv
#define PL_Ibasetime		PL_basetime
#define PL_Ibeginav		PL_beginav
#define PL_Ibitcount		PL_bitcount
#define PL_Ibufend		PL_bufend
#define PL_Ibufptr		PL_bufptr
#define PL_Icddir		PL_cddir
#define PL_Icollation_ix	PL_collation_ix
#define PL_Icollation_name	PL_collation_name
#define PL_Icollation_standard	PL_collation_standard
#define PL_Icollxfrm_base	PL_collxfrm_base
#define PL_Icollxfrm_mult	PL_collxfrm_mult
#define PL_Icompcv		PL_compcv
#define PL_Icompiling		PL_compiling
#define PL_Icomppad		PL_comppad
#define PL_Icomppad_name	PL_comppad_name
#define PL_Icomppad_name_fill	PL_comppad_name_fill
#define PL_Icomppad_name_floor	PL_comppad_name_floor
#define PL_Icop_seqmax		PL_cop_seqmax
#define PL_Icopline		PL_copline
#define PL_Icred_mutex		PL_cred_mutex
#define PL_Icryptseen		PL_cryptseen
#define PL_Icshlen		PL_cshlen
#define PL_Icshname		PL_cshname
#define PL_Icurcopdb		PL_curcopdb
#define PL_Icurstname		PL_curstname
#define PL_Icurthr		PL_curthr
#define PL_Idbargs		PL_dbargs
#define PL_Idebdelim		PL_debdelim
#define PL_Idebname		PL_debname
#define PL_Idebstash		PL_debstash
#define PL_Idebug		PL_debug
#define PL_Idefgv		PL_defgv
#define PL_Idiehook		PL_diehook
#define PL_Idlevel		PL_dlevel
#define PL_Idlmax		PL_dlmax
#define PL_Idoextract		PL_doextract
#define PL_Idoswitches		PL_doswitches
#define PL_Idowarn		PL_dowarn
#define PL_Ie_script		PL_e_script
#define PL_Iefloatbuf		PL_efloatbuf
#define PL_Iefloatsize		PL_efloatsize
#define PL_Iegid		PL_egid
#define PL_Iendav		PL_endav
#define PL_Ienvgv		PL_envgv
#define PL_Ierrgv		PL_errgv
#define PL_Ierror_count		PL_error_count
#define PL_Ieuid		PL_euid
#define PL_Ieval_cond		PL_eval_cond
#define PL_Ieval_mutex		PL_eval_mutex
#define PL_Ieval_owner		PL_eval_owner
#define PL_Ieval_root		PL_eval_root
#define PL_Ieval_start		PL_eval_start
#define PL_Ievalseq		PL_evalseq
#define PL_Iexitlist		PL_exitlist
#define PL_Iexitlistlen		PL_exitlistlen
#define PL_Iexpect		PL_expect
#define PL_Ifdpid		PL_fdpid
#define PL_Ifilemode		PL_filemode
#define PL_Ifilter_debug	PL_filter_debug
#define PL_Iforkprocess		PL_forkprocess
#define PL_Iformfeed		PL_formfeed
#define PL_Igeneration		PL_generation
#define PL_Igensym		PL_gensym
#define PL_Igid			PL_gid
#define PL_Iglob_index		PL_glob_index
#define PL_Iglobalstash		PL_globalstash
#define PL_Ihe_root		PL_he_root
#define PL_Ihintgv		PL_hintgv
#define PL_Ihints		PL_hints
#define PL_Iin_clean_all	PL_in_clean_all
#define PL_Iin_clean_objs	PL_in_clean_objs
#define PL_Iin_my		PL_in_my
#define PL_Iin_my_stash		PL_in_my_stash
#define PL_Iincgv		PL_incgv
#define PL_Iinitav		PL_initav
#define PL_Iinplace		PL_inplace
#define PL_Ilast_lop		PL_last_lop
#define PL_Ilast_lop_op		PL_last_lop_op
#define PL_Ilast_swash_hv	PL_last_swash_hv
#define PL_Ilast_swash_key	PL_last_swash_key
#define PL_Ilast_swash_klen	PL_last_swash_klen
#define PL_Ilast_swash_slen	PL_last_swash_slen
#define PL_Ilast_swash_tmps	PL_last_swash_tmps
#define PL_Ilast_uni		PL_last_uni
#define PL_Ilastfd		PL_lastfd
#define PL_Ilastsize		PL_lastsize
#define PL_Ilastspbase		PL_lastspbase
#define PL_Ilaststatval		PL_laststatval
#define PL_Ilaststype		PL_laststype
#define PL_Ileftgv		PL_leftgv
#define PL_Ilex_brackets	PL_lex_brackets
#define PL_Ilex_brackstack	PL_lex_brackstack
#define PL_Ilex_casemods	PL_lex_casemods
#define PL_Ilex_casestack	PL_lex_casestack
#define PL_Ilex_defer		PL_lex_defer
#define PL_Ilex_dojoin		PL_lex_dojoin
#define PL_Ilex_expect		PL_lex_expect
#define PL_Ilex_fakebrack	PL_lex_fakebrack
#define PL_Ilex_formbrack	PL_lex_formbrack
#define PL_Ilex_inpat		PL_lex_inpat
#define PL_Ilex_inwhat		PL_lex_inwhat
#define PL_Ilex_op		PL_lex_op
#define PL_Ilex_repl		PL_lex_repl
#define PL_Ilex_starts		PL_lex_starts
#define PL_Ilex_state		PL_lex_state
#define PL_Ilex_stuff		PL_lex_stuff
#define PL_Ilineary		PL_lineary
#define PL_Ilinestart		PL_linestart
#define PL_Ilinestr		PL_linestr
#define PL_Ilocalpatches	PL_localpatches
#define PL_Imain_cv		PL_main_cv
#define PL_Imain_root		PL_main_root
#define PL_Imain_start		PL_main_start
#define PL_Imalloc_mutex	PL_malloc_mutex
#define PL_Imax_intro_pending	PL_max_intro_pending
#define PL_Imaxo		PL_maxo
#define PL_Imaxsysfd		PL_maxsysfd
#define PL_Imess_sv		PL_mess_sv
#define PL_Imin_intro_pending	PL_min_intro_pending
#define PL_Iminus_F		PL_minus_F
#define PL_Iminus_a		PL_minus_a
#define PL_Iminus_c		PL_minus_c
#define PL_Iminus_l		PL_minus_l
#define PL_Iminus_n		PL_minus_n
#define PL_Iminus_p		PL_minus_p
#define PL_Imodglobal		PL_modglobal
#define PL_Imulti_close		PL_multi_close
#define PL_Imulti_end		PL_multi_end
#define PL_Imulti_open		PL_multi_open
#define PL_Imulti_start		PL_multi_start
#define PL_Imultiline		PL_multiline
#define PL_Imystrk		PL_mystrk
#define PL_Inexttoke		PL_nexttoke
#define PL_Inexttype		PL_nexttype
#define PL_Inextval		PL_nextval
#define PL_Inice_chunk		PL_nice_chunk
#define PL_Inice_chunk_size	PL_nice_chunk_size
#define PL_Inomemok		PL_nomemok
#define PL_Inthreads		PL_nthreads
#define PL_Inthreads_cond	PL_nthreads_cond
#define PL_Inumeric_local	PL_numeric_local
#define PL_Inumeric_name	PL_numeric_name
#define PL_Inumeric_radix	PL_numeric_radix
#define PL_Inumeric_standard	PL_numeric_standard
#define PL_Iofmt		PL_ofmt
#define PL_Ioldbufptr		PL_oldbufptr
#define PL_Ioldlastpm		PL_oldlastpm
#define PL_Ioldname		PL_oldname
#define PL_Ioldoldbufptr	PL_oldoldbufptr
#define PL_Iop_mask		PL_op_mask
#define PL_Iop_seqmax		PL_op_seqmax
#define PL_Iorigalen		PL_origalen
#define PL_Iorigargc		PL_origargc
#define PL_Iorigargv		PL_origargv
#define PL_Iorigenviron		PL_origenviron
#define PL_Iorigfilename	PL_origfilename
#define PL_Iors			PL_ors
#define PL_Iorslen		PL_orslen
#define PL_Iosname		PL_osname
#define PL_Ipad_reset_pending	PL_pad_reset_pending
#define PL_Ipadix		PL_padix
#define PL_Ipadix_floor		PL_padix_floor
#define PL_Iparsehook		PL_parsehook
#define PL_Ipatchlevel		PL_patchlevel
#define PL_Ipending_ident	PL_pending_ident
#define PL_Iperl_destruct_level	PL_perl_destruct_level
#define PL_Iperldb		PL_perldb
#define PL_Ipidstatus		PL_pidstatus
#define PL_Ipreambleav		PL_preambleav
#define PL_Ipreambled		PL_preambled
#define PL_Ipreprocess		PL_preprocess
#define PL_Iprofiledata		PL_profiledata
#define PL_Ireplgv		PL_replgv
#define PL_Irightgv		PL_rightgv
#define PL_Irsfp		PL_rsfp
#define PL_Irsfp_filters	PL_rsfp_filters
#define PL_Irunops		PL_runops
#define PL_Isawampersand	PL_sawampersand
#define PL_Isawstudy		PL_sawstudy
#define PL_Isawvec		PL_sawvec
#define PL_Ish_path		PL_sh_path
#define PL_Isiggv		PL_siggv
#define PL_Isighandlerp		PL_sighandlerp
#define PL_Isplitstr		PL_splitstr
#define PL_Isrand_called	PL_srand_called
#define PL_Istatusvalue		PL_statusvalue
#define PL_Istatusvalue_vms	PL_statusvalue_vms
#define PL_Istdingv		PL_stdingv
#define PL_Istrchop		PL_strchop
#define PL_Istrtab		PL_strtab
#define PL_Istrtab_mutex	PL_strtab_mutex
#define PL_Isub_generation	PL_sub_generation
#define PL_Isublex_info		PL_sublex_info
#define PL_Isubline		PL_subline
#define PL_Isubname		PL_subname
#define PL_Isv_arenaroot	PL_sv_arenaroot
#define PL_Isv_count		PL_sv_count
#define PL_Isv_mutex		PL_sv_mutex
#define PL_Isv_no		PL_sv_no
#define PL_Isv_objcount		PL_sv_objcount
#define PL_Isv_root		PL_sv_root
#define PL_Isv_undef		PL_sv_undef
#define PL_Isv_yes		PL_sv_yes
#define PL_Isvref_mutex		PL_svref_mutex
#define PL_Isys_intern		PL_sys_intern
#define PL_Itainting		PL_tainting
#define PL_Ithisexpr		PL_thisexpr
#define PL_Ithr_key		PL_thr_key
#define PL_Ithreadnum		PL_threadnum
#define PL_Ithreads_mutex	PL_threads_mutex
#define PL_Ithreadsv_names	PL_threadsv_names
#define PL_Ithrsv		PL_thrsv
#define PL_Itokenbuf		PL_tokenbuf
#define PL_Iuid			PL_uid
#define PL_Iunsafe		PL_unsafe
#define PL_Iutf8_alnum		PL_utf8_alnum
#define PL_Iutf8_alnumc		PL_utf8_alnumc
#define PL_Iutf8_alpha		PL_utf8_alpha
#define PL_Iutf8_ascii		PL_utf8_ascii
#define PL_Iutf8_cntrl		PL_utf8_cntrl
#define PL_Iutf8_digit		PL_utf8_digit
#define PL_Iutf8_graph		PL_utf8_graph
#define PL_Iutf8_lower		PL_utf8_lower
#define PL_Iutf8_mark		PL_utf8_mark
#define PL_Iutf8_print		PL_utf8_print
#define PL_Iutf8_punct		PL_utf8_punct
#define PL_Iutf8_space		PL_utf8_space
#define PL_Iutf8_tolower	PL_utf8_tolower
#define PL_Iutf8_totitle	PL_utf8_totitle
#define PL_Iutf8_toupper	PL_utf8_toupper
#define PL_Iutf8_upper		PL_utf8_upper
#define PL_Iutf8_xdigit		PL_utf8_xdigit
#define PL_Iuudmap		PL_uudmap
#define PL_Iwarnhook		PL_warnhook
#define PL_Ixiv_arenaroot	PL_xiv_arenaroot
#define PL_Ixiv_root		PL_xiv_root
#define PL_Ixnv_root		PL_xnv_root
#define PL_Ixpv_root		PL_xpv_root
#define PL_Ixrv_root		PL_xrv_root
#define PL_Iyychar		PL_yychar
#define PL_Iyydebug		PL_yydebug
#define PL_Iyyerrflag		PL_yyerrflag
#define PL_Iyylval		PL_yylval
#define PL_Iyynerrs		PL_yynerrs
#define PL_Iyyval		PL_yyval

#  if defined(USE_THREADS)
/* case 4 above */

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

#  else		/* !USE_THREADS */
/* cases 1 and 6 above */

#define PL_TSv			PL_Sv
#define PL_TXpv			PL_Xpv
#define PL_Tav_fetch_sv		PL_av_fetch_sv
#define PL_Tbodytarget		PL_bodytarget
#define PL_Tbostr		PL_bostr
#define PL_Tchopset		PL_chopset
#define PL_Tcolors		PL_colors
#define PL_Tcolorset		PL_colorset
#define PL_Tcurcop		PL_curcop
#define PL_Tcurpad		PL_curpad
#define PL_Tcurpm		PL_curpm
#define PL_Tcurstack		PL_curstack
#define PL_Tcurstackinfo	PL_curstackinfo
#define PL_Tcurstash		PL_curstash
#define PL_Tdefoutgv		PL_defoutgv
#define PL_Tdefstash		PL_defstash
#define PL_Tdelaymagic		PL_delaymagic
#define PL_Tdirty		PL_dirty
#define PL_Tdumpindent		PL_dumpindent
#define PL_Textralen		PL_extralen
#define PL_Tfirstgv		PL_firstgv
#define PL_Tformtarget		PL_formtarget
#define PL_Thv_fetch_ent_mh	PL_hv_fetch_ent_mh
#define PL_Thv_fetch_sv		PL_hv_fetch_sv
#define PL_Tin_eval		PL_in_eval
#define PL_Tlast_in_gv		PL_last_in_gv
#define PL_Tlastgotoprobe	PL_lastgotoprobe
#define PL_Tlastscream		PL_lastscream
#define PL_Tlocalizing		PL_localizing
#define PL_Tmainstack		PL_mainstack
#define PL_Tmarkstack		PL_markstack
#define PL_Tmarkstack_max	PL_markstack_max
#define PL_Tmarkstack_ptr	PL_markstack_ptr
#define PL_Tmaxscream		PL_maxscream
#define PL_Tmodcount		PL_modcount
#define PL_Tna			PL_na
#define PL_Tnrs			PL_nrs
#define PL_Tofs			PL_ofs
#define PL_Tofslen		PL_ofslen
#define PL_Top			PL_op
#define PL_Topsave		PL_opsave
#define PL_Tprotect		PL_protect
#define PL_Treg_call_cc		PL_reg_call_cc
#define PL_Treg_curpm		PL_reg_curpm
#define PL_Treg_eval_set	PL_reg_eval_set
#define PL_Treg_flags		PL_reg_flags
#define PL_Treg_ganch		PL_reg_ganch
#define PL_Treg_leftiter	PL_reg_leftiter
#define PL_Treg_magic		PL_reg_magic
#define PL_Treg_maxiter		PL_reg_maxiter
#define PL_Treg_oldcurpm	PL_reg_oldcurpm
#define PL_Treg_oldpos		PL_reg_oldpos
#define PL_Treg_oldsaved	PL_reg_oldsaved
#define PL_Treg_oldsavedlen	PL_reg_oldsavedlen
#define PL_Treg_poscache	PL_reg_poscache
#define PL_Treg_poscache_size	PL_reg_poscache_size
#define PL_Treg_re		PL_reg_re
#define PL_Treg_start_tmp	PL_reg_start_tmp
#define PL_Treg_start_tmpl	PL_reg_start_tmpl
#define PL_Treg_starttry	PL_reg_starttry
#define PL_Treg_sv		PL_reg_sv
#define PL_Treg_whilem_seen	PL_reg_whilem_seen
#define PL_Tregbol		PL_regbol
#define PL_Tregcc		PL_regcc
#define PL_Tregcode		PL_regcode
#define PL_Tregcomp_parse	PL_regcomp_parse
#define PL_Tregcomp_rx		PL_regcomp_rx
#define PL_Tregcompp		PL_regcompp
#define PL_Tregdata		PL_regdata
#define PL_Tregdummy		PL_regdummy
#define PL_Tregendp		PL_regendp
#define PL_Tregeol		PL_regeol
#define PL_Tregexecp		PL_regexecp
#define PL_Tregflags		PL_regflags
#define PL_Tregfree		PL_regfree
#define PL_Tregindent		PL_regindent
#define PL_Treginput		PL_reginput
#define PL_Tregint_start	PL_regint_start
#define PL_Tregint_string	PL_regint_string
#define PL_Treginterp_cnt	PL_reginterp_cnt
#define PL_Treglastparen	PL_reglastparen
#define PL_Tregnarrate		PL_regnarrate
#define PL_Tregnaughty		PL_regnaughty
#define PL_Tregnpar		PL_regnpar
#define PL_Tregprecomp		PL_regprecomp
#define PL_Tregprev		PL_regprev
#define PL_Tregprogram		PL_regprogram
#define PL_Tregsawback		PL_regsawback
#define PL_Tregseen		PL_regseen
#define PL_Tregsize		PL_regsize
#define PL_Tregstartp		PL_regstartp
#define PL_Tregtill		PL_regtill
#define PL_Tregxend		PL_regxend
#define PL_Trestartop		PL_restartop
#define PL_Tretstack		PL_retstack
#define PL_Tretstack_ix		PL_retstack_ix
#define PL_Tretstack_max	PL_retstack_max
#define PL_Trs			PL_rs
#define PL_Tsavestack		PL_savestack
#define PL_Tsavestack_ix	PL_savestack_ix
#define PL_Tsavestack_max	PL_savestack_max
#define PL_Tscopestack		PL_scopestack
#define PL_Tscopestack_ix	PL_scopestack_ix
#define PL_Tscopestack_max	PL_scopestack_max
#define PL_Tscreamfirst		PL_screamfirst
#define PL_Tscreamnext		PL_screamnext
#define PL_Tsecondgv		PL_secondgv
#define PL_Tseen_evals		PL_seen_evals
#define PL_Tseen_zerolen	PL_seen_zerolen
#define PL_Tsortcop		PL_sortcop
#define PL_Tsortcxix		PL_sortcxix
#define PL_Tsortstash		PL_sortstash
#define PL_Tstack_base		PL_stack_base
#define PL_Tstack_max		PL_stack_max
#define PL_Tstack_sp		PL_stack_sp
#define PL_Tstart_env		PL_start_env
#define PL_Tstatbuf		PL_statbuf
#define PL_Tstatcache		PL_statcache
#define PL_Tstatgv		PL_statgv
#define PL_Tstatname		PL_statname
#define PL_Ttainted		PL_tainted
#define PL_Ttimesbuf		PL_timesbuf
#define PL_Ttmps_floor		PL_tmps_floor
#define PL_Ttmps_ix		PL_tmps_ix
#define PL_Ttmps_max		PL_tmps_max
#define PL_Ttmps_stack		PL_tmps_stack
#define PL_Ttop_env		PL_top_env
#define PL_Ttoptarget		PL_toptarget
#define PL_Twatchaddr		PL_watchaddr
#define PL_Twatchok		PL_watchok

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

#if defined(PERL_GLOBAL_STRUCT)

#define PL_No			(PL_Vars.GNo)
#define PL_Yes			(PL_Vars.GYes)
#define PL_curinterp		(PL_Vars.Gcurinterp)
#define PL_do_undump		(PL_Vars.Gdo_undump)
#define PL_hexdigit		(PL_Vars.Ghexdigit)
#define PL_patleave		(PL_Vars.Gpatleave)

#else /* !PERL_GLOBAL_STRUCT */

#define PL_GNo			PL_No
#define PL_GYes			PL_Yes
#define PL_Gcurinterp		PL_curinterp
#define PL_Gdo_undump		PL_do_undump
#define PL_Ghexdigit		PL_hexdigit
#define PL_Gpatleave		PL_patleave

#endif /* PERL_GLOBAL_STRUCT */

#ifdef PERL_POLLUTE		/* disabled by default in 5.006 */

#define DBsingle		PL_DBsingle
#define DBsub			PL_DBsub
#define compiling		PL_compiling
#define curcop			PL_curcop
#define curstash		PL_curstash
#define debstash		PL_debstash
#define defgv			PL_defgv
#define diehook			PL_diehook
#define dirty			PL_dirty
#define dowarn			PL_dowarn
#define errgv			PL_errgv
#define na			PL_na
#define no_modify		PL_no_modify
#define perl_destruct_level	PL_perl_destruct_level
#define perldb			PL_perldb
#define rsfp			PL_rsfp
#define rsfp_filters		PL_rsfp_filters
#define stack_base		PL_stack_base
#define stack_sp		PL_stack_sp
#define stdingv			PL_stdingv
#define sv_arenaroot		PL_sv_arenaroot
#define sv_no			PL_sv_no
#define sv_undef		PL_sv_undef
#define sv_yes			PL_sv_yes
#define tainted			PL_tainted
#define tainting		PL_tainting

#endif /* PERL_POLLUTE */