home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl560.zip / intrpvar.h < prev    next >
C/C++ Source or Header  |  2000-02-28  |  16KB  |  446 lines

  1. /***********************************************/
  2. /* Global only to current interpreter instance */
  3. /***********************************************/
  4.  
  5. /* Don't forget to re-run embed.pl to propagate changes! */
  6.  
  7. /* The 'I' prefix is only needed for vars that need appropriate #defines
  8.  * generated when built with or without MULTIPLICITY.  It is also used
  9.  * to generate the appropriate export list for win32.
  10.  *
  11.  * When building without MULTIPLICITY, these variables will be truly global. */
  12.  
  13. /* pseudo environmental stuff */
  14. PERLVAR(Iorigargc,    int)
  15. PERLVAR(Iorigargv,    char **)
  16. PERLVAR(Ienvgv,        GV *)
  17. PERLVAR(Iincgv,        GV *)
  18. PERLVAR(Ihintgv,    GV *)
  19. PERLVAR(Iorigfilename,    char *)
  20. PERLVAR(Idiehook,    SV *)
  21. PERLVAR(Iwarnhook,    SV *)
  22.  
  23. /* switches */
  24. PERLVAR(Iminus_c,    bool)
  25. PERLVAR(Ipatchlevel,    SV *)
  26. PERLVAR(Ilocalpatches,    char **)
  27. PERLVARI(Isplitstr,    char *,    " ")
  28. PERLVAR(Ipreprocess,    bool)
  29. PERLVAR(Iminus_n,    bool)
  30. PERLVAR(Iminus_p,    bool)
  31. PERLVAR(Iminus_l,    bool)
  32. PERLVAR(Iminus_a,    bool)
  33. PERLVAR(Iminus_F,    bool)
  34. PERLVAR(Idoswitches,    bool)
  35.  
  36. /*
  37. =for apidoc Amn|bool|PL_dowarn
  38.  
  39. The C variable which corresponds to Perl's $^W warning variable.
  40.  
  41. =cut
  42. */
  43.  
  44. PERLVAR(Idowarn,    U8)
  45. PERLVAR(Iwidesyscalls,    bool)        /* wide system calls */
  46. PERLVAR(Idoextract,    bool)
  47. PERLVAR(Isawampersand,    bool)        /* must save all match strings */
  48. PERLVAR(Iunsafe,    bool)
  49. PERLVAR(Iinplace,    char *)
  50. PERLVAR(Ie_script,    SV *)
  51. PERLVAR(Iperldb,    U32)
  52.  
  53. /* This value may be set when embedding for full cleanup  */
  54. /* 0=none, 1=full, 2=full with checks */
  55. PERLVARI(Iperl_destruct_level,    int,    0)
  56.  
  57. /* magical thingies */
  58. PERLVAR(Ibasetime,    Time_t)        /* $^T */
  59. PERLVAR(Iformfeed,    SV *)        /* $^L */
  60.  
  61.  
  62. PERLVARI(Imaxsysfd,    I32,    MAXSYSFD)
  63.                     /* top fd to pass to subprocesses */
  64. PERLVAR(Imultiline,    int)        /* $*--do strings hold >1 line? */
  65. PERLVAR(Istatusvalue,    I32)        /* $? */
  66. PERLVAR(Iexit_flags,    U8)        /* was exit() unexpected, etc. */
  67. #ifdef VMS
  68. PERLVAR(Istatusvalue_vms,U32)
  69. #endif
  70.  
  71. /* shortcuts to various I/O objects */
  72. PERLVAR(Istdingv,    GV *)
  73. PERLVAR(Istderrgv,    GV *)
  74. PERLVAR(Idefgv,        GV *)
  75. PERLVAR(Iargvgv,    GV *)
  76. PERLVAR(Iargvoutgv,    GV *)
  77. PERLVAR(Iargvout_stack,    AV *)
  78.  
  79. /* shortcuts to regexp stuff */
  80. /* this one needs to be moved to thrdvar.h and accessed via
  81.  * find_threadsv() when USE_THREADS */
  82. PERLVAR(Ireplgv,    GV *)
  83.  
  84. /* shortcuts to misc objects */
  85. PERLVAR(Ierrgv,        GV *)
  86.  
  87. /* shortcuts to debugging objects */
  88. PERLVAR(IDBgv,        GV *)
  89. PERLVAR(IDBline,    GV *)
  90.  
  91. /*
  92. =for apidoc Amn|GV *|PL_DBsub
  93. When Perl is run in debugging mode, with the B<-d> switch, this GV contains
  94. the SV which holds the name of the sub being debugged.  This is the C
  95. variable which corresponds to Perl's $DB::sub variable.  See
  96. C<PL_DBsingle>.
  97.  
  98. =for apidoc Amn|SV *|PL_DBsingle
  99. When Perl is run in debugging mode, with the B<-d> switch, this SV is a
  100. boolean which indicates whether subs are being single-stepped. 
  101. Single-stepping is automatically turned on after every step.  This is the C
  102. variable which corresponds to Perl's $DB::single variable.  See
  103. C<PL_DBsub>.
  104.  
  105. =for apidoc Amn|SV *|PL_DBtrace
  106. Trace variable used when Perl is run in debugging mode, with the B<-d>
  107. switch.  This is the C variable which corresponds to Perl's $DB::trace
  108. variable.  See C<PL_DBsingle>.
  109.  
  110. =cut
  111. */
  112.  
  113. PERLVAR(IDBsub,        GV *)
  114. PERLVAR(IDBsingle,    SV *)
  115. PERLVAR(IDBtrace,    SV *)
  116. PERLVAR(IDBsignal,    SV *)
  117. PERLVAR(Ilineary,    AV *)        /* lines of script for debugger */
  118. PERLVAR(Idbargs,    AV *)        /* args to call listed by caller function */
  119.  
  120. /* symbol tables */
  121. PERLVAR(Idebstash,    HV *)        /* symbol table for perldb package */
  122. PERLVAR(Iglobalstash,    HV *)        /* global keyword overrides imported here */
  123. PERLVAR(Icurstname,    SV *)        /* name of current package */
  124. PERLVAR(Ibeginav,    AV *)        /* names of BEGIN subroutines */
  125. PERLVAR(Iendav,        AV *)        /* names of END subroutines */
  126. PERLVAR(Icheckav,    AV *)        /* names of CHECK subroutines */
  127. PERLVAR(Iinitav,    AV *)        /* names of INIT subroutines */
  128. PERLVAR(Istrtab,    HV *)        /* shared string table */
  129. PERLVARI(Isub_generation,U32,1)        /* incr to invalidate method cache */
  130.  
  131. /* memory management */
  132. PERLVAR(Isv_count,    I32)        /* how many SV* are currently allocated */
  133. PERLVAR(Isv_objcount,    I32)        /* how many objects are currently allocated */
  134. PERLVAR(Isv_root,    SV*)        /* storage for SVs belonging to interp */
  135. PERLVAR(Isv_arenaroot,    SV*)        /* list of areas for garbage collection */
  136.  
  137. /* funky return mechanisms */
  138. PERLVAR(Iforkprocess,    int)        /* so do_open |- can return proc# */
  139.  
  140. /* subprocess state */
  141. PERLVAR(Ifdpid,        AV *)        /* keep fd-to-pid mappings for my_popen */
  142.  
  143. /* internal state */
  144. PERLVAR(Itainting,    bool)        /* doing taint checks */
  145. PERLVARI(Iop_mask,    char *,    NULL)    /* masked operations for safe evals */
  146.  
  147. /* current interpreter roots */
  148. PERLVAR(Imain_cv,    CV *)
  149. PERLVAR(Imain_root,    OP *)
  150. PERLVAR(Imain_start,    OP *)
  151. PERLVAR(Ieval_root,    OP *)
  152. PERLVAR(Ieval_start,    OP *)
  153.  
  154. /* runtime control stuff */
  155. PERLVARI(Icurcopdb,    COP *,    NULL)
  156. PERLVARI(Icopline,    line_t,    NOLINE)
  157.  
  158. /* statics moved here for shared library purposes */
  159. PERLVAR(Ifilemode,    int)        /* so nextargv() can preserve mode */
  160. PERLVAR(Ilastfd,    int)        /* what to preserve mode on */
  161. PERLVAR(Ioldname,    char *)        /* what to preserve mode on */
  162. PERLVAR(IArgv,        char **)    /* stuff to free from do_aexec, vfork safe */
  163. PERLVAR(ICmd,        char *)        /* stuff to free from do_aexec, vfork safe */
  164. PERLVAR(Igensym,    I32)        /* next symbol for getsym() to define */
  165. PERLVAR(Ipreambled,    bool)
  166. PERLVAR(Ipreambleav,    AV *)
  167. PERLVARI(Ilaststatval,    int,    -1)
  168. PERLVARI(Ilaststype,    I32,    OP_STAT)
  169. PERLVAR(Imess_sv,    SV *)
  170.  
  171. /* XXX shouldn't these be per-thread? --GSAR */
  172. PERLVAR(Iors,        char *)        /* output record separator $\ */
  173. PERLVAR(Iorslen,    STRLEN)
  174. PERLVAR(Iofmt,        char *)        /* output format for numbers $# */
  175.  
  176. /* interpreter atexit processing */
  177. PERLVARI(Iexitlist,    PerlExitListEntry *, NULL)
  178.                     /* list of exit functions */
  179. PERLVARI(Iexitlistlen,    I32, 0)        /* length of same */
  180.  
  181. /*
  182. =for apidoc Amn|HV*|PL_modglobal
  183.  
  184. C<PL_modglobal> is a general purpose, interpreter global HV for use by 
  185. extensions that need to keep information on a per-interpreter basis.
  186. In a pinch, it can also be used as a symbol table for extensions 
  187. to share data among each other.  It is a good idea to use keys 
  188. prefixed by the package name of the extension that owns the data.
  189.  
  190. =cut
  191. */
  192.  
  193. PERLVAR(Imodglobal,    HV *)        /* per-interp module data */
  194.  
  195. /* these used to be in global before 5.004_68 */
  196. PERLVARI(Iprofiledata,    U32 *,    NULL)    /* table of ops, counts */
  197. PERLVARI(Irsfp,    PerlIO * VOL,    Nullfp) /* current source file pointer */
  198. PERLVARI(Irsfp_filters,    AV *,    Nullav)    /* keeps active source filters */
  199.  
  200. PERLVAR(Icompiling,    COP)        /* compiling/done executing marker */
  201.  
  202. PERLVAR(Icompcv,    CV *)        /* currently compiling subroutine */
  203. PERLVAR(Icomppad,    AV *)        /* storage for lexically scoped temporaries */
  204. PERLVAR(Icomppad_name,    AV *)        /* variable names for "my" variables */
  205. PERLVAR(Icomppad_name_fill,    I32)    /* last "introduced" variable offset */
  206. PERLVAR(Icomppad_name_floor,    I32)    /* start of vars in innermost block */
  207.  
  208. #ifdef HAVE_INTERP_INTERN
  209. PERLVAR(Isys_intern,    struct interp_intern)
  210.                     /* platform internals */
  211. #endif
  212.  
  213. /* more statics moved here */
  214. PERLVARI(Igeneration,    int,    100)    /* from op.c */
  215. PERLVAR(IDBcv,        CV *)        /* from perl.c */
  216.  
  217. PERLVARI(Iin_clean_objs,bool,    FALSE)    /* from sv.c */
  218. PERLVARI(Iin_clean_all,    bool,    FALSE)    /* from sv.c */
  219.  
  220. PERLVAR(Ilinestart,    char *)        /* beg. of most recently read line */
  221. PERLVAR(Ipending_ident,    char)        /* pending identifier lookup */
  222. PERLVAR(Isublex_info,    SUBLEXINFO)    /* from toke.c */
  223.  
  224. #ifdef USE_THREADS
  225. PERLVAR(Ithrsv,        SV *)        /* struct perl_thread for main thread */
  226. PERLVARI(Ithreadnum,    U32,    0)    /* incremented each thread creation */
  227. PERLVAR(Istrtab_mutex,    perl_mutex)    /* Mutex for string table access */
  228. #endif /* USE_THREADS */
  229.  
  230. PERLVAR(Iuid,        Uid_t)        /* current real user id */
  231. PERLVAR(Ieuid,        Uid_t)        /* current effective user id */
  232. PERLVAR(Igid,        Gid_t)        /* current real group id */
  233. PERLVAR(Iegid,        Gid_t)        /* current effective group id */
  234. PERLVAR(Inomemok,    bool)        /* let malloc context handle nomem */
  235. PERLVAR(Ian,        U32)        /* malloc sequence number */
  236. PERLVAR(Icop_seqmax,    U32)        /* statement sequence number */
  237. PERLVAR(Iop_seqmax,    U16)        /* op sequence number */
  238. PERLVAR(Ievalseq,    U32)        /* eval sequence number */
  239. PERLVAR(Iorigenviron,    char **)
  240. PERLVAR(Iorigalen,    U32)
  241. PERLVAR(Ipidstatus,    HV *)        /* pid-to-status mappings for waitpid */
  242. PERLVARI(Imaxo,    int,    MAXO)        /* maximum number of ops */
  243. PERLVAR(Iosname,    char *)        /* operating system */
  244. PERLVARI(Ish_path,    char *,    SH_PATH)/* full path of shell */
  245. PERLVAR(Isighandlerp,    Sighandler_t)
  246.  
  247. PERLVAR(Ixiv_arenaroot,    XPV*)        /* list of allocated xiv areas */
  248. PERLVAR(Ixiv_root,    IV *)        /* free xiv list--shared by interpreters */
  249. PERLVAR(Ixnv_root,    NV *)        /* free xnv list--shared by interpreters */
  250. PERLVAR(Ixrv_root,    XRV *)        /* free xrv list--shared by interpreters */
  251. PERLVAR(Ixpv_root,    XPV *)        /* free xpv list--shared by interpreters */
  252. PERLVAR(Ixpviv_root,    XPVIV *)    /* free xpviv list--shared by interpreters */
  253. PERLVAR(Ixpvnv_root,    XPVNV *)    /* free xpvnv list--shared by interpreters */
  254. PERLVAR(Ixpvcv_root,    XPVCV *)    /* free xpvcv list--shared by interpreters */
  255. PERLVAR(Ixpvav_root,    XPVAV *)    /* free xpvav list--shared by interpreters */
  256. PERLVAR(Ixpvhv_root,    XPVHV *)    /* free xpvhv list--shared by interpreters */
  257. PERLVAR(Ixpvmg_root,    XPVMG *)    /* free xpvmg list--shared by interpreters */
  258. PERLVAR(Ixpvlv_root,    XPVLV *)    /* free xpvlv list--shared by interpreters */
  259. PERLVAR(Ixpvbm_root,    XPVBM *)    /* free xpvbm list--shared by interpreters */
  260. PERLVAR(Ihe_root,    HE *)        /* free he list--shared by interpreters */
  261. PERLVAR(Inice_chunk,    char *)        /* a nice chunk of memory to reuse */
  262. PERLVAR(Inice_chunk_size,    U32)    /* how nice the chunk of memory is */
  263.  
  264. PERLVARI(Irunops,    runops_proc_t,    MEMBER_TO_FPTR(RUNOPS_DEFAULT))
  265.  
  266. PERLVARA(Itokenbuf,256,    char)
  267.  
  268. /*
  269. =for apidoc Amn|SV|PL_sv_undef
  270. This is the C<undef> SV.  Always refer to this as C<&PL_sv_undef>.
  271.  
  272. =for apidoc Amn|SV|PL_sv_no
  273. This is the C<false> SV.  See C<PL_sv_yes>.  Always refer to this as
  274. C<&PL_sv_no>.
  275.  
  276. =for apidoc Amn|SV|PL_sv_yes
  277. This is the C<true> SV.  See C<PL_sv_no>.  Always refer to this as
  278. C<&PL_sv_yes>.
  279.  
  280. =cut
  281. */
  282.  
  283. PERLVAR(Isv_undef,    SV)
  284. PERLVAR(Isv_no,        SV)
  285. PERLVAR(Isv_yes,    SV)
  286.  
  287. #ifdef CSH
  288. PERLVARI(Icshname,    char *,    CSH)
  289. PERLVAR(Icshlen,    I32)
  290. #endif
  291.  
  292. PERLVAR(Ilex_state,    U32)        /* next token is determined */
  293. PERLVAR(Ilex_defer,    U32)        /* state after determined token */
  294. PERLVAR(Ilex_expect,    int)        /* expect after determined token */
  295. PERLVAR(Ilex_brackets,    I32)        /* bracket count */
  296. PERLVAR(Ilex_formbrack,    I32)        /* bracket count at outer format level */
  297. PERLVAR(Ilex_casemods,    I32)        /* casemod count */
  298. PERLVAR(Ilex_dojoin,    I32)        /* doing an array interpolation */
  299. PERLVAR(Ilex_starts,    I32)        /* how many interps done on level */
  300. PERLVAR(Ilex_stuff,    SV *)        /* runtime pattern from m// or s/// */
  301. PERLVAR(Ilex_repl,    SV *)        /* runtime replacement from s/// */
  302. PERLVAR(Ilex_op,    OP *)        /* extra info to pass back on op */
  303. PERLVAR(Ilex_inpat,    OP *)        /* in pattern $) and $| are special */
  304. PERLVAR(Ilex_inwhat,    I32)        /* what kind of quoting are we in */
  305. PERLVAR(Ilex_brackstack,char *)        /* what kind of brackets to pop */
  306. PERLVAR(Ilex_casestack,    char *)        /* what kind of case mods in effect */
  307.  
  308. /* What we know when we're in LEX_KNOWNEXT state. */
  309. PERLVARA(Inextval,5,    YYSTYPE)    /* value of next token, if any */
  310. PERLVARA(Inexttype,5,    I32)        /* type of next token */
  311. PERLVAR(Inexttoke,    I32)
  312.  
  313. PERLVAR(Ilinestr,    SV *)
  314. PERLVAR(Ibufptr,    char *)
  315. PERLVAR(Ioldbufptr,    char *)
  316. PERLVAR(Ioldoldbufptr,    char *)
  317. PERLVAR(Ibufend,    char *)
  318. PERLVARI(Iexpect,int,    XSTATE)        /* how to interpret ambiguous tokens */
  319.  
  320. PERLVAR(Imulti_start,    I32)        /* 1st line of multi-line string */
  321. PERLVAR(Imulti_end,    I32)        /* last line of multi-line string */
  322. PERLVAR(Imulti_open,    I32)        /* delimiter of said string */
  323. PERLVAR(Imulti_close,    I32)        /* delimiter of said string */
  324.  
  325. PERLVAR(Ierror_count,    I32)        /* how many errors so far, max 10 */
  326. PERLVAR(Isubline,    I32)        /* line this subroutine began on */
  327. PERLVAR(Isubname,    SV *)        /* name of current subroutine */
  328.  
  329. PERLVAR(Imin_intro_pending,    I32)    /* start of vars to introduce */
  330. PERLVAR(Imax_intro_pending,    I32)    /* end of vars to introduce */
  331. PERLVAR(Ipadix,        I32)        /* max used index in current "register" pad */
  332. PERLVAR(Ipadix_floor,    I32)        /* how low may inner block reset padix */
  333. PERLVAR(Ipad_reset_pending,    I32)    /* reset pad on next attempted alloc */
  334.  
  335. PERLVAR(Ilast_uni,    char *)        /* position of last named-unary op */
  336. PERLVAR(Ilast_lop,    char *)        /* position of last list operator */
  337. PERLVAR(Ilast_lop_op,    OPCODE)        /* last list operator */
  338. PERLVAR(Iin_my,        I32)        /* we're compiling a "my" (or "our") declaration */
  339. PERLVAR(Iin_my_stash,    HV *)        /* declared class of this "my" declaration */
  340. #ifdef FCRYPT
  341. PERLVAR(Icryptseen,    bool)        /* has fast crypt() been initialized? */
  342. #endif
  343.  
  344. PERLVAR(Ihints,        U32)        /* pragma-tic compile-time flags */
  345.  
  346. PERLVAR(Idebug,        VOL U32)    /* flags given to -D switch */
  347.  
  348. PERLVAR(Iamagic_generation,    long)
  349.  
  350. #ifdef USE_LOCALE_COLLATE
  351. PERLVAR(Icollation_ix,    U32)        /* Collation generation index */
  352. PERLVAR(Icollation_name,char *)        /* Name of current collation */
  353. PERLVARI(Icollation_standard, bool,    TRUE)
  354.                     /* Assume simple collation */
  355. PERLVAR(Icollxfrm_base,    Size_t)        /* Basic overhead in *xfrm() */
  356. PERLVARI(Icollxfrm_mult,Size_t,    2)    /* Expansion factor in *xfrm() */
  357. #endif /* USE_LOCALE_COLLATE */
  358.  
  359. #ifdef USE_LOCALE_NUMERIC
  360.  
  361. PERLVAR(Inumeric_name,    char *)        /* Name of current numeric locale */
  362. PERLVARI(Inumeric_standard,    bool,    TRUE)
  363.                     /* Assume simple numerics */
  364. PERLVARI(Inumeric_local,    bool,    TRUE)
  365.                     /* Assume local numerics */
  366. PERLVAR(Inumeric_radix,        char)
  367.                     /* The radix character if not '.' */
  368.  
  369. #endif /* !USE_LOCALE_NUMERIC */
  370.  
  371. /* utf8 character classes */
  372. PERLVAR(Iutf8_alnum,    SV *)
  373. PERLVAR(Iutf8_alnumc,    SV *)
  374. PERLVAR(Iutf8_ascii,    SV *)
  375. PERLVAR(Iutf8_alpha,    SV *)
  376. PERLVAR(Iutf8_space,    SV *)
  377. PERLVAR(Iutf8_cntrl,    SV *)
  378. PERLVAR(Iutf8_graph,    SV *)
  379. PERLVAR(Iutf8_digit,    SV *)
  380. PERLVAR(Iutf8_upper,    SV *)
  381. PERLVAR(Iutf8_lower,    SV *)
  382. PERLVAR(Iutf8_print,    SV *)
  383. PERLVAR(Iutf8_punct,    SV *)
  384. PERLVAR(Iutf8_xdigit,    SV *)
  385. PERLVAR(Iutf8_mark,    SV *)
  386. PERLVAR(Iutf8_toupper,    SV *)
  387. PERLVAR(Iutf8_totitle,    SV *)
  388. PERLVAR(Iutf8_tolower,    SV *)
  389. PERLVAR(Ilast_swash_hv,    HV *)
  390. PERLVAR(Ilast_swash_klen,    U32)
  391. PERLVARA(Ilast_swash_key,10,    U8)
  392. PERLVAR(Ilast_swash_tmps,    U8 *)
  393. PERLVAR(Ilast_swash_slen,    STRLEN)
  394.  
  395. /* perly.c globals */
  396. PERLVAR(Iyydebug,    int)
  397. PERLVAR(Iyynerrs,    int)
  398. PERLVAR(Iyyerrflag,    int)
  399. PERLVAR(Iyychar,    int)
  400. PERLVAR(Iyyval,        YYSTYPE)
  401. PERLVAR(Iyylval,    YYSTYPE)
  402.  
  403. PERLVAR(Iglob_index,    int)
  404. PERLVAR(Isrand_called,    bool)
  405. PERLVARA(Iuudmap,256,    char)
  406. PERLVAR(Ibitcount,    char *)
  407.  
  408. #ifdef USE_THREADS
  409. PERLVAR(Isv_mutex,    perl_mutex)    /* Mutex for allocating SVs in sv.c */
  410. PERLVAR(Ieval_mutex,    perl_mutex)    /* Mutex for doeval */
  411. PERLVAR(Ieval_cond,    perl_cond)    /* Condition variable for doeval */
  412. PERLVAR(Ieval_owner,    struct perl_thread *)
  413.                     /* Owner thread for doeval */
  414. PERLVAR(Inthreads,    int)        /* Number of threads currently */
  415. PERLVAR(Ithreads_mutex,    perl_mutex)    /* Mutex for nthreads and thread list */
  416. PERLVAR(Inthreads_cond,    perl_cond)    /* Condition variable for nthreads */
  417. PERLVAR(Isvref_mutex,    perl_mutex)    /* Mutex for SvREFCNT_{inc,dec} */
  418. PERLVARI(Ithreadsv_names,char *,    THREADSV_NAMES)
  419. #ifdef FAKE_THREADS
  420. PERLVAR(Icurthr,    struct perl_thread *)
  421.                     /* Currently executing (fake) thread */
  422. #endif
  423.  
  424. PERLVAR(Icred_mutex,    perl_mutex)    /* altered credentials in effect */
  425.  
  426. #endif /* USE_THREADS */
  427.  
  428. PERLVAR(Ipsig_ptr, SV**)
  429. PERLVAR(Ipsig_name, SV**)
  430.  
  431. #if defined(PERL_IMPLICIT_SYS)
  432. PERLVAR(IMem,        struct IPerlMem*)
  433. PERLVAR(IMemShared,    struct IPerlMem*)
  434. PERLVAR(IMemParse,    struct IPerlMem*)
  435. PERLVAR(IEnv,        struct IPerlEnv*)
  436. PERLVAR(IStdIO,        struct IPerlStdIO*)
  437. PERLVAR(ILIO,        struct IPerlLIO*)
  438. PERLVAR(IDir,        struct IPerlDir*)
  439. PERLVAR(ISock,        struct IPerlSock*)
  440. PERLVAR(IProc,        struct IPerlProc*)
  441. #endif
  442.  
  443. #if defined(USE_ITHREADS)
  444. PERLVAR(Iptr_table,    PTR_TBL_t*)
  445. #endif
  446.