proto.h

来自「ARM上的如果你对底层感兴趣」· C头文件 代码 · 共 907 行 · 第 1/3 页

H
907
字号
#ifndef PERL_CALLCONV
#  define PERL_CALLCONV
#endif 

#ifdef PERL_OBJECT
#define VIRTUAL virtual PERL_CALLCONV
#else
#define VIRTUAL PERL_CALLCONV
START_EXTERN_C
#endif

/* NOTE!!! When new virtual functions are added, they must be added at
 * the end of this file to maintain binary compatibility with PERL_OBJECT
 */


#ifndef NEXT30_NO_ATTRIBUTE
#ifndef HASATTRIBUTE       /* disable GNU-cc attribute checking? */
#ifdef  __attribute__      /* Avoid possible redefinition errors */
#undef  __attribute__
#endif
#define __attribute__(attr)
#endif
#endif
#ifdef OVERLOAD
VIRTUAL SV*	amagic_call _((SV* left,SV* right,int method,int dir));
VIRTUAL bool	Gv_AMupdate _((HV* stash));
#endif /* OVERLOAD */
VIRTUAL OP*	append_elem _((I32 optype, OP* head, OP* tail));
VIRTUAL OP*	append_list _((I32 optype, LISTOP* first, LISTOP* last));
VIRTUAL I32	apply _((I32 type, SV** mark, SV** sp));
VIRTUAL void	assertref _((OP* o));
VIRTUAL bool	avhv_exists_ent _((AV *ar, SV* keysv, U32 hash));
VIRTUAL SV**	avhv_fetch_ent _((AV *ar, SV* keysv, I32 lval, U32 hash));
VIRTUAL HE*	avhv_iternext _((AV *ar));
VIRTUAL SV*	avhv_iterval _((AV *ar, HE* entry));
VIRTUAL HV*	avhv_keys _((AV *ar));
VIRTUAL void	av_clear _((AV* ar));
VIRTUAL void	av_extend _((AV* ar, I32 key));
VIRTUAL AV*	av_fake _((I32 size, SV** svp));
VIRTUAL SV**	av_fetch _((AV* ar, I32 key, I32 lval));
VIRTUAL void	av_fill _((AV* ar, I32 fill));
VIRTUAL I32	av_len _((AV* ar));
VIRTUAL AV*	av_make _((I32 size, SV** svp));
VIRTUAL SV*	av_pop _((AV* ar));
VIRTUAL void	av_push _((AV* ar, SV* val));
VIRTUAL void	av_reify _((AV* ar));
VIRTUAL SV*	av_shift _((AV* ar));
VIRTUAL SV**	av_store _((AV* ar, I32 key, SV* val));
VIRTUAL void	av_undef _((AV* ar));
VIRTUAL void	av_unshift _((AV* ar, I32 num));
VIRTUAL OP*	bind_match _((I32 type, OP* left, OP* pat));
VIRTUAL OP*	block_end _((I32 floor, OP* seq));
VIRTUAL I32	block_gimme _((void));
VIRTUAL int	block_start _((int full));
VIRTUAL void	boot_core_UNIVERSAL _((void));
VIRTUAL void	call_list _((I32 oldscope, AV* av_list));
VIRTUAL I32	cando _((I32 bit, I32 effective, Stat_t* statbufp));
#ifndef CASTNEGFLOAT
VIRTUAL U32	cast_ulong _((double f));
#endif
#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
VIRTUAL I32	my_chsize _((int fd, Off_t length));
#endif
VIRTUAL OP*	ck_gvconst _((OP*  o));
VIRTUAL OP*	ck_retarget _((OP* o));
#ifdef USE_THREADS
VIRTUAL MAGIC *	condpair_magic _((SV *sv));
#endif
VIRTUAL OP*	convert _((I32 optype, I32 flags, OP* o));
VIRTUAL void	croak _((const char* pat,...)) __attribute__((noreturn));
VIRTUAL void	cv_ckproto _((CV* cv, GV* gv, char* p));
VIRTUAL CV*	cv_clone _((CV* proto));
VIRTUAL SV*	cv_const_sv _((CV* cv));
VIRTUAL SV*	op_const_sv _((OP* o, CV* cv));
VIRTUAL void	cv_undef _((CV* cv));
VIRTUAL void	cx_dump _((PERL_CONTEXT* cs));
VIRTUAL SV*	filter_add _((filter_t funcp, SV* datasv));
VIRTUAL void	filter_del _((filter_t funcp));
VIRTUAL I32	filter_read _((int idx, SV* buffer, int maxlen));
VIRTUAL char **	get_op_descs _((void));
VIRTUAL char **	get_op_names _((void));
VIRTUAL char *	get_no_modify _((void));
VIRTUAL U32 *	get_opargs _((void));
VIRTUAL I32	cxinc _((void));
VIRTUAL void	deb _((const char* pat,...));
VIRTUAL void	deb_growlevel _((void));
VIRTUAL void	debprofdump _((void));
VIRTUAL I32	debop _((OP* o));
VIRTUAL I32	debstack _((void));
VIRTUAL I32	debstackptrs _((void));
VIRTUAL char*	delimcpy _((char* to, char* toend, char* from, char* fromend,
		    int delim, I32* retlen));
VIRTUAL void	deprecate _((char* s));
VIRTUAL OP*	die _((const char* pat,...));
VIRTUAL OP*	die_where _((char* message));
VIRTUAL void	dounwind _((I32 cxix));
VIRTUAL bool	do_aexec _((SV* really, SV** mark, SV** sp));
VIRTUAL int	do_binmode _((PerlIO *fp, int iotype, int flag));
VIRTUAL void    do_chop _((SV* asv, SV* sv));
VIRTUAL bool	do_close _((GV* gv, bool not_implicit));
VIRTUAL bool	do_eof _((GV* gv));
VIRTUAL bool	do_exec _((char* cmd));
VIRTUAL void	do_execfree _((void));
#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
I32	do_ipcctl _((I32 optype, SV** mark, SV** sp));
I32	do_ipcget _((I32 optype, SV** mark, SV** sp));
#endif
VIRTUAL void	do_join _((SV* sv, SV* del, SV** mark, SV** sp));
VIRTUAL OP*	do_kv _((ARGSproto));
#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
I32	do_msgrcv _((SV** mark, SV** sp));
I32	do_msgsnd _((SV** mark, SV** sp));
#endif
VIRTUAL bool	do_open _((GV* gv, char* name, I32 len,
		   int as_raw, int rawmode, int rawperm, PerlIO* supplied_fp));
VIRTUAL void	do_pipe _((SV* sv, GV* rgv, GV* wgv));
VIRTUAL bool	do_print _((SV* sv, PerlIO* fp));
VIRTUAL OP*	do_readline _((void));
VIRTUAL I32	do_chomp _((SV* sv));
VIRTUAL bool	do_seek _((GV* gv, long pos, int whence));
#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
I32	do_semop _((SV** mark, SV** sp));
I32	do_shmio _((I32 optype, SV** mark, SV** sp));
#endif
VIRTUAL void	do_sprintf _((SV* sv, I32 len, SV** sarg));
VIRTUAL long	do_sysseek _((GV* gv, long pos, int whence));
VIRTUAL long	do_tell _((GV* gv));
VIRTUAL I32	do_trans _((SV* sv, OP* arg));
VIRTUAL void	do_vecset _((SV* sv));
VIRTUAL void	do_vop _((I32 optype, SV* sv, SV* left, SV* right));
VIRTUAL I32	dowantarray _((void));
VIRTUAL void	dump_all _((void));
VIRTUAL void	dump_eval _((void));
#ifdef DUMP_FDS  /* See util.c */
VIRTUAL void	dump_fds _((char* s));
#endif
VIRTUAL void	dump_form _((GV* gv));
VIRTUAL void	dump_gv _((GV* gv));
#ifdef MYMALLOC
VIRTUAL void	dump_mstats _((char* s));
#endif
VIRTUAL void	dump_op _((OP* arg));
VIRTUAL void	dump_pm _((PMOP* pm));
VIRTUAL void	dump_packsubs _((HV* stash));
VIRTUAL void	dump_sub _((GV* gv));
VIRTUAL void	fbm_compile _((SV* sv, U32 flags));
VIRTUAL char*	fbm_instr _((unsigned char* big, unsigned char* bigend, SV* littlesv, U32 flags));
VIRTUAL char*	find_script _((char *scriptname, bool dosearch, char **search_ext, I32 flags));
#ifdef USE_THREADS
VIRTUAL PADOFFSET	find_threadsv _((char *name));
#endif
VIRTUAL OP*	force_list _((OP* arg));
VIRTUAL OP*	fold_constants _((OP* arg));
VIRTUAL char*	form _((const char* pat, ...));
VIRTUAL void	free_tmps _((void));
VIRTUAL OP*	gen_constant_list _((OP* o));
VIRTUAL void	gp_free _((GV* gv));
VIRTUAL GP*	gp_ref _((GP* gp));
VIRTUAL GV*	gv_AVadd _((GV* gv));
VIRTUAL GV*	gv_HVadd _((GV* gv));
VIRTUAL GV*	gv_IOadd _((GV* gv));
VIRTUAL GV*	gv_autoload4 _((HV* stash, char* name, STRLEN len, I32 method));
VIRTUAL void	gv_check _((HV* stash));
VIRTUAL void	gv_efullname _((SV* sv, GV* gv));
VIRTUAL void	gv_efullname3 _((SV* sv, GV* gv, char* prefix));
VIRTUAL GV*	gv_fetchfile _((char* name));
VIRTUAL GV*	gv_fetchmeth _((HV* stash, char* name, STRLEN len, I32 level));
VIRTUAL GV*	gv_fetchmethod _((HV* stash, char* name));
VIRTUAL GV*	gv_fetchmethod_autoload _((HV* stash, char* name, I32 autoload));
VIRTUAL GV*	gv_fetchpv _((char* name, I32 add, I32 sv_type));
VIRTUAL void	gv_fullname _((SV* sv, GV* gv));
VIRTUAL void	gv_fullname3 _((SV* sv, GV* gv, char* prefix));
VIRTUAL void	gv_init _((GV* gv, HV* stash, char* name, STRLEN len, int multi));
VIRTUAL HV*	gv_stashpv _((char* name, I32 create));
VIRTUAL HV*	gv_stashpvn _((char* name, U32 namelen, I32 create));
VIRTUAL HV*	gv_stashsv _((SV* sv, I32 create));
VIRTUAL void	hv_clear _((HV* tb));
VIRTUAL void	hv_delayfree_ent _((HV* hv, HE* entry));
VIRTUAL SV*	hv_delete _((HV* tb, char* key, U32 klen, I32 flags));
VIRTUAL SV*	hv_delete_ent _((HV* tb, SV* key, I32 flags, U32 hash));
VIRTUAL bool	hv_exists _((HV* tb, char* key, U32 klen));
VIRTUAL bool	hv_exists_ent _((HV* tb, SV* key, U32 hash));
VIRTUAL SV**	hv_fetch _((HV* tb, char* key, U32 klen, I32 lval));
VIRTUAL HE*	hv_fetch_ent _((HV* tb, SV* key, I32 lval, U32 hash));
VIRTUAL void	hv_free_ent _((HV* hv, HE* entry));
VIRTUAL I32	hv_iterinit _((HV* tb));
VIRTUAL char*	hv_iterkey _((HE* entry, I32* retlen));
VIRTUAL SV*	hv_iterkeysv _((HE* entry));
VIRTUAL HE*	hv_iternext _((HV* tb));
VIRTUAL SV*	hv_iternextsv _((HV* hv, char** key, I32* retlen));
VIRTUAL SV*	hv_iterval _((HV* tb, HE* entry));
VIRTUAL void	hv_ksplit _((HV* hv, IV newmax));
VIRTUAL void	hv_magic _((HV* hv, GV* gv, int how));
VIRTUAL SV**	hv_store _((HV* tb, char* key, U32 klen, SV* val, U32 hash));
VIRTUAL HE*	hv_store_ent _((HV* tb, SV* key, SV* val, U32 hash));
VIRTUAL void	hv_undef _((HV* tb));
VIRTUAL I32	ibcmp _((char* a, char* b, I32 len));
VIRTUAL I32	ibcmp_locale _((char* a, char* b, I32 len));
VIRTUAL I32	ingroup _((I32 testgid, I32 effective));
VIRTUAL void	init_stacks _((ARGSproto));
VIRTUAL U32	intro_my _((void));
VIRTUAL char*	instr _((char* big, char* little));
VIRTUAL bool	io_close _((IO* io));
VIRTUAL OP*	invert _((OP* cmd));
VIRTUAL OP*	jmaybe _((OP* arg));
VIRTUAL I32	keyword _((char* d, I32 len));
VIRTUAL void	leave_scope _((I32 base));
VIRTUAL void	lex_end _((void));
VIRTUAL void	lex_start _((SV* line));
VIRTUAL OP*	linklist _((OP* o));
VIRTUAL OP*	list _((OP* o));
VIRTUAL OP*	listkids _((OP* o));
VIRTUAL OP*	localize _((OP* arg, I32 lexical));
VIRTUAL I32	looks_like_number _((SV* sv));
VIRTUAL int	magic_clearenv	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_clear_all_env _((SV* sv, MAGIC* mg));
VIRTUAL int	magic_clearpack	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_clearsig	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_existspack _((SV* sv, MAGIC* mg));
VIRTUAL int	magic_freeregexp _((SV* sv, MAGIC* mg));
VIRTUAL int	magic_get	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_getarylen	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_getdefelem _((SV* sv, MAGIC* mg));
VIRTUAL int	magic_getglob	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_getnkeys	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_getpack	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_getpos	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_getsig	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_getsubstr	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_gettaint	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_getuvar	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_getvec	_((SV* sv, MAGIC* mg));
VIRTUAL U32	magic_len	_((SV* sv, MAGIC* mg));
#ifdef USE_THREADS
VIRTUAL int	magic_mutexfree	_((SV* sv, MAGIC* mg));
#endif /* USE_THREADS */
VIRTUAL int	magic_nextpack	_((SV* sv, MAGIC* mg, SV* key));
VIRTUAL int	magic_set	_((SV* sv, MAGIC* mg));
#ifdef OVERLOAD
VIRTUAL int	magic_setamagic	_((SV* sv, MAGIC* mg));
#endif /* OVERLOAD */
VIRTUAL int	magic_setarylen	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_setbm	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_setdbline	_((SV* sv, MAGIC* mg));
#ifdef USE_LOCALE_COLLATE
VIRTUAL int	magic_setcollxfrm _((SV* sv, MAGIC* mg));
#endif
VIRTUAL int	magic_setdefelem _((SV* sv, MAGIC* mg));
VIRTUAL int	magic_setenv	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_setfm	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_setisa	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_setglob	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_setmglob	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_setnkeys	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_setpack	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_setpos	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_setsig	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_setsubstr	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_settaint	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_setuvar	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_setvec	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_set_all_env _((SV* sv, MAGIC* mg));
VIRTUAL U32	magic_sizepack	_((SV* sv, MAGIC* mg));
VIRTUAL int	magic_wipepack	_((SV* sv, MAGIC* mg));
VIRTUAL void	magicname _((char* sym, char* name, I32 namlen));
int	main _((int argc, char** argv, char** env));
#ifdef MYMALLOC
VIRTUAL MEM_SIZE	malloced_size _((void *p));
#endif
VIRTUAL void	markstack_grow _((void));
#ifdef USE_LOCALE_COLLATE
VIRTUAL char*	mem_collxfrm _((const char* s, STRLEN len, STRLEN* xlen));
#endif
VIRTUAL char*	mess _((const char* pat, va_list* args));
VIRTUAL int	mg_clear _((SV* sv));
VIRTUAL int	mg_copy _((SV* sv, SV* nsv, char* key, I32 klen));
VIRTUAL MAGIC*	mg_find _((SV* sv, int type));
VIRTUAL int	mg_free _((SV* sv));
VIRTUAL int	mg_get _((SV* sv));
VIRTUAL U32	mg_length _((SV* sv));
VIRTUAL void	mg_magical _((SV* sv));
VIRTUAL int	mg_set _((SV* sv));
VIRTUAL I32	mg_size _((SV* sv));
VIRTUAL OP*	mod _((OP* o, I32 type));
VIRTUAL char*	moreswitches _((char* s));
VIRTUAL OP*	my _((OP* o));
#if !defined(HAS_BCOPY) || !defined(HAS_SAFE_BCOPY)
VIRTUAL char*	my_bcopy _((char* from, char* to, I32 len));
#endif
#if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
char*	my_bzero _((char* loc, I32 len));
#endif
VIRTUAL void	my_exit _((U32 status)) __attribute__((noreturn));
VIRTUAL void	my_failure_exit _((void)) __attribute__((noreturn));
VIRTUAL I32	my_lstat _((ARGSproto));
#if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP)
VIRTUAL I32	my_memcmp _((char* s1, char* s2, I32 len));
#endif
#if !defined(HAS_MEMSET)
VIRTUAL void*	my_memset _((char* loc, I32 ch, I32 len));
#endif
#ifndef PERL_OBJECT

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?