📄 intrpvar.h
字号:
PERLVAR(Ieval_start, OP *)/* runtime control stuff */PERLVARI(Icurcopdb, COP *, NULL)PERLVAR(Ifilemode, int) /* so nextargv() can preserve mode */PERLVAR(Ilastfd, int) /* what to preserve mode on */PERLVAR(Ioldname, char *) /* what to preserve mode on */PERLVAR(IArgv, char **) /* stuff to free from do_aexec, vfork safe */PERLVAR(ICmd, char *) /* stuff to free from do_aexec, vfork safe *//* Elements in this array have ';' appended and are injected as a single line into the tokeniser. You can't put any (literal) newlines into any program you stuff in into this array, as the point where it's injected is expecting a single physical line. */PERLVAR(Ipreambleav, AV *)PERLVAR(Imess_sv, SV *)PERLVAR(Iors_sv, SV *) /* output record separator $\ *//* statics moved here for shared library purposes */PERLVARI(Igensym, I32, 0) /* next symbol for getsym() to define */PERLVARI(Icv_has_eval, bool, FALSE) /* PL_compcv includes an entereval or similar */PERLVAR(Itaint_warn, bool) /* taint warns instead of dying */PERLVARI(Ilaststype, U16, OP_STAT)PERLVARI(Ilaststatval, int, -1)/* interpreter atexit processing */PERLVARI(Iexitlistlen, I32, 0) /* length of same */PERLVARI(Iexitlist, PerlExitListEntry *, NULL) /* list of exit functions *//*=for apidoc Amn|HV*|PL_modglobalC<PL_modglobal> is a general purpose, interpreter global HV for use byextensions that need to keep information on a per-interpreter basis.In a pinch, it can also be used as a symbol table for extensionsto share data among each other. It is a good idea to use keysprefixed by the package name of the extension that owns the data.=cut*/PERLVAR(Imodglobal, HV *) /* per-interp module data *//* these used to be in global before 5.004_68 */PERLVARI(Iprofiledata, U32 *, NULL) /* table of ops, counts */PERLVAR(Icompiling, COP) /* compiling/done executing marker */PERLVAR(Icompcv, CV *) /* currently compiling subroutine */PERLVAR(Icomppad, AV *) /* storage for lexically scoped temporaries */PERLVAR(Icomppad_name, AV *) /* variable names for "my" variables */PERLVAR(Icomppad_name_fill, I32) /* last "introduced" variable offset */PERLVAR(Icomppad_name_floor, I32) /* start of vars in innermost block */#ifdef HAVE_INTERP_INTERNPERLVAR(Isys_intern, struct interp_intern) /* platform internals */#endif/* more statics moved here */PERLVAR(IDBcv, CV *) /* from perl.c */PERLVARI(Igeneration, int, 100) /* from op.c */PERLVARI(Iin_clean_objs,bool, FALSE) /* from sv.c */PERLVARI(Iin_clean_all, bool, FALSE) /* from sv.c */PERLVAR(Inomemok, bool) /* let malloc context handle nomem */PERLVARI(Isavebegin, bool, FALSE) /* save BEGINs for compiler */PERLVAR(Iuid, Uid_t) /* current real user id */PERLVAR(Ieuid, Uid_t) /* current effective user id */PERLVAR(Igid, Gid_t) /* current real group id */PERLVAR(Iegid, Gid_t) /* current effective group id */PERLVARI(Ian, U32, 0) /* malloc sequence number */PERLVARI(Icop_seqmax, U32, 0) /* statement sequence number */PERLVARI(Ievalseq, U32, 0) /* eval sequence number */PERLVAR(Iorigalen, U32)PERLVAR(Iorigenviron, char **)#ifdef PERL_USES_PL_PIDSTATUSPERLVAR(Ipidstatus, HV *) /* pid-to-status mappings for waitpid */#endifPERLVAR(Iosname, char *) /* operating system */PERLVAR(Isighandlerp, Sighandler_t)PERLVARA(Ibody_roots, PERL_ARENA_ROOTS_SIZE, void*) /* array of body roots */PERLVAR(Inice_chunk, char *) /* a nice chunk of memory to reuse */PERLVAR(Inice_chunk_size, U32) /* how nice the chunk of memory is */PERLVARI(Imaxo, int, MAXO) /* maximum number of ops */PERLVARI(Irunops, runops_proc_t, MEMBER_TO_FPTR(RUNOPS_DEFAULT))/*=for apidoc Amn|SV|PL_sv_undefThis is the C<undef> SV. Always refer to this as C<&PL_sv_undef>.=for apidoc Amn|SV|PL_sv_noThis is the C<false> SV. See C<PL_sv_yes>. Always refer to this asC<&PL_sv_no>.=for apidoc Amn|SV|PL_sv_yesThis is the C<true> SV. See C<PL_sv_no>. Always refer to this asC<&PL_sv_yes>.=cut*/PERLVAR(Isv_undef, SV)PERLVAR(Isv_no, SV)PERLVAR(Isv_yes, SV)PERLVAR(Isubname, SV *) /* name of current subroutine */PERLVAR(Isubline, I32) /* line this subroutine began on */PERLVAR(Imin_intro_pending, I32) /* start of vars to introduce */PERLVAR(Imax_intro_pending, I32) /* end of vars to introduce */PERLVAR(Ipadix, I32) /* max used index in current "register" pad */PERLVAR(Ipadix_floor, I32) /* how low may inner block reset padix */PERLVAR(Ipad_reset_pending, I32) /* reset pad on next attempted alloc */PERLVAR(Ihints, U32) /* pragma-tic compile-time flags */PERLVAR(Idebug, VOL U32) /* flags given to -D switch */PERLVARI(Iamagic_generation, long, 0)#ifdef USE_LOCALE_COLLATEPERLVAR(Icollation_name,char *) /* Name of current collation */PERLVAR(Icollxfrm_base, Size_t) /* Basic overhead in *xfrm() */PERLVARI(Icollxfrm_mult,Size_t, 2) /* Expansion factor in *xfrm() */PERLVARI(Icollation_ix, U32, 0) /* Collation generation index */PERLVARI(Icollation_standard, bool, TRUE) /* Assume simple collation */#endif /* USE_LOCALE_COLLATE */#if defined (PERL_UTF8_CACHE_ASSERT) || defined (DEBUGGING)# define PERL___I -1#else# define PERL___I 1#endifPERLVARI(Iutf8cache, I8, PERL___I) /* Is the utf8 caching code enabled? */#undef PERL___I#ifdef USE_LOCALE_NUMERICPERLVARI(Inumeric_standard, bool, TRUE) /* Assume simple numerics */PERLVARI(Inumeric_local, bool, TRUE) /* Assume local numerics */PERLVAR(Inumeric_name, char *) /* Name of current numeric locale */#endif /* !USE_LOCALE_NUMERIC *//* utf8 character classes */PERLVAR(Iutf8_alnum, SV *)PERLVAR(Iutf8_alnumc, SV *)PERLVAR(Iutf8_ascii, SV *)PERLVAR(Iutf8_alpha, SV *)PERLVAR(Iutf8_space, SV *)PERLVAR(Iutf8_cntrl, SV *)PERLVAR(Iutf8_graph, SV *)PERLVAR(Iutf8_digit, SV *)PERLVAR(Iutf8_upper, SV *)PERLVAR(Iutf8_lower, SV *)PERLVAR(Iutf8_print, SV *)PERLVAR(Iutf8_punct, SV *)PERLVAR(Iutf8_xdigit, SV *)PERLVAR(Iutf8_mark, SV *)PERLVAR(Iutf8_toupper, SV *)PERLVAR(Iutf8_totitle, SV *)PERLVAR(Iutf8_tolower, SV *)PERLVAR(Iutf8_tofold, SV *)PERLVAR(Ilast_swash_hv, HV *)PERLVAR(Ilast_swash_tmps, U8 *)PERLVAR(Ilast_swash_slen, STRLEN)PERLVARA(Ilast_swash_key,10, U8)PERLVAR(Ilast_swash_klen, U8) /* Only needs to store 0-10 */#ifdef FCRYPTPERLVARI(Icryptseen, bool, FALSE) /* has fast crypt() been initialized? */#endifPERLVARI(Iglob_index, int, 0)PERLVAR(Iparser, yy_parser *) /* current parser state */PERLVAR(Ibitcount, char *)PERLVAR(Ipsig_ptr, SV**)PERLVAR(Ipsig_name, SV**)#if defined(PERL_IMPLICIT_SYS)PERLVAR(IMem, struct IPerlMem*)PERLVAR(IMemShared, struct IPerlMem*)PERLVAR(IMemParse, struct IPerlMem*)PERLVAR(IEnv, struct IPerlEnv*)PERLVAR(IStdIO, struct IPerlStdIO*)PERLVAR(ILIO, struct IPerlLIO*)PERLVAR(IDir, struct IPerlDir*)PERLVAR(ISock, struct IPerlSock*)PERLVAR(IProc, struct IPerlProc*)#endifPERLVAR(Iptr_table, PTR_TBL_t*)PERLVARI(Ibeginav_save, AV*, NULL) /* save BEGIN{}s when compiling */PERLVAR(Ibody_arenas, void*) /* pointer to list of body-arenas */#ifdef USE_LOCALE_NUMERICPERLVAR(Inumeric_radix_sv, SV *) /* The radix separator if not '.' */#endif#if defined(USE_ITHREADS)PERLVAR(Iregex_pad, SV**) /* All regex objects */PERLVAR(Iregex_padav, AV*) /* All regex objects */#endif#ifdef USE_REENTRANT_APIPERLVAR(Ireentrant_buffer, REENTR*) /* here we store the _r buffers */#endifPERLVAR(Icustom_op_names, HV*) /* Names of user defined ops */PERLVAR(Icustom_op_descs, HV*) /* Descriptions of user defined ops */#ifdef PERLIO_LAYERSPERLVARI(Iperlio, PerlIO *,NULL)PERLVARI(Iknown_layers, PerlIO_list_t *,NULL)PERLVARI(Idef_layerlist, PerlIO_list_t *,NULL)#endifPERLVARI(Iencoding, SV*, NULL) /* character encoding */PERLVAR(Idebug_pad, struct perl_debug_pad) /* always needed because of the re extension */PERLVAR(Iutf8_idstart, SV *)PERLVAR(Iutf8_idcont, SV *)PERLVAR(Isort_RealCmp, SVCOMPARE_t)PERLVARI(Icheckav_save, AV*, NULL) /* save CHECK{}s when compiling */PERLVARI(Iunitcheckav_save, AV*, NULL) /* save UNITCHECK{}s when compiling */PERLVARI(Iclocktick, long, 0) /* this many times() ticks in a second */PERLVARI(Iin_load_module, int, 0) /* to prevent recursions in PerlIO_find_layer */PERLVAR(Iunicode, U32) /* Unicode features: $ENV{PERL_UNICODE} or -C */PERLVAR(Isignals, U32) /* Using which pre-5.8 signals */PERLVAR(Ireentrant_retint, int) /* Integer return value from reentrant functions */PERLVAR(Istashcache, HV *) /* Cache to speed up S_method_common *//* Hooks to shared SVs and locks. */PERLVARI(Isharehook, share_proc_t, MEMBER_TO_FPTR(Perl_sv_nosharing))PERLVARI(Ilockhook, share_proc_t, MEMBER_TO_FPTR(Perl_sv_nosharing))#ifdef NO_MATHOMS# define PERL_UNLOCK_HOOK Perl_sv_nosharing#else/* This reference ensures that the mathoms are linked with perl */# define PERL_UNLOCK_HOOK Perl_sv_nounlocking#endifPERLVARI(Iunlockhook, share_proc_t, MEMBER_TO_FPTR(PERL_UNLOCK_HOOK))PERLVARI(Ithreadhook, thrhook_proc_t, MEMBER_TO_FPTR(Perl_nothreadhook))PERLVARI(Ihash_seed, UV, 0) /* Hash initializer */PERLVARI(Irehash_seed, UV, 0) /* 582 hash initializer */PERLVARI(Iisarev, HV*, NULL) /* Reverse map of @ISA dependencies *//* The last unconditional member of the interpreter structure when 5.10.0 was released. The offset of the end of this is baked into a global variable in any shared perl library which will allow a sanity test in future perl releases. */#define PERL_LAST_5_10_0_INTERP_MEMBER Iisarev#ifdef PERL_IMPLICIT_CONTEXTPERLVARI(Imy_cxt_size, int, 0) /* size of PL_my_cxt_list */PERLVARI(Imy_cxt_list, void **, NULL) /* per-module array of MY_CXT pointers */# ifdef PERL_GLOBAL_STRUCT_PRIVATEPERLVARI(Imy_cxt_keys, const char **, NULL) /* per-module array of pointers to MY_CXT_KEY constants */# endif#endif#ifdef PERL_TRACK_MEMPOOL/* For use with the memory debugging code in util.c */PERLVAR(Imemory_debug_header, struct perl_memory_debug_header)#endif#ifdef DEBUG_LEAKING_SCALARS_FORK_DUMP/* File descriptor to talk to the child which dumps scalars. */PERLVARI(Idumper_fd, int, -1)#endif/* Stores the PPID */#ifdef THREADS_HAVE_PIDSPERLVARI(Ippid, IV, 0)#endif#ifdef PERL_MADPERLVARI(Imadskills, bool, FALSE) /* preserve all syntactic info */ /* (MAD = Misc Attribute Decoration) */PERLVARI(Ixmlfp, PerlIO *,NULL)#endif#ifdef PL_OP_SLAB_ALLOCPERLVAR(IOpPtr,I32 **)PERLVARI(IOpSpace,I32,0)PERLVAR(IOpSlab,I32 *)#endif#ifdef PERL_DEBUG_READONLY_OPSPERLVARI(Islabs, I32**, NULL) /* Array of slabs that have been allocated */PERLVARI(Islab_count, U32, 0) /* Size of the array */#endif/* Can shared object be destroyed */PERLVARI(Idestroyhook, destroyable_proc_t, MEMBER_TO_FPTR(Perl_sv_destroyable))/* If you are adding a U8 or U16, check to see if there are 'Space' comments * above on where there are gaps which currently will be structure padding. *//* Within a stable branch, new variables must be added to the very end, before * this comment, for binary compatibility (the offsets of the old members must * not change). * (Don't forget to add your variable also to perl_clone()!) * XSUB.h provides wrapper functions via perlapi.h that make this * irrelevant, but not all code may be expected to #include XSUB.h. */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -