source: trunk/third/perl/proto.h @ 20075

Revision 20075, 72.5 KB checked in by zacheiss, 21 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r20074, which included commits to RCS files with non-trunk default branches.
Line 
1/*
2 *    proto.h
3 *
4 *    Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999,
5 *    2000, 2001, 2002, 2003, by Larry Wall and others
6 *
7 *    You may distribute under the terms of either the GNU General Public
8 *    License or the Artistic License, as specified in the README file.
9 *
10 * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
11 * This file is built by embed.pl from data in embed.fnc, embed.pl,
12 * pp.sym, intrpvar.h, perlvars.h and thrdvar.h.
13 * Any changes made here will be lost!
14 *
15 * Edit those files and run 'make regen_headers' to effect changes.
16 */
17
18START_EXTERN_C
19
20#if defined(PERL_IMPLICIT_SYS)
21PERL_CALLCONV PerlInterpreter*  perl_alloc_using(struct IPerlMem* m, struct IPerlMem* ms, struct IPerlMem* mp, struct IPerlEnv* e, struct IPerlStdIO* io, struct IPerlLIO* lio, struct IPerlDir* d, struct IPerlSock* s, struct IPerlProc* p);
22#endif
23PERL_CALLCONV PerlInterpreter*  perl_alloc(void);
24PERL_CALLCONV void      perl_construct(PerlInterpreter* interp);
25PERL_CALLCONV int       perl_destruct(PerlInterpreter* interp);
26PERL_CALLCONV void      perl_free(PerlInterpreter* interp);
27PERL_CALLCONV int       perl_run(PerlInterpreter* interp);
28PERL_CALLCONV int       perl_parse(PerlInterpreter* interp, XSINIT_t xsinit, int argc, char** argv, char** env);
29PERL_CALLCONV bool      Perl_doing_taint(int argc, char** argv, char** env);
30#if defined(USE_ITHREADS)
31PERL_CALLCONV PerlInterpreter*  perl_clone(PerlInterpreter* interp, UV flags);
32#  if defined(PERL_IMPLICIT_SYS)
33PERL_CALLCONV PerlInterpreter*  perl_clone_using(PerlInterpreter *interp, UV flags, struct IPerlMem* m, struct IPerlMem* ms, struct IPerlMem* mp, struct IPerlEnv* e, struct IPerlStdIO* io, struct IPerlLIO* lio, struct IPerlDir* d, struct IPerlSock* s, struct IPerlProc* p);
34#  endif
35#endif
36
37PERL_CALLCONV Malloc_t  Perl_malloc(MEM_SIZE nbytes);
38PERL_CALLCONV Malloc_t  Perl_calloc(MEM_SIZE elements, MEM_SIZE size);
39PERL_CALLCONV Malloc_t  Perl_realloc(Malloc_t where, MEM_SIZE nbytes);
40PERL_CALLCONV Free_t    Perl_mfree(Malloc_t where);
41#if defined(MYMALLOC)
42PERL_CALLCONV MEM_SIZE  Perl_malloced_size(void *p);
43#endif
44
45PERL_CALLCONV void*     Perl_get_context(void);
46PERL_CALLCONV void      Perl_set_context(void *thx);
47
48END_EXTERN_C
49
50/* functions with flag 'n' should come before here */
51START_EXTERN_C
52#  include "pp_proto.h"
53PERL_CALLCONV SV*       Perl_amagic_call(pTHX_ SV* left, SV* right, int method, int dir);
54PERL_CALLCONV bool      Perl_Gv_AMupdate(pTHX_ HV* stash);
55PERL_CALLCONV CV*       Perl_gv_handler(pTHX_ HV* stash, I32 id);
56PERL_CALLCONV OP*       Perl_append_elem(pTHX_ I32 optype, OP* head, OP* tail);
57PERL_CALLCONV OP*       Perl_append_list(pTHX_ I32 optype, LISTOP* first, LISTOP* last);
58PERL_CALLCONV I32       Perl_apply(pTHX_ I32 type, SV** mark, SV** sp);
59PERL_CALLCONV void      Perl_apply_attrs_string(pTHX_ char *stashpv, CV *cv, char *attrstr, STRLEN len);
60PERL_CALLCONV SV*       Perl_avhv_delete_ent(pTHX_ AV *ar, SV* keysv, I32 flags, U32 hash);
61PERL_CALLCONV bool      Perl_avhv_exists_ent(pTHX_ AV *ar, SV* keysv, U32 hash);
62PERL_CALLCONV SV**      Perl_avhv_fetch_ent(pTHX_ AV *ar, SV* keysv, I32 lval, U32 hash);
63PERL_CALLCONV SV**      Perl_avhv_store_ent(pTHX_ AV *ar, SV* keysv, SV* val, U32 hash);
64PERL_CALLCONV HE*       Perl_avhv_iternext(pTHX_ AV *ar);
65PERL_CALLCONV SV*       Perl_avhv_iterval(pTHX_ AV *ar, HE* entry);
66PERL_CALLCONV HV*       Perl_avhv_keys(pTHX_ AV *ar);
67PERL_CALLCONV void      Perl_av_clear(pTHX_ AV* ar);
68PERL_CALLCONV SV*       Perl_av_delete(pTHX_ AV* ar, I32 key, I32 flags);
69PERL_CALLCONV bool      Perl_av_exists(pTHX_ AV* ar, I32 key);
70PERL_CALLCONV void      Perl_av_extend(pTHX_ AV* ar, I32 key);
71PERL_CALLCONV AV*       Perl_av_fake(pTHX_ I32 size, SV** svp);
72PERL_CALLCONV SV**      Perl_av_fetch(pTHX_ AV* ar, I32 key, I32 lval);
73PERL_CALLCONV void      Perl_av_fill(pTHX_ AV* ar, I32 fill);
74PERL_CALLCONV I32       Perl_av_len(pTHX_ AV* ar);
75PERL_CALLCONV AV*       Perl_av_make(pTHX_ I32 size, SV** svp);
76PERL_CALLCONV SV*       Perl_av_pop(pTHX_ AV* ar);
77PERL_CALLCONV void      Perl_av_push(pTHX_ AV* ar, SV* val);
78PERL_CALLCONV void      Perl_av_reify(pTHX_ AV* ar);
79PERL_CALLCONV SV*       Perl_av_shift(pTHX_ AV* ar);
80PERL_CALLCONV SV**      Perl_av_store(pTHX_ AV* ar, I32 key, SV* val);
81PERL_CALLCONV void      Perl_av_undef(pTHX_ AV* ar);
82PERL_CALLCONV void      Perl_av_unshift(pTHX_ AV* ar, I32 num);
83PERL_CALLCONV OP*       Perl_bind_match(pTHX_ I32 type, OP* left, OP* pat);
84PERL_CALLCONV OP*       Perl_block_end(pTHX_ I32 floor, OP* seq);
85PERL_CALLCONV I32       Perl_block_gimme(pTHX);
86PERL_CALLCONV int       Perl_block_start(pTHX_ int full);
87PERL_CALLCONV void      Perl_boot_core_UNIVERSAL(pTHX);
88PERL_CALLCONV void      Perl_boot_core_PerlIO(pTHX);
89PERL_CALLCONV void      Perl_call_list(pTHX_ I32 oldscope, AV* av_list);
90PERL_CALLCONV bool      Perl_cando(pTHX_ Mode_t mode, Uid_t effective, Stat_t* statbufp);
91PERL_CALLCONV U32       Perl_cast_ulong(pTHX_ NV f);
92PERL_CALLCONV I32       Perl_cast_i32(pTHX_ NV f);
93PERL_CALLCONV IV        Perl_cast_iv(pTHX_ NV f);
94PERL_CALLCONV UV        Perl_cast_uv(pTHX_ NV f);
95#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
96PERL_CALLCONV I32       Perl_my_chsize(pTHX_ int fd, Off_t length);
97#endif
98#if defined(USE_5005THREADS)
99PERL_CALLCONV MAGIC*    Perl_condpair_magic(pTHX_ SV *sv);
100#endif
101PERL_CALLCONV OP*       Perl_convert(pTHX_ I32 optype, I32 flags, OP* o);
102PERL_CALLCONV void      Perl_croak(pTHX_ const char* pat, ...) __attribute__((noreturn))
103        __attribute__format__(__printf__,pTHX_1,pTHX_2);
104PERL_CALLCONV void      Perl_vcroak(pTHX_ const char* pat, va_list* args) __attribute__((noreturn));
105#if defined(PERL_IMPLICIT_CONTEXT)
106PERL_CALLCONV void      Perl_croak_nocontext(const char* pat, ...) __attribute__((noreturn))
107        __attribute__format__(__printf__,1,2);
108PERL_CALLCONV OP*       Perl_die_nocontext(const char* pat, ...)
109        __attribute__format__(__printf__,1,2);
110PERL_CALLCONV void      Perl_deb_nocontext(const char* pat, ...)
111        __attribute__format__(__printf__,1,2);
112PERL_CALLCONV char*     Perl_form_nocontext(const char* pat, ...)
113        __attribute__format__(__printf__,1,2);
114PERL_CALLCONV void      Perl_load_module_nocontext(U32 flags, SV* name, SV* ver, ...);
115PERL_CALLCONV SV*       Perl_mess_nocontext(const char* pat, ...)
116        __attribute__format__(__printf__,1,2);
117PERL_CALLCONV void      Perl_warn_nocontext(const char* pat, ...)
118        __attribute__format__(__printf__,1,2);
119PERL_CALLCONV void      Perl_warner_nocontext(U32 err, const char* pat, ...)
120        __attribute__format__(__printf__,2,3);
121PERL_CALLCONV SV*       Perl_newSVpvf_nocontext(const char* pat, ...)
122        __attribute__format__(__printf__,1,2);
123PERL_CALLCONV void      Perl_sv_catpvf_nocontext(SV* sv, const char* pat, ...)
124        __attribute__format__(__printf__,2,3);
125PERL_CALLCONV void      Perl_sv_setpvf_nocontext(SV* sv, const char* pat, ...)
126        __attribute__format__(__printf__,2,3);
127PERL_CALLCONV void      Perl_sv_catpvf_mg_nocontext(SV* sv, const char* pat, ...)
128        __attribute__format__(__printf__,2,3);
129PERL_CALLCONV void      Perl_sv_setpvf_mg_nocontext(SV* sv, const char* pat, ...)
130        __attribute__format__(__printf__,2,3);
131PERL_CALLCONV int       Perl_fprintf_nocontext(PerlIO* stream, const char* fmt, ...)
132        __attribute__format__(__printf__,2,3);
133PERL_CALLCONV int       Perl_printf_nocontext(const char* fmt, ...)
134        __attribute__format__(__printf__,1,2);
135#endif
136PERL_CALLCONV void      Perl_cv_ckproto(pTHX_ CV* cv, GV* gv, char* p);
137PERL_CALLCONV CV*       Perl_cv_clone(pTHX_ CV* proto);
138PERL_CALLCONV SV*       Perl_cv_const_sv(pTHX_ CV* cv);
139PERL_CALLCONV SV*       Perl_op_const_sv(pTHX_ OP* o, CV* cv);
140PERL_CALLCONV void      Perl_cv_undef(pTHX_ CV* cv);
141PERL_CALLCONV void      Perl_cx_dump(pTHX_ PERL_CONTEXT* cs);
142PERL_CALLCONV SV*       Perl_filter_add(pTHX_ filter_t funcp, SV* datasv);
143PERL_CALLCONV void      Perl_filter_del(pTHX_ filter_t funcp);
144PERL_CALLCONV I32       Perl_filter_read(pTHX_ int idx, SV* buffer, int maxlen);
145PERL_CALLCONV char**    Perl_get_op_descs(pTHX);
146PERL_CALLCONV char**    Perl_get_op_names(pTHX);
147PERL_CALLCONV char*     Perl_get_no_modify(pTHX);
148PERL_CALLCONV U32*      Perl_get_opargs(pTHX);
149PERL_CALLCONV PPADDR_t* Perl_get_ppaddr(pTHX);
150PERL_CALLCONV I32       Perl_cxinc(pTHX);
151PERL_CALLCONV void      Perl_deb(pTHX_ const char* pat, ...)
152        __attribute__format__(__printf__,pTHX_1,pTHX_2);
153PERL_CALLCONV void      Perl_vdeb(pTHX_ const char* pat, va_list* args);
154PERL_CALLCONV void      Perl_debprofdump(pTHX);
155PERL_CALLCONV I32       Perl_debop(pTHX_ OP* o);
156PERL_CALLCONV I32       Perl_debstack(pTHX);
157PERL_CALLCONV I32       Perl_debstackptrs(pTHX);
158PERL_CALLCONV char*     Perl_delimcpy(pTHX_ char* to, char* toend, char* from, char* fromend, int delim, I32* retlen);
159PERL_CALLCONV void      Perl_deprecate(pTHX_ char* s);
160PERL_CALLCONV void      Perl_deprecate_old(pTHX_ char* s);
161PERL_CALLCONV OP*       Perl_die(pTHX_ const char* pat, ...)
162        __attribute__format__(__printf__,pTHX_1,pTHX_2);
163PERL_CALLCONV OP*       Perl_vdie(pTHX_ const char* pat, va_list* args);
164PERL_CALLCONV OP*       Perl_die_where(pTHX_ char* message, STRLEN msglen);
165PERL_CALLCONV void      Perl_dounwind(pTHX_ I32 cxix);
166PERL_CALLCONV bool      Perl_do_aexec(pTHX_ SV* really, SV** mark, SV** sp);
167PERL_CALLCONV bool      Perl_do_aexec5(pTHX_ SV* really, SV** mark, SV** sp, int fd, int flag);
168PERL_CALLCONV int       Perl_do_binmode(pTHX_ PerlIO *fp, int iotype, int mode);
169PERL_CALLCONV void      Perl_do_chop(pTHX_ SV* asv, SV* sv);
170PERL_CALLCONV bool      Perl_do_close(pTHX_ GV* gv, bool not_implicit);
171PERL_CALLCONV bool      Perl_do_eof(pTHX_ GV* gv);
172PERL_CALLCONV bool      Perl_do_exec(pTHX_ char* cmd);
173#if defined(WIN32)
174PERL_CALLCONV int       Perl_do_aspawn(pTHX_ SV* really, SV** mark, SV** sp);
175PERL_CALLCONV int       Perl_do_spawn(pTHX_ char* cmd);
176PERL_CALLCONV int       Perl_do_spawn_nowait(pTHX_ char* cmd);
177#endif
178#if !defined(WIN32)
179PERL_CALLCONV bool      Perl_do_exec3(pTHX_ char* cmd, int fd, int flag);
180#endif
181PERL_CALLCONV void      Perl_do_execfree(pTHX);
182#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
183PERL_CALLCONV I32       Perl_do_ipcctl(pTHX_ I32 optype, SV** mark, SV** sp);
184PERL_CALLCONV I32       Perl_do_ipcget(pTHX_ I32 optype, SV** mark, SV** sp);
185PERL_CALLCONV I32       Perl_do_msgrcv(pTHX_ SV** mark, SV** sp);
186PERL_CALLCONV I32       Perl_do_msgsnd(pTHX_ SV** mark, SV** sp);
187PERL_CALLCONV I32       Perl_do_semop(pTHX_ SV** mark, SV** sp);
188PERL_CALLCONV I32       Perl_do_shmio(pTHX_ I32 optype, SV** mark, SV** sp);
189#endif
190PERL_CALLCONV void      Perl_do_join(pTHX_ SV* sv, SV* del, SV** mark, SV** sp);
191PERL_CALLCONV OP*       Perl_do_kv(pTHX);
192PERL_CALLCONV bool      Perl_do_open(pTHX_ GV* gv, char* name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO* supplied_fp);
193PERL_CALLCONV bool      Perl_do_open9(pTHX_ GV *gv, char *name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO *supplied_fp, SV *svs, I32 num);
194PERL_CALLCONV bool      Perl_do_openn(pTHX_ GV *gv, char *name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO *supplied_fp, SV **svp, I32 num);
195PERL_CALLCONV void      Perl_do_pipe(pTHX_ SV* sv, GV* rgv, GV* wgv);
196PERL_CALLCONV bool      Perl_do_print(pTHX_ SV* sv, PerlIO* fp);
197PERL_CALLCONV OP*       Perl_do_readline(pTHX);
198PERL_CALLCONV I32       Perl_do_chomp(pTHX_ SV* sv);
199PERL_CALLCONV bool      Perl_do_seek(pTHX_ GV* gv, Off_t pos, int whence);
200PERL_CALLCONV void      Perl_do_sprintf(pTHX_ SV* sv, I32 len, SV** sarg);
201PERL_CALLCONV Off_t     Perl_do_sysseek(pTHX_ GV* gv, Off_t pos, int whence);
202PERL_CALLCONV Off_t     Perl_do_tell(pTHX_ GV* gv);
203PERL_CALLCONV I32       Perl_do_trans(pTHX_ SV* sv);
204PERL_CALLCONV UV        Perl_do_vecget(pTHX_ SV* sv, I32 offset, I32 size);
205PERL_CALLCONV void      Perl_do_vecset(pTHX_ SV* sv);
206PERL_CALLCONV void      Perl_do_vop(pTHX_ I32 optype, SV* sv, SV* left, SV* right);
207PERL_CALLCONV OP*       Perl_dofile(pTHX_ OP* term);
208PERL_CALLCONV I32       Perl_dowantarray(pTHX);
209PERL_CALLCONV void      Perl_dump_all(pTHX);
210PERL_CALLCONV void      Perl_dump_eval(pTHX);
211#if defined(DUMP_FDS)
212PERL_CALLCONV void      Perl_dump_fds(pTHX_ char* s);
213#endif
214PERL_CALLCONV void      Perl_dump_form(pTHX_ GV* gv);
215PERL_CALLCONV void      Perl_gv_dump(pTHX_ GV* gv);
216PERL_CALLCONV void      Perl_op_dump(pTHX_ OP* arg);
217PERL_CALLCONV void      Perl_pmop_dump(pTHX_ PMOP* pm);
218PERL_CALLCONV void      Perl_dump_packsubs(pTHX_ HV* stash);
219PERL_CALLCONV void      Perl_dump_sub(pTHX_ GV* gv);
220PERL_CALLCONV void      Perl_fbm_compile(pTHX_ SV* sv, U32 flags);
221PERL_CALLCONV char*     Perl_fbm_instr(pTHX_ unsigned char* big, unsigned char* bigend, SV* littlesv, U32 flags);
222PERL_CALLCONV char*     Perl_find_script(pTHX_ char *scriptname, bool dosearch, char **search_ext, I32 flags);
223#if defined(USE_5005THREADS)
224PERL_CALLCONV PADOFFSET Perl_find_threadsv(pTHX_ const char *name);
225#endif
226PERL_CALLCONV OP*       Perl_force_list(pTHX_ OP* arg);
227PERL_CALLCONV OP*       Perl_fold_constants(pTHX_ OP* arg);
228PERL_CALLCONV char*     Perl_form(pTHX_ const char* pat, ...)
229        __attribute__format__(__printf__,pTHX_1,pTHX_2);
230PERL_CALLCONV char*     Perl_vform(pTHX_ const char* pat, va_list* args);
231PERL_CALLCONV void      Perl_free_tmps(pTHX);
232PERL_CALLCONV OP*       Perl_gen_constant_list(pTHX_ OP* o);
233#if !defined(HAS_GETENV_LEN)
234PERL_CALLCONV char*     Perl_getenv_len(pTHX_ const char* key, unsigned long *len);
235#endif
236PERL_CALLCONV void      Perl_gp_free(pTHX_ GV* gv);
237PERL_CALLCONV GP*       Perl_gp_ref(pTHX_ GP* gp);
238PERL_CALLCONV GV*       Perl_gv_AVadd(pTHX_ GV* gv);
239PERL_CALLCONV GV*       Perl_gv_HVadd(pTHX_ GV* gv);
240PERL_CALLCONV GV*       Perl_gv_IOadd(pTHX_ GV* gv);
241PERL_CALLCONV GV*       Perl_gv_autoload4(pTHX_ HV* stash, const char* name, STRLEN len, I32 method);
242PERL_CALLCONV void      Perl_gv_check(pTHX_ HV* stash);
243PERL_CALLCONV void      Perl_gv_efullname(pTHX_ SV* sv, GV* gv);
244PERL_CALLCONV void      Perl_gv_efullname3(pTHX_ SV* sv, GV* gv, const char* prefix);
245PERL_CALLCONV void      Perl_gv_efullname4(pTHX_ SV* sv, GV* gv, const char* prefix, bool keepmain);
246PERL_CALLCONV GV*       Perl_gv_fetchfile(pTHX_ const char* name);
247PERL_CALLCONV GV*       Perl_gv_fetchmeth(pTHX_ HV* stash, const char* name, STRLEN len, I32 level);
248PERL_CALLCONV GV*       Perl_gv_fetchmeth_autoload(pTHX_ HV* stash, const char* name, STRLEN len, I32 level);
249PERL_CALLCONV GV*       Perl_gv_fetchmethod(pTHX_ HV* stash, const char* name);
250PERL_CALLCONV GV*       Perl_gv_fetchmethod_autoload(pTHX_ HV* stash, const char* name, I32 autoload);
251PERL_CALLCONV GV*       Perl_gv_fetchpv(pTHX_ const char* name, I32 add, I32 sv_type);
252PERL_CALLCONV void      Perl_gv_fullname(pTHX_ SV* sv, GV* gv);
253PERL_CALLCONV void      Perl_gv_fullname3(pTHX_ SV* sv, GV* gv, const char* prefix);
254PERL_CALLCONV void      Perl_gv_fullname4(pTHX_ SV* sv, GV* gv, const char* prefix, bool keepmain);
255PERL_CALLCONV void      Perl_gv_init(pTHX_ GV* gv, HV* stash, const char* name, STRLEN len, int multi);
256PERL_CALLCONV HV*       Perl_gv_stashpv(pTHX_ const char* name, I32 create);
257PERL_CALLCONV HV*       Perl_gv_stashpvn(pTHX_ const char* name, U32 namelen, I32 create);
258PERL_CALLCONV HV*       Perl_gv_stashsv(pTHX_ SV* sv, I32 create);
259PERL_CALLCONV void      Perl_hv_clear(pTHX_ HV* tb);
260PERL_CALLCONV void      Perl_hv_delayfree_ent(pTHX_ HV* hv, HE* entry);
261PERL_CALLCONV SV*       Perl_hv_delete(pTHX_ HV* tb, const char* key, I32 klen, I32 flags);
262PERL_CALLCONV SV*       Perl_hv_delete_ent(pTHX_ HV* tb, SV* key, I32 flags, U32 hash);
263PERL_CALLCONV bool      Perl_hv_exists(pTHX_ HV* tb, const char* key, I32 klen);
264PERL_CALLCONV bool      Perl_hv_exists_ent(pTHX_ HV* tb, SV* key, U32 hash);
265PERL_CALLCONV SV**      Perl_hv_fetch(pTHX_ HV* tb, const char* key, I32 klen, I32 lval);
266PERL_CALLCONV HE*       Perl_hv_fetch_ent(pTHX_ HV* tb, SV* key, I32 lval, U32 hash);
267PERL_CALLCONV void      Perl_hv_free_ent(pTHX_ HV* hv, HE* entry);
268PERL_CALLCONV I32       Perl_hv_iterinit(pTHX_ HV* tb);
269PERL_CALLCONV char*     Perl_hv_iterkey(pTHX_ HE* entry, I32* retlen);
270PERL_CALLCONV SV*       Perl_hv_iterkeysv(pTHX_ HE* entry);
271PERL_CALLCONV HE*       Perl_hv_iternext(pTHX_ HV* tb);
272PERL_CALLCONV SV*       Perl_hv_iternextsv(pTHX_ HV* hv, char** key, I32* retlen);
273PERL_CALLCONV HE*       Perl_hv_iternext_flags(pTHX_ HV* tb, I32 flags);
274PERL_CALLCONV SV*       Perl_hv_iterval(pTHX_ HV* tb, HE* entry);
275PERL_CALLCONV void      Perl_hv_ksplit(pTHX_ HV* hv, IV newmax);
276PERL_CALLCONV void      Perl_hv_magic(pTHX_ HV* hv, GV* gv, int how);
277PERL_CALLCONV SV**      Perl_hv_store(pTHX_ HV* tb, const char* key, I32 klen, SV* val, U32 hash);
278PERL_CALLCONV HE*       Perl_hv_store_ent(pTHX_ HV* tb, SV* key, SV* val, U32 hash);
279PERL_CALLCONV SV**      Perl_hv_store_flags(pTHX_ HV* tb, const char* key, I32 klen, SV* val, U32 hash, int flags);
280PERL_CALLCONV void      Perl_hv_undef(pTHX_ HV* tb);
281PERL_CALLCONV I32       Perl_ibcmp(pTHX_ const char* a, const char* b, I32 len);
282PERL_CALLCONV I32       Perl_ibcmp_locale(pTHX_ const char* a, const char* b, I32 len);
283PERL_CALLCONV I32       Perl_ibcmp_utf8(pTHX_ const char* a, char **pe1, UV l1, bool u1, const char* b, char **pe2, UV l2, bool u2);
284PERL_CALLCONV bool      Perl_ingroup(pTHX_ Gid_t testgid, Uid_t effective);
285PERL_CALLCONV void      Perl_init_argv_symbols(pTHX_ int, char **);
286PERL_CALLCONV void      Perl_init_debugger(pTHX);
287PERL_CALLCONV void      Perl_init_stacks(pTHX);
288PERL_CALLCONV void      Perl_init_tm(pTHX_ struct tm *ptm);
289PERL_CALLCONV U32       Perl_intro_my(pTHX);
290PERL_CALLCONV char*     Perl_instr(pTHX_ const char* big, const char* little);
291PERL_CALLCONV bool      Perl_io_close(pTHX_ IO* io, bool not_implicit);
292PERL_CALLCONV OP*       Perl_invert(pTHX_ OP* cmd);
293PERL_CALLCONV bool      Perl_is_gv_magical(pTHX_ char *name, STRLEN len, U32 flags);
294PERL_CALLCONV I32       Perl_is_lvalue_sub(pTHX);
295PERL_CALLCONV U32       Perl_to_uni_upper_lc(pTHX_ U32 c);
296PERL_CALLCONV U32       Perl_to_uni_title_lc(pTHX_ U32 c);
297PERL_CALLCONV U32       Perl_to_uni_lower_lc(pTHX_ U32 c);
298PERL_CALLCONV bool      Perl_is_uni_alnum(pTHX_ UV c);
299PERL_CALLCONV bool      Perl_is_uni_alnumc(pTHX_ UV c);
300PERL_CALLCONV bool      Perl_is_uni_idfirst(pTHX_ UV c);
301PERL_CALLCONV bool      Perl_is_uni_alpha(pTHX_ UV c);
302PERL_CALLCONV bool      Perl_is_uni_ascii(pTHX_ UV c);
303PERL_CALLCONV bool      Perl_is_uni_space(pTHX_ UV c);
304PERL_CALLCONV bool      Perl_is_uni_cntrl(pTHX_ UV c);
305PERL_CALLCONV bool      Perl_is_uni_graph(pTHX_ UV c);
306PERL_CALLCONV bool      Perl_is_uni_digit(pTHX_ UV c);
307PERL_CALLCONV bool      Perl_is_uni_upper(pTHX_ UV c);
308PERL_CALLCONV bool      Perl_is_uni_lower(pTHX_ UV c);
309PERL_CALLCONV bool      Perl_is_uni_print(pTHX_ UV c);
310PERL_CALLCONV bool      Perl_is_uni_punct(pTHX_ UV c);
311PERL_CALLCONV bool      Perl_is_uni_xdigit(pTHX_ UV c);
312PERL_CALLCONV UV        Perl_to_uni_upper(pTHX_ UV c, U8 *p, STRLEN *lenp);
313PERL_CALLCONV UV        Perl_to_uni_title(pTHX_ UV c, U8 *p, STRLEN *lenp);
314PERL_CALLCONV UV        Perl_to_uni_lower(pTHX_ UV c, U8 *p, STRLEN *lenp);
315PERL_CALLCONV UV        Perl_to_uni_fold(pTHX_ UV c, U8 *p, STRLEN *lenp);
316PERL_CALLCONV bool      Perl_is_uni_alnum_lc(pTHX_ UV c);
317PERL_CALLCONV bool      Perl_is_uni_alnumc_lc(pTHX_ UV c);
318PERL_CALLCONV bool      Perl_is_uni_idfirst_lc(pTHX_ UV c);
319PERL_CALLCONV bool      Perl_is_uni_alpha_lc(pTHX_ UV c);
320PERL_CALLCONV bool      Perl_is_uni_ascii_lc(pTHX_ UV c);
321PERL_CALLCONV bool      Perl_is_uni_space_lc(pTHX_ UV c);
322PERL_CALLCONV bool      Perl_is_uni_cntrl_lc(pTHX_ UV c);
323PERL_CALLCONV bool      Perl_is_uni_graph_lc(pTHX_ UV c);
324PERL_CALLCONV bool      Perl_is_uni_digit_lc(pTHX_ UV c);
325PERL_CALLCONV bool      Perl_is_uni_upper_lc(pTHX_ UV c);
326PERL_CALLCONV bool      Perl_is_uni_lower_lc(pTHX_ UV c);
327PERL_CALLCONV bool      Perl_is_uni_print_lc(pTHX_ UV c);
328PERL_CALLCONV bool      Perl_is_uni_punct_lc(pTHX_ UV c);
329PERL_CALLCONV bool      Perl_is_uni_xdigit_lc(pTHX_ UV c);
330PERL_CALLCONV STRLEN    Perl_is_utf8_char(pTHX_ U8 *p);
331PERL_CALLCONV bool      Perl_is_utf8_string(pTHX_ U8 *s, STRLEN len);
332PERL_CALLCONV bool      Perl_is_utf8_string_loc(pTHX_ U8 *s, STRLEN len, U8 **p);
333PERL_CALLCONV bool      Perl_is_utf8_alnum(pTHX_ U8 *p);
334PERL_CALLCONV bool      Perl_is_utf8_alnumc(pTHX_ U8 *p);
335PERL_CALLCONV bool      Perl_is_utf8_idfirst(pTHX_ U8 *p);
336PERL_CALLCONV bool      Perl_is_utf8_idcont(pTHX_ U8 *p);
337PERL_CALLCONV bool      Perl_is_utf8_alpha(pTHX_ U8 *p);
338PERL_CALLCONV bool      Perl_is_utf8_ascii(pTHX_ U8 *p);
339PERL_CALLCONV bool      Perl_is_utf8_space(pTHX_ U8 *p);
340PERL_CALLCONV bool      Perl_is_utf8_cntrl(pTHX_ U8 *p);
341PERL_CALLCONV bool      Perl_is_utf8_digit(pTHX_ U8 *p);
342PERL_CALLCONV bool      Perl_is_utf8_graph(pTHX_ U8 *p);
343PERL_CALLCONV bool      Perl_is_utf8_upper(pTHX_ U8 *p);
344PERL_CALLCONV bool      Perl_is_utf8_lower(pTHX_ U8 *p);
345PERL_CALLCONV bool      Perl_is_utf8_print(pTHX_ U8 *p);
346PERL_CALLCONV bool      Perl_is_utf8_punct(pTHX_ U8 *p);
347PERL_CALLCONV bool      Perl_is_utf8_xdigit(pTHX_ U8 *p);
348PERL_CALLCONV bool      Perl_is_utf8_mark(pTHX_ U8 *p);
349PERL_CALLCONV OP*       Perl_jmaybe(pTHX_ OP* arg);
350PERL_CALLCONV I32       Perl_keyword(pTHX_ char* d, I32 len);
351PERL_CALLCONV void      Perl_leave_scope(pTHX_ I32 base);
352PERL_CALLCONV void      Perl_lex_end(pTHX);
353PERL_CALLCONV void      Perl_lex_start(pTHX_ SV* line);
354PERL_CALLCONV void      Perl_op_null(pTHX_ OP* o);
355PERL_CALLCONV void      Perl_op_clear(pTHX_ OP* o);
356PERL_CALLCONV OP*       Perl_linklist(pTHX_ OP* o);
357PERL_CALLCONV OP*       Perl_list(pTHX_ OP* o);
358PERL_CALLCONV OP*       Perl_listkids(pTHX_ OP* o);
359PERL_CALLCONV void      Perl_load_module(pTHX_ U32 flags, SV* name, SV* ver, ...);
360PERL_CALLCONV void      Perl_vload_module(pTHX_ U32 flags, SV* name, SV* ver, va_list* args);
361PERL_CALLCONV OP*       Perl_localize(pTHX_ OP* arg, I32 lexical);
362PERL_CALLCONV I32       Perl_looks_like_number(pTHX_ SV* sv);
363PERL_CALLCONV UV        Perl_grok_bin(pTHX_ char* start, STRLEN* len, I32* flags, NV *result);
364PERL_CALLCONV UV        Perl_grok_hex(pTHX_ char* start, STRLEN* len, I32* flags, NV *result);
365PERL_CALLCONV int       Perl_grok_number(pTHX_ const char *pv, STRLEN len, UV *valuep);
366PERL_CALLCONV bool      Perl_grok_numeric_radix(pTHX_ const char **sp, const char *send);
367PERL_CALLCONV UV        Perl_grok_oct(pTHX_ char* start, STRLEN* len, I32* flags, NV *result);
368PERL_CALLCONV int       Perl_magic_clearenv(pTHX_ SV* sv, MAGIC* mg);
369PERL_CALLCONV int       Perl_magic_clear_all_env(pTHX_ SV* sv, MAGIC* mg);
370PERL_CALLCONV int       Perl_magic_clearpack(pTHX_ SV* sv, MAGIC* mg);
371PERL_CALLCONV int       Perl_magic_clearsig(pTHX_ SV* sv, MAGIC* mg);
372PERL_CALLCONV int       Perl_magic_existspack(pTHX_ SV* sv, MAGIC* mg);
373PERL_CALLCONV int       Perl_magic_freeregexp(pTHX_ SV* sv, MAGIC* mg);
374PERL_CALLCONV int       Perl_magic_freeovrld(pTHX_ SV* sv, MAGIC* mg);
375PERL_CALLCONV int       Perl_magic_get(pTHX_ SV* sv, MAGIC* mg);
376PERL_CALLCONV int       Perl_magic_getarylen(pTHX_ SV* sv, MAGIC* mg);
377PERL_CALLCONV int       Perl_magic_getdefelem(pTHX_ SV* sv, MAGIC* mg);
378PERL_CALLCONV int       Perl_magic_getglob(pTHX_ SV* sv, MAGIC* mg);
379PERL_CALLCONV int       Perl_magic_getnkeys(pTHX_ SV* sv, MAGIC* mg);
380PERL_CALLCONV int       Perl_magic_getpack(pTHX_ SV* sv, MAGIC* mg);
381PERL_CALLCONV int       Perl_magic_getpos(pTHX_ SV* sv, MAGIC* mg);
382PERL_CALLCONV int       Perl_magic_getsig(pTHX_ SV* sv, MAGIC* mg);
383PERL_CALLCONV int       Perl_magic_getsubstr(pTHX_ SV* sv, MAGIC* mg);
384PERL_CALLCONV int       Perl_magic_gettaint(pTHX_ SV* sv, MAGIC* mg);
385PERL_CALLCONV int       Perl_magic_getuvar(pTHX_ SV* sv, MAGIC* mg);
386PERL_CALLCONV int       Perl_magic_getvec(pTHX_ SV* sv, MAGIC* mg);
387PERL_CALLCONV U32       Perl_magic_len(pTHX_ SV* sv, MAGIC* mg);
388#if defined(USE_5005THREADS)
389PERL_CALLCONV int       Perl_magic_mutexfree(pTHX_ SV* sv, MAGIC* mg);
390#endif
391PERL_CALLCONV int       Perl_magic_nextpack(pTHX_ SV* sv, MAGIC* mg, SV* key);
392PERL_CALLCONV U32       Perl_magic_regdata_cnt(pTHX_ SV* sv, MAGIC* mg);
393PERL_CALLCONV int       Perl_magic_regdatum_get(pTHX_ SV* sv, MAGIC* mg);
394PERL_CALLCONV int       Perl_magic_regdatum_set(pTHX_ SV* sv, MAGIC* mg);
395PERL_CALLCONV int       Perl_magic_set(pTHX_ SV* sv, MAGIC* mg);
396PERL_CALLCONV int       Perl_magic_setamagic(pTHX_ SV* sv, MAGIC* mg);
397PERL_CALLCONV int       Perl_magic_setarylen(pTHX_ SV* sv, MAGIC* mg);
398PERL_CALLCONV int       Perl_magic_setbm(pTHX_ SV* sv, MAGIC* mg);
399PERL_CALLCONV int       Perl_magic_setdbline(pTHX_ SV* sv, MAGIC* mg);
400#if defined(USE_LOCALE_COLLATE)
401PERL_CALLCONV int       Perl_magic_setcollxfrm(pTHX_ SV* sv, MAGIC* mg);
402#endif
403PERL_CALLCONV int       Perl_magic_setdefelem(pTHX_ SV* sv, MAGIC* mg);
404PERL_CALLCONV int       Perl_magic_setenv(pTHX_ SV* sv, MAGIC* mg);
405PERL_CALLCONV int       Perl_magic_setfm(pTHX_ SV* sv, MAGIC* mg);
406PERL_CALLCONV int       Perl_magic_setisa(pTHX_ SV* sv, MAGIC* mg);
407PERL_CALLCONV int       Perl_magic_setglob(pTHX_ SV* sv, MAGIC* mg);
408PERL_CALLCONV int       Perl_magic_setmglob(pTHX_ SV* sv, MAGIC* mg);
409PERL_CALLCONV int       Perl_magic_setnkeys(pTHX_ SV* sv, MAGIC* mg);
410PERL_CALLCONV int       Perl_magic_setpack(pTHX_ SV* sv, MAGIC* mg);
411PERL_CALLCONV int       Perl_magic_setpos(pTHX_ SV* sv, MAGIC* mg);
412PERL_CALLCONV int       Perl_magic_setregexp(pTHX_ SV* sv, MAGIC* mg);
413PERL_CALLCONV int       Perl_magic_setsig(pTHX_ SV* sv, MAGIC* mg);
414PERL_CALLCONV int       Perl_magic_setsubstr(pTHX_ SV* sv, MAGIC* mg);
415PERL_CALLCONV int       Perl_magic_settaint(pTHX_ SV* sv, MAGIC* mg);
416PERL_CALLCONV int       Perl_magic_setuvar(pTHX_ SV* sv, MAGIC* mg);
417PERL_CALLCONV int       Perl_magic_setvec(pTHX_ SV* sv, MAGIC* mg);
418PERL_CALLCONV int       Perl_magic_setutf8(pTHX_ SV* sv, MAGIC* mg);
419PERL_CALLCONV int       Perl_magic_set_all_env(pTHX_ SV* sv, MAGIC* mg);
420PERL_CALLCONV U32       Perl_magic_sizepack(pTHX_ SV* sv, MAGIC* mg);
421PERL_CALLCONV int       Perl_magic_wipepack(pTHX_ SV* sv, MAGIC* mg);
422PERL_CALLCONV void      Perl_magicname(pTHX_ char* sym, char* name, I32 namlen);
423PERL_CALLCONV void      Perl_markstack_grow(pTHX);
424#if defined(USE_LOCALE_COLLATE)
425PERL_CALLCONV char*     Perl_mem_collxfrm(pTHX_ const char* s, STRLEN len, STRLEN* xlen);
426#endif
427PERL_CALLCONV SV*       Perl_mess(pTHX_ const char* pat, ...)
428        __attribute__format__(__printf__,pTHX_1,pTHX_2);
429PERL_CALLCONV SV*       Perl_vmess(pTHX_ const char* pat, va_list* args);
430PERL_CALLCONV void      Perl_qerror(pTHX_ SV* err);
431PERL_CALLCONV void      Perl_sortsv(pTHX_ SV ** array, size_t num_elts, SVCOMPARE_t cmp);
432PERL_CALLCONV int       Perl_mg_clear(pTHX_ SV* sv);
433PERL_CALLCONV int       Perl_mg_copy(pTHX_ SV* sv, SV* nsv, const char* key, I32 klen);
434PERL_CALLCONV MAGIC*    Perl_mg_find(pTHX_ SV* sv, int type);
435PERL_CALLCONV int       Perl_mg_free(pTHX_ SV* sv);
436PERL_CALLCONV int       Perl_mg_get(pTHX_ SV* sv);
437PERL_CALLCONV U32       Perl_mg_length(pTHX_ SV* sv);
438PERL_CALLCONV void      Perl_mg_magical(pTHX_ SV* sv);
439PERL_CALLCONV int       Perl_mg_set(pTHX_ SV* sv);
440PERL_CALLCONV I32       Perl_mg_size(pTHX_ SV* sv);
441PERL_CALLCONV void      Perl_mini_mktime(pTHX_ struct tm *pm);
442PERL_CALLCONV OP*       Perl_mod(pTHX_ OP* o, I32 type);
443PERL_CALLCONV int       Perl_mode_from_discipline(pTHX_ SV* discp);
444PERL_CALLCONV char*     Perl_moreswitches(pTHX_ char* s);
445PERL_CALLCONV OP*       Perl_my(pTHX_ OP* o);
446PERL_CALLCONV NV        Perl_my_atof(pTHX_ const char *s);
447#if (!defined(HAS_MEMCPY) && !defined(HAS_BCOPY)) || (!defined(HAS_MEMMOVE) && !defined(HAS_SAFE_MEMCPY) && !defined(HAS_SAFE_BCOPY))
448PERL_CALLCONV char*     Perl_my_bcopy(const char* from, char* to, I32 len);
449#endif
450#if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
451PERL_CALLCONV char*     Perl_my_bzero(char* loc, I32 len);
452#endif
453PERL_CALLCONV void      Perl_my_exit(pTHX_ U32 status) __attribute__((noreturn));
454PERL_CALLCONV void      Perl_my_failure_exit(pTHX) __attribute__((noreturn));
455PERL_CALLCONV I32       Perl_my_fflush_all(pTHX);
456PERL_CALLCONV Pid_t     Perl_my_fork(void);
457PERL_CALLCONV void      Perl_atfork_lock(void);
458PERL_CALLCONV void      Perl_atfork_unlock(void);
459PERL_CALLCONV I32       Perl_my_lstat(pTHX);
460#if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP)
461PERL_CALLCONV I32       Perl_my_memcmp(const char* s1, const char* s2, I32 len);
462#endif
463#if !defined(HAS_MEMSET)
464PERL_CALLCONV void*     Perl_my_memset(char* loc, I32 ch, I32 len);
465#endif
466PERL_CALLCONV I32       Perl_my_pclose(pTHX_ PerlIO* ptr);
467PERL_CALLCONV PerlIO*   Perl_my_popen(pTHX_ char* cmd, char* mode);
468PERL_CALLCONV PerlIO*   Perl_my_popen_list(pTHX_ char* mode, int n, SV ** args);
469PERL_CALLCONV void      Perl_my_setenv(pTHX_ char* nam, char* val);
470PERL_CALLCONV I32       Perl_my_stat(pTHX);
471PERL_CALLCONV char *    Perl_my_strftime(pTHX_ char *fmt, int sec, int min, int hour, int mday, int mon, int year, int wday, int yday, int isdst);
472#if defined(MYSWAP)
473PERL_CALLCONV short     Perl_my_swap(pTHX_ short s);
474PERL_CALLCONV long      Perl_my_htonl(pTHX_ long l);
475PERL_CALLCONV long      Perl_my_ntohl(pTHX_ long l);
476#endif
477PERL_CALLCONV void      Perl_my_unexec(pTHX);
478PERL_CALLCONV OP*       Perl_newANONLIST(pTHX_ OP* o);
479PERL_CALLCONV OP*       Perl_newANONHASH(pTHX_ OP* o);
480PERL_CALLCONV OP*       Perl_newANONSUB(pTHX_ I32 floor, OP* proto, OP* block);
481PERL_CALLCONV OP*       Perl_newASSIGNOP(pTHX_ I32 flags, OP* left, I32 optype, OP* right);
482PERL_CALLCONV OP*       Perl_newCONDOP(pTHX_ I32 flags, OP* expr, OP* trueop, OP* falseop);
483PERL_CALLCONV CV*       Perl_newCONSTSUB(pTHX_ HV* stash, char* name, SV* sv);
484PERL_CALLCONV void      Perl_newFORM(pTHX_ I32 floor, OP* o, OP* block);
485PERL_CALLCONV OP*       Perl_newFOROP(pTHX_ I32 flags, char* label, line_t forline, OP* sclr, OP* expr, OP*block, OP*cont);
486PERL_CALLCONV OP*       Perl_newLOGOP(pTHX_ I32 optype, I32 flags, OP* left, OP* right);
487PERL_CALLCONV OP*       Perl_newLOOPEX(pTHX_ I32 type, OP* label);
488PERL_CALLCONV OP*       Perl_newLOOPOP(pTHX_ I32 flags, I32 debuggable, OP* expr, OP* block);
489PERL_CALLCONV OP*       Perl_newNULLLIST(pTHX);
490PERL_CALLCONV OP*       Perl_newOP(pTHX_ I32 optype, I32 flags);
491PERL_CALLCONV void      Perl_newPROG(pTHX_ OP* o);
492PERL_CALLCONV OP*       Perl_newRANGE(pTHX_ I32 flags, OP* left, OP* right);
493PERL_CALLCONV OP*       Perl_newSLICEOP(pTHX_ I32 flags, OP* subscript, OP* listop);
494PERL_CALLCONV OP*       Perl_newSTATEOP(pTHX_ I32 flags, char* label, OP* o);
495PERL_CALLCONV CV*       Perl_newSUB(pTHX_ I32 floor, OP* o, OP* proto, OP* block);
496PERL_CALLCONV CV*       Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
497PERL_CALLCONV AV*       Perl_newAV(pTHX);
498PERL_CALLCONV OP*       Perl_newAVREF(pTHX_ OP* o);
499PERL_CALLCONV OP*       Perl_newBINOP(pTHX_ I32 type, I32 flags, OP* first, OP* last);
500PERL_CALLCONV OP*       Perl_newCVREF(pTHX_ I32 flags, OP* o);
501PERL_CALLCONV OP*       Perl_newGVOP(pTHX_ I32 type, I32 flags, GV* gv);
502PERL_CALLCONV GV*       Perl_newGVgen(pTHX_ char* pack);
503PERL_CALLCONV OP*       Perl_newGVREF(pTHX_ I32 type, OP* o);
504PERL_CALLCONV OP*       Perl_newHVREF(pTHX_ OP* o);
505PERL_CALLCONV HV*       Perl_newHV(pTHX);
506PERL_CALLCONV HV*       Perl_newHVhv(pTHX_ HV* hv);
507PERL_CALLCONV IO*       Perl_newIO(pTHX);
508PERL_CALLCONV OP*       Perl_newLISTOP(pTHX_ I32 type, I32 flags, OP* first, OP* last);
509PERL_CALLCONV OP*       Perl_newPADOP(pTHX_ I32 type, I32 flags, SV* sv);
510PERL_CALLCONV OP*       Perl_newPMOP(pTHX_ I32 type, I32 flags);
511PERL_CALLCONV OP*       Perl_newPVOP(pTHX_ I32 type, I32 flags, char* pv);
512PERL_CALLCONV SV*       Perl_newRV(pTHX_ SV* pref);
513PERL_CALLCONV SV*       Perl_newRV_noinc(pTHX_ SV *sv);
514PERL_CALLCONV SV*       Perl_newSV(pTHX_ STRLEN len);
515PERL_CALLCONV OP*       Perl_newSVREF(pTHX_ OP* o);
516PERL_CALLCONV OP*       Perl_newSVOP(pTHX_ I32 type, I32 flags, SV* sv);
517PERL_CALLCONV SV*       Perl_newSViv(pTHX_ IV i);
518PERL_CALLCONV SV*       Perl_newSVuv(pTHX_ UV u);
519PERL_CALLCONV SV*       Perl_newSVnv(pTHX_ NV n);
520PERL_CALLCONV SV*       Perl_newSVpv(pTHX_ const char* s, STRLEN len);
521PERL_CALLCONV SV*       Perl_newSVpvn(pTHX_ const char* s, STRLEN len);
522PERL_CALLCONV SV*       Perl_newSVpvn_share(pTHX_ const char* s, I32 len, U32 hash);
523PERL_CALLCONV SV*       Perl_newSVpvf(pTHX_ const char* pat, ...)
524        __attribute__format__(__printf__,pTHX_1,pTHX_2);
525PERL_CALLCONV SV*       Perl_vnewSVpvf(pTHX_ const char* pat, va_list* args);
526PERL_CALLCONV SV*       Perl_newSVrv(pTHX_ SV* rv, const char* classname);
527PERL_CALLCONV SV*       Perl_newSVsv(pTHX_ SV* old);
528PERL_CALLCONV OP*       Perl_newUNOP(pTHX_ I32 type, I32 flags, OP* first);
529PERL_CALLCONV OP*       Perl_newWHILEOP(pTHX_ I32 flags, I32 debuggable, LOOP* loop, I32 whileline, OP* expr, OP* block, OP* cont);
530
531PERL_CALLCONV PERL_SI*  Perl_new_stackinfo(pTHX_ I32 stitems, I32 cxitems);
532PERL_CALLCONV char*     Perl_scan_vstring(pTHX_ char *vstr, SV *sv);
533PERL_CALLCONV PerlIO*   Perl_nextargv(pTHX_ GV* gv);
534PERL_CALLCONV char*     Perl_ninstr(pTHX_ const char* big, const char* bigend, const char* little, const char* lend);
535PERL_CALLCONV OP*       Perl_oopsCV(pTHX_ OP* o);
536PERL_CALLCONV void      Perl_op_free(pTHX_ OP* arg);
537PERL_CALLCONV void      Perl_package(pTHX_ OP* o);
538PERL_CALLCONV PADOFFSET Perl_pad_alloc(pTHX_ I32 optype, U32 tmptype);
539PERL_CALLCONV PADOFFSET Perl_allocmy(pTHX_ char* name);
540PERL_CALLCONV PADOFFSET Perl_pad_findmy(pTHX_ char* name);
541PERL_CALLCONV OP*       Perl_oopsAV(pTHX_ OP* o);
542PERL_CALLCONV OP*       Perl_oopsHV(pTHX_ OP* o);
543PERL_CALLCONV void      Perl_pad_leavemy(pTHX);
544PERL_CALLCONV SV*       Perl_pad_sv(pTHX_ PADOFFSET po);
545PERL_CALLCONV void      Perl_pad_free(pTHX_ PADOFFSET po);
546PERL_CALLCONV void      Perl_pad_reset(pTHX);
547PERL_CALLCONV void      Perl_pad_swipe(pTHX_ PADOFFSET po, bool refadjust);
548PERL_CALLCONV void      Perl_peep(pTHX_ OP* o);
549PERL_CALLCONV PerlIO*   Perl_start_glob(pTHX_ SV* pattern, IO *io);
550#if defined(USE_5005THREADS)
551PERL_CALLCONV struct perl_thread*       Perl_new_struct_thread(pTHX_ struct perl_thread *t);
552#endif
553#if defined(USE_REENTRANT_API)
554PERL_CALLCONV void      Perl_reentrant_size(pTHX);
555PERL_CALLCONV void      Perl_reentrant_init(pTHX);
556PERL_CALLCONV void      Perl_reentrant_free(pTHX);
557PERL_CALLCONV void*     Perl_reentrant_retry(const char*, ...);
558#endif
559PERL_CALLCONV void      Perl_call_atexit(pTHX_ ATEXIT_t fn, void *ptr);
560PERL_CALLCONV I32       Perl_call_argv(pTHX_ const char* sub_name, I32 flags, char** argv);
561PERL_CALLCONV I32       Perl_call_method(pTHX_ const char* methname, I32 flags);
562PERL_CALLCONV I32       Perl_call_pv(pTHX_ const char* sub_name, I32 flags);
563PERL_CALLCONV I32       Perl_call_sv(pTHX_ SV* sv, I32 flags);
564PERL_CALLCONV void      Perl_despatch_signals(pTHX);
565PERL_CALLCONV SV*       Perl_eval_pv(pTHX_ const char* p, I32 croak_on_error);
566PERL_CALLCONV I32       Perl_eval_sv(pTHX_ SV* sv, I32 flags);
567PERL_CALLCONV SV*       Perl_get_sv(pTHX_ const char* name, I32 create);
568PERL_CALLCONV AV*       Perl_get_av(pTHX_ const char* name, I32 create);
569PERL_CALLCONV HV*       Perl_get_hv(pTHX_ const char* name, I32 create);
570PERL_CALLCONV CV*       Perl_get_cv(pTHX_ const char* name, I32 create);
571PERL_CALLCONV int       Perl_init_i18nl10n(pTHX_ int printwarn);
572PERL_CALLCONV int       Perl_init_i18nl14n(pTHX_ int printwarn);
573PERL_CALLCONV void      Perl_new_collate(pTHX_ char* newcoll);
574PERL_CALLCONV void      Perl_new_ctype(pTHX_ char* newctype);
575PERL_CALLCONV void      Perl_new_numeric(pTHX_ char* newcoll);
576PERL_CALLCONV void      Perl_set_numeric_local(pTHX);
577PERL_CALLCONV void      Perl_set_numeric_radix(pTHX);
578PERL_CALLCONV void      Perl_set_numeric_standard(pTHX);
579PERL_CALLCONV void      Perl_require_pv(pTHX_ const char* pv);
580PERL_CALLCONV void      Perl_pack_cat(pTHX_ SV *cat, char *pat, char *patend, SV **beglist, SV **endlist, SV ***next_in_list, U32 flags);
581PERL_CALLCONV void      Perl_packlist(pTHX_ SV *cat, char *pat, char *patend, SV **beglist, SV **endlist);
582PERL_CALLCONV void      Perl_pidgone(pTHX_ Pid_t pid, int status);
583PERL_CALLCONV void      Perl_pmflag(pTHX_ U32* pmfl, int ch);
584PERL_CALLCONV OP*       Perl_pmruntime(pTHX_ OP* pm, OP* expr, OP* repl);
585PERL_CALLCONV OP*       Perl_pmtrans(pTHX_ OP* o, OP* expr, OP* repl);
586PERL_CALLCONV OP*       Perl_pop_return(pTHX);
587PERL_CALLCONV void      Perl_pop_scope(pTHX);
588PERL_CALLCONV OP*       Perl_prepend_elem(pTHX_ I32 optype, OP* head, OP* tail);
589PERL_CALLCONV void      Perl_push_return(pTHX_ OP* o);
590PERL_CALLCONV void      Perl_push_scope(pTHX);
591PERL_CALLCONV OP*       Perl_ref(pTHX_ OP* o, I32 type);
592PERL_CALLCONV OP*       Perl_refkids(pTHX_ OP* o, I32 type);
593PERL_CALLCONV void      Perl_regdump(pTHX_ regexp* r);
594PERL_CALLCONV SV*       Perl_regclass_swash(pTHX_ struct regnode *n, bool doinit, SV **listsvp, SV **altsvp);
595PERL_CALLCONV I32       Perl_pregexec(pTHX_ regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, U32 nosave);
596PERL_CALLCONV void      Perl_pregfree(pTHX_ struct regexp* r);
597PERL_CALLCONV regexp*   Perl_pregcomp(pTHX_ char* exp, char* xend, PMOP* pm);
598PERL_CALLCONV char*     Perl_re_intuit_start(pTHX_ regexp* prog, SV* sv, char* strpos, char* strend, U32 flags, struct re_scream_pos_data_s *data);
599PERL_CALLCONV SV*       Perl_re_intuit_string(pTHX_ regexp* prog);
600PERL_CALLCONV I32       Perl_regexec_flags(pTHX_ regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, void* data, U32 flags);
601PERL_CALLCONV regnode*  Perl_regnext(pTHX_ regnode* p);
602PERL_CALLCONV void      Perl_regprop(pTHX_ SV* sv, regnode* o);
603PERL_CALLCONV void      Perl_repeatcpy(pTHX_ char* to, const char* from, I32 len, I32 count);
604PERL_CALLCONV char*     Perl_rninstr(pTHX_ const char* big, const char* bigend, const char* little, const char* lend);
605PERL_CALLCONV Sighandler_t      Perl_rsignal(pTHX_ int i, Sighandler_t t);
606PERL_CALLCONV int       Perl_rsignal_restore(pTHX_ int i, Sigsave_t* t);
607PERL_CALLCONV int       Perl_rsignal_save(pTHX_ int i, Sighandler_t t1, Sigsave_t* t2);
608PERL_CALLCONV Sighandler_t      Perl_rsignal_state(pTHX_ int i);
609PERL_CALLCONV void      Perl_rxres_free(pTHX_ void** rsp);
610PERL_CALLCONV void      Perl_rxres_restore(pTHX_ void** rsp, REGEXP* prx);
611PERL_CALLCONV void      Perl_rxres_save(pTHX_ void** rsp, REGEXP* prx);
612#if !defined(HAS_RENAME)
613PERL_CALLCONV I32       Perl_same_dirent(pTHX_ char* a, char* b);
614#endif
615PERL_CALLCONV char*     Perl_savepv(pTHX_ const char* pv);
616PERL_CALLCONV char*     Perl_savesharedpv(pTHX_ const char* pv);
617PERL_CALLCONV char*     Perl_savepvn(pTHX_ const char* pv, I32 len);
618PERL_CALLCONV void      Perl_savestack_grow(pTHX);
619PERL_CALLCONV void      Perl_savestack_grow_cnt(pTHX_ I32 need);
620PERL_CALLCONV void      Perl_save_aelem(pTHX_ AV* av, I32 idx, SV **sptr);
621PERL_CALLCONV I32       Perl_save_alloc(pTHX_ I32 size, I32 pad);
622PERL_CALLCONV void      Perl_save_aptr(pTHX_ AV** aptr);
623PERL_CALLCONV AV*       Perl_save_ary(pTHX_ GV* gv);
624PERL_CALLCONV void      Perl_save_bool(pTHX_ bool* boolp);
625PERL_CALLCONV void      Perl_save_clearsv(pTHX_ SV** svp);
626PERL_CALLCONV void      Perl_save_delete(pTHX_ HV* hv, char* key, I32 klen);
627PERL_CALLCONV void      Perl_save_destructor(pTHX_ DESTRUCTORFUNC_NOCONTEXT_t f, void* p);
628PERL_CALLCONV void      Perl_save_destructor_x(pTHX_ DESTRUCTORFUNC_t f, void* p);
629PERL_CALLCONV void      Perl_save_freesv(pTHX_ SV* sv);
630PERL_CALLCONV void      Perl_save_freeop(pTHX_ OP* o);
631PERL_CALLCONV void      Perl_save_freepv(pTHX_ char* pv);
632PERL_CALLCONV void      Perl_save_generic_svref(pTHX_ SV** sptr);
633PERL_CALLCONV void      Perl_save_generic_pvref(pTHX_ char** str);
634PERL_CALLCONV void      Perl_save_shared_pvref(pTHX_ char** str);
635PERL_CALLCONV void      Perl_save_gp(pTHX_ GV* gv, I32 empty);
636PERL_CALLCONV HV*       Perl_save_hash(pTHX_ GV* gv);
637PERL_CALLCONV void      Perl_save_helem(pTHX_ HV* hv, SV *key, SV **sptr);
638PERL_CALLCONV void      Perl_save_hints(pTHX);
639PERL_CALLCONV void      Perl_save_hptr(pTHX_ HV** hptr);
640PERL_CALLCONV void      Perl_save_I16(pTHX_ I16* intp);
641PERL_CALLCONV void      Perl_save_I32(pTHX_ I32* intp);
642PERL_CALLCONV void      Perl_save_I8(pTHX_ I8* bytep);
643PERL_CALLCONV void      Perl_save_int(pTHX_ int* intp);
644PERL_CALLCONV void      Perl_save_item(pTHX_ SV* item);
645PERL_CALLCONV void      Perl_save_iv(pTHX_ IV* iv);
646PERL_CALLCONV void      Perl_save_list(pTHX_ SV** sarg, I32 maxsarg);
647PERL_CALLCONV void      Perl_save_long(pTHX_ long* longp);
648PERL_CALLCONV void      Perl_save_mortalizesv(pTHX_ SV* sv);
649PERL_CALLCONV void      Perl_save_nogv(pTHX_ GV* gv);
650PERL_CALLCONV void      Perl_save_op(pTHX);
651PERL_CALLCONV SV*       Perl_save_scalar(pTHX_ GV* gv);
652PERL_CALLCONV void      Perl_save_pptr(pTHX_ char** pptr);
653PERL_CALLCONV void      Perl_save_vptr(pTHX_ void* pptr);
654PERL_CALLCONV void      Perl_save_re_context(pTHX);
655PERL_CALLCONV void      Perl_save_padsv(pTHX_ PADOFFSET off);
656PERL_CALLCONV void      Perl_save_sptr(pTHX_ SV** sptr);
657PERL_CALLCONV SV*       Perl_save_svref(pTHX_ SV** sptr);
658PERL_CALLCONV SV**      Perl_save_threadsv(pTHX_ PADOFFSET i);
659PERL_CALLCONV OP*       Perl_sawparens(pTHX_ OP* o);
660PERL_CALLCONV OP*       Perl_scalar(pTHX_ OP* o);
661PERL_CALLCONV OP*       Perl_scalarkids(pTHX_ OP* o);
662PERL_CALLCONV OP*       Perl_scalarseq(pTHX_ OP* o);
663PERL_CALLCONV OP*       Perl_scalarvoid(pTHX_ OP* o);
664PERL_CALLCONV NV        Perl_scan_bin(pTHX_ char* start, STRLEN len, STRLEN* retlen);
665PERL_CALLCONV NV        Perl_scan_hex(pTHX_ char* start, STRLEN len, STRLEN* retlen);
666PERL_CALLCONV char*     Perl_scan_num(pTHX_ char* s, YYSTYPE *lvalp);
667PERL_CALLCONV NV        Perl_scan_oct(pTHX_ char* start, STRLEN len, STRLEN* retlen);
668PERL_CALLCONV OP*       Perl_scope(pTHX_ OP* o);
669PERL_CALLCONV char*     Perl_screaminstr(pTHX_ SV* bigsv, SV* littlesv, I32 start_shift, I32 end_shift, I32 *state, I32 last);
670#if !defined(VMS)
671PERL_CALLCONV I32       Perl_setenv_getix(pTHX_ char* nam);
672#endif
673PERL_CALLCONV void      Perl_setdefout(pTHX_ GV* gv);
674PERL_CALLCONV HEK*      Perl_share_hek(pTHX_ const char* sv, I32 len, U32 hash);
675PERL_CALLCONV Signal_t  Perl_sighandler(int sig);
676PERL_CALLCONV Signal_t  Perl_csighandler(int sig);
677PERL_CALLCONV SV**      Perl_stack_grow(pTHX_ SV** sp, SV**p, int n);
678PERL_CALLCONV I32       Perl_start_subparse(pTHX_ I32 is_format, U32 flags);
679PERL_CALLCONV void      Perl_sub_crush_depth(pTHX_ CV* cv);
680PERL_CALLCONV bool      Perl_sv_2bool(pTHX_ SV* sv);
681PERL_CALLCONV CV*       Perl_sv_2cv(pTHX_ SV* sv, HV** st, GV** gvp, I32 lref);
682PERL_CALLCONV IO*       Perl_sv_2io(pTHX_ SV* sv);
683PERL_CALLCONV IV        Perl_sv_2iv(pTHX_ SV* sv);
684PERL_CALLCONV SV*       Perl_sv_2mortal(pTHX_ SV* sv);
685PERL_CALLCONV NV        Perl_sv_2nv(pTHX_ SV* sv);
686/* PERL_CALLCONV char*  sv_2pv(pTHX_ SV* sv, STRLEN* lp); */
687PERL_CALLCONV char*     Perl_sv_2pvutf8(pTHX_ SV* sv, STRLEN* lp);
688PERL_CALLCONV char*     Perl_sv_2pvbyte(pTHX_ SV* sv, STRLEN* lp);
689PERL_CALLCONV char*     Perl_sv_pvn_nomg(pTHX_ SV* sv, STRLEN* lp);
690PERL_CALLCONV UV        Perl_sv_2uv(pTHX_ SV* sv);
691PERL_CALLCONV IV        Perl_sv_iv(pTHX_ SV* sv);
692PERL_CALLCONV UV        Perl_sv_uv(pTHX_ SV* sv);
693PERL_CALLCONV NV        Perl_sv_nv(pTHX_ SV* sv);
694PERL_CALLCONV char*     Perl_sv_pvn(pTHX_ SV *sv, STRLEN *len);
695PERL_CALLCONV char*     Perl_sv_pvutf8n(pTHX_ SV *sv, STRLEN *len);
696PERL_CALLCONV char*     Perl_sv_pvbyten(pTHX_ SV *sv, STRLEN *len);
697PERL_CALLCONV I32       Perl_sv_true(pTHX_ SV *sv);
698PERL_CALLCONV void      Perl_sv_add_arena(pTHX_ char* ptr, U32 size, U32 flags);
699PERL_CALLCONV int       Perl_sv_backoff(pTHX_ SV* sv);
700PERL_CALLCONV SV*       Perl_sv_bless(pTHX_ SV* sv, HV* stash);
701PERL_CALLCONV void      Perl_sv_catpvf(pTHX_ SV* sv, const char* pat, ...)
702        __attribute__format__(__printf__,pTHX_2,pTHX_3);
703PERL_CALLCONV void      Perl_sv_vcatpvf(pTHX_ SV* sv, const char* pat, va_list* args);
704PERL_CALLCONV void      Perl_sv_catpv(pTHX_ SV* sv, const char* ptr);
705/* PERL_CALLCONV void   sv_catpvn(pTHX_ SV* sv, const char* ptr, STRLEN len); */
706/* PERL_CALLCONV void   sv_catsv(pTHX_ SV* dsv, SV* ssv); */
707PERL_CALLCONV void      Perl_sv_chop(pTHX_ SV* sv, char* ptr);
708PERL_CALLCONV I32       Perl_sv_clean_all(pTHX);
709PERL_CALLCONV void      Perl_sv_clean_objs(pTHX);
710PERL_CALLCONV void      Perl_sv_clear(pTHX_ SV* sv);
711PERL_CALLCONV I32       Perl_sv_cmp(pTHX_ SV* sv1, SV* sv2);
712PERL_CALLCONV I32       Perl_sv_cmp_locale(pTHX_ SV* sv1, SV* sv2);
713#if defined(USE_LOCALE_COLLATE)
714PERL_CALLCONV char*     Perl_sv_collxfrm(pTHX_ SV* sv, STRLEN* nxp);
715#endif
716PERL_CALLCONV OP*       Perl_sv_compile_2op(pTHX_ SV* sv, OP** startp, char* code, PAD** padp);
717PERL_CALLCONV int       Perl_getcwd_sv(pTHX_ SV* sv);
718PERL_CALLCONV void      Perl_sv_dec(pTHX_ SV* sv);
719PERL_CALLCONV void      Perl_sv_dump(pTHX_ SV* sv);
720PERL_CALLCONV bool      Perl_sv_derived_from(pTHX_ SV* sv, const char* name);
721PERL_CALLCONV I32       Perl_sv_eq(pTHX_ SV* sv1, SV* sv2);
722PERL_CALLCONV void      Perl_sv_free(pTHX_ SV* sv);
723PERL_CALLCONV void      Perl_sv_free_arenas(pTHX);
724PERL_CALLCONV char*     Perl_sv_gets(pTHX_ SV* sv, PerlIO* fp, I32 append);
725PERL_CALLCONV char*     Perl_sv_grow(pTHX_ SV* sv, STRLEN newlen);
726PERL_CALLCONV void      Perl_sv_inc(pTHX_ SV* sv);
727PERL_CALLCONV void      Perl_sv_insert(pTHX_ SV* bigsv, STRLEN offset, STRLEN len, char* little, STRLEN littlelen);
728PERL_CALLCONV int       Perl_sv_isa(pTHX_ SV* sv, const char* name);
729PERL_CALLCONV int       Perl_sv_isobject(pTHX_ SV* sv);
730PERL_CALLCONV STRLEN    Perl_sv_len(pTHX_ SV* sv);
731PERL_CALLCONV STRLEN    Perl_sv_len_utf8(pTHX_ SV* sv);
732PERL_CALLCONV void      Perl_sv_magic(pTHX_ SV* sv, SV* obj, int how, const char* name, I32 namlen);
733PERL_CALLCONV MAGIC *   Perl_sv_magicext(pTHX_ SV* sv, SV* obj, int how, MGVTBL *vtbl, const char* name, I32 namlen     );
734PERL_CALLCONV SV*       Perl_sv_mortalcopy(pTHX_ SV* oldsv);
735PERL_CALLCONV SV*       Perl_sv_newmortal(pTHX);
736PERL_CALLCONV SV*       Perl_sv_newref(pTHX_ SV* sv);
737PERL_CALLCONV char*     Perl_sv_peek(pTHX_ SV* sv);
738PERL_CALLCONV void      Perl_sv_pos_u2b(pTHX_ SV* sv, I32* offsetp, I32* lenp);
739PERL_CALLCONV void      Perl_sv_pos_b2u(pTHX_ SV* sv, I32* offsetp);
740/* PERL_CALLCONV char*  sv_pvn_force(pTHX_ SV* sv, STRLEN* lp); */
741PERL_CALLCONV char*     Perl_sv_pvutf8n_force(pTHX_ SV* sv, STRLEN* lp);
742PERL_CALLCONV char*     Perl_sv_pvbyten_force(pTHX_ SV* sv, STRLEN* lp);
743PERL_CALLCONV char*     Perl_sv_recode_to_utf8(pTHX_ SV* sv, SV *encoding);
744PERL_CALLCONV bool      Perl_sv_cat_decode(pTHX_ SV* dsv, SV *encoding, SV *ssv, int *offset, char* tstr, int tlen);
745PERL_CALLCONV char*     Perl_sv_reftype(pTHX_ SV* sv, int ob);
746PERL_CALLCONV void      Perl_sv_replace(pTHX_ SV* sv, SV* nsv);
747PERL_CALLCONV void      Perl_sv_report_used(pTHX);
748PERL_CALLCONV void      Perl_sv_reset(pTHX_ char* s, HV* stash);
749PERL_CALLCONV void      Perl_sv_setpvf(pTHX_ SV* sv, const char* pat, ...)
750        __attribute__format__(__printf__,pTHX_2,pTHX_3);
751PERL_CALLCONV void      Perl_sv_vsetpvf(pTHX_ SV* sv, const char* pat, va_list* args);
752PERL_CALLCONV void      Perl_sv_setiv(pTHX_ SV* sv, IV num);
753PERL_CALLCONV void      Perl_sv_setpviv(pTHX_ SV* sv, IV num);
754PERL_CALLCONV void      Perl_sv_setuv(pTHX_ SV* sv, UV num);
755PERL_CALLCONV void      Perl_sv_setnv(pTHX_ SV* sv, NV num);
756PERL_CALLCONV SV*       Perl_sv_setref_iv(pTHX_ SV* rv, const char* classname, IV iv);
757PERL_CALLCONV SV*       Perl_sv_setref_uv(pTHX_ SV* rv, const char* classname, UV uv);
758PERL_CALLCONV SV*       Perl_sv_setref_nv(pTHX_ SV* rv, const char* classname, NV nv);
759PERL_CALLCONV SV*       Perl_sv_setref_pv(pTHX_ SV* rv, const char* classname, void* pv);
760PERL_CALLCONV SV*       Perl_sv_setref_pvn(pTHX_ SV* rv, const char* classname, char* pv, STRLEN n);
761PERL_CALLCONV void      Perl_sv_setpv(pTHX_ SV* sv, const char* ptr);
762PERL_CALLCONV void      Perl_sv_setpvn(pTHX_ SV* sv, const char* ptr, STRLEN len);
763/* PERL_CALLCONV void   sv_setsv(pTHX_ SV* dsv, SV* ssv); */
764PERL_CALLCONV void      Perl_sv_taint(pTHX_ SV* sv);
765PERL_CALLCONV bool      Perl_sv_tainted(pTHX_ SV* sv);
766PERL_CALLCONV int       Perl_sv_unmagic(pTHX_ SV* sv, int type);
767PERL_CALLCONV void      Perl_sv_unref(pTHX_ SV* sv);
768PERL_CALLCONV void      Perl_sv_unref_flags(pTHX_ SV* sv, U32 flags);
769PERL_CALLCONV void      Perl_sv_untaint(pTHX_ SV* sv);
770PERL_CALLCONV bool      Perl_sv_upgrade(pTHX_ SV* sv, U32 mt);
771PERL_CALLCONV void      Perl_sv_usepvn(pTHX_ SV* sv, char* ptr, STRLEN len);
772PERL_CALLCONV void      Perl_sv_vcatpvfn(pTHX_ SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *maybe_tainted);
773PERL_CALLCONV void      Perl_sv_vsetpvfn(pTHX_ SV* sv, const char* pat, STRLEN patlen, va_list* args, SV** svargs, I32 svmax, bool *maybe_tainted);
774PERL_CALLCONV NV        Perl_str_to_version(pTHX_ SV *sv);
775PERL_CALLCONV SV*       Perl_swash_init(pTHX_ char* pkg, char* name, SV* listsv, I32 minbits, I32 none);
776PERL_CALLCONV UV        Perl_swash_fetch(pTHX_ SV *sv, U8 *ptr, bool do_utf8);
777PERL_CALLCONV void      Perl_taint_env(pTHX);
778PERL_CALLCONV void      Perl_taint_proper(pTHX_ const char* f, const char* s);
779PERL_CALLCONV UV        Perl_to_utf8_case(pTHX_ U8 *p, U8* ustrp, STRLEN *lenp, SV **swash, char *normal, char *special);
780PERL_CALLCONV UV        Perl_to_utf8_lower(pTHX_ U8 *p, U8* ustrp, STRLEN *lenp);
781PERL_CALLCONV UV        Perl_to_utf8_upper(pTHX_ U8 *p, U8* ustrp, STRLEN *lenp);
782PERL_CALLCONV UV        Perl_to_utf8_title(pTHX_ U8 *p, U8* ustrp, STRLEN *lenp);
783PERL_CALLCONV UV        Perl_to_utf8_fold(pTHX_ U8 *p, U8* ustrp, STRLEN *lenp);
784#if defined(UNLINK_ALL_VERSIONS)
785PERL_CALLCONV I32       Perl_unlnk(pTHX_ char* f);
786#endif
787#if defined(USE_5005THREADS)
788PERL_CALLCONV void      Perl_unlock_condpair(pTHX_ void* svv);
789#endif
790PERL_CALLCONV I32       Perl_unpack_str(pTHX_ char *pat, char *patend, char *s, char *strbeg, char *strend, char **new_s, I32 ocnt, U32 flags);
791PERL_CALLCONV I32       Perl_unpackstring(pTHX_ char *pat, char *patend, char *s, char *strend, U32 flags);
792PERL_CALLCONV void      Perl_unsharepvn(pTHX_ const char* sv, I32 len, U32 hash);
793PERL_CALLCONV void      Perl_unshare_hek(pTHX_ HEK* hek);
794PERL_CALLCONV void      Perl_utilize(pTHX_ int aver, I32 floor, OP* version, OP* idop, OP* arg);
795PERL_CALLCONV U8*       Perl_utf16_to_utf8(pTHX_ U8* p, U8 *d, I32 bytelen, I32 *newlen);
796PERL_CALLCONV U8*       Perl_utf16_to_utf8_reversed(pTHX_ U8* p, U8 *d, I32 bytelen, I32 *newlen);
797PERL_CALLCONV STRLEN    Perl_utf8_length(pTHX_ U8* s, U8 *e);
798PERL_CALLCONV IV        Perl_utf8_distance(pTHX_ U8 *a, U8 *b);
799PERL_CALLCONV U8*       Perl_utf8_hop(pTHX_ U8 *s, I32 off);
800PERL_CALLCONV U8*       Perl_utf8_to_bytes(pTHX_ U8 *s, STRLEN *len);
801PERL_CALLCONV U8*       Perl_bytes_from_utf8(pTHX_ U8 *s, STRLEN *len, bool *is_utf8);
802PERL_CALLCONV U8*       Perl_bytes_to_utf8(pTHX_ U8 *s, STRLEN *len);
803PERL_CALLCONV UV        Perl_utf8_to_uvchr(pTHX_ U8 *s, STRLEN* retlen);
804PERL_CALLCONV UV        Perl_utf8_to_uvuni(pTHX_ U8 *s, STRLEN* retlen);
805PERL_CALLCONV UV        Perl_utf8n_to_uvchr(pTHX_ U8 *s, STRLEN curlen, STRLEN* retlen, U32 flags);
806PERL_CALLCONV UV        Perl_utf8n_to_uvuni(pTHX_ U8 *s, STRLEN curlen, STRLEN* retlen, U32 flags);
807PERL_CALLCONV U8*       Perl_uvchr_to_utf8(pTHX_ U8 *d, UV uv);
808PERL_CALLCONV U8*       Perl_uvuni_to_utf8(pTHX_ U8 *d, UV uv);
809PERL_CALLCONV U8*       Perl_uvchr_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags);
810PERL_CALLCONV U8*       Perl_uvuni_to_utf8_flags(pTHX_ U8 *d, UV uv, UV flags);
811PERL_CALLCONV char*     Perl_pv_uni_display(pTHX_ SV *dsv, U8 *spv, STRLEN len, STRLEN pvlim, UV flags);
812PERL_CALLCONV char*     Perl_sv_uni_display(pTHX_ SV *dsv, SV *ssv, STRLEN pvlim, UV flags);
813PERL_CALLCONV void      Perl_vivify_defelem(pTHX_ SV* sv);
814PERL_CALLCONV void      Perl_vivify_ref(pTHX_ SV* sv, U32 to_what);
815PERL_CALLCONV I32       Perl_wait4pid(pTHX_ Pid_t pid, int* statusp, int flags);
816PERL_CALLCONV U32       Perl_parse_unicode_opts(pTHX_ char **popt);
817PERL_CALLCONV U32       Perl_seed(pTHX);
818PERL_CALLCONV UV        Perl_get_hash_seed(pTHX);
819PERL_CALLCONV void      Perl_report_evil_fh(pTHX_ GV *gv, IO *io, I32 op);
820PERL_CALLCONV void      Perl_report_uninit(pTHX);
821PERL_CALLCONV void      Perl_warn(pTHX_ const char* pat, ...)
822        __attribute__format__(__printf__,pTHX_1,pTHX_2);
823PERL_CALLCONV void      Perl_vwarn(pTHX_ const char* pat, va_list* args);
824PERL_CALLCONV void      Perl_warner(pTHX_ U32 err, const char* pat, ...)
825        __attribute__format__(__printf__,pTHX_2,pTHX_3);
826PERL_CALLCONV void      Perl_vwarner(pTHX_ U32 err, const char* pat, va_list* args);
827PERL_CALLCONV void      Perl_watch(pTHX_ char** addr);
828PERL_CALLCONV I32       Perl_whichsig(pTHX_ char* sig);
829PERL_CALLCONV void      Perl_write_to_stderr(pTHX_ const char* message, int msglen);
830PERL_CALLCONV int       Perl_yyerror(pTHX_ char* s);
831#ifdef USE_PURE_BISON
832PERL_CALLCONV int       Perl_yylex_r(pTHX_ YYSTYPE *lvalp, int *lcharp);
833#endif
834PERL_CALLCONV int       Perl_yylex(pTHX);
835PERL_CALLCONV int       Perl_yyparse(pTHX);
836PERL_CALLCONV int       Perl_yywarn(pTHX_ char* s);
837#if defined(MYMALLOC)
838PERL_CALLCONV void      Perl_dump_mstats(pTHX_ char* s);
839PERL_CALLCONV int       Perl_get_mstats(pTHX_ perl_mstats_t *buf, int buflen, int level);
840#endif
841PERL_CALLCONV Malloc_t  Perl_safesysmalloc(MEM_SIZE nbytes);
842PERL_CALLCONV Malloc_t  Perl_safesyscalloc(MEM_SIZE elements, MEM_SIZE size);
843PERL_CALLCONV Malloc_t  Perl_safesysrealloc(Malloc_t where, MEM_SIZE nbytes);
844PERL_CALLCONV Free_t    Perl_safesysfree(Malloc_t where);
845#if defined(PERL_GLOBAL_STRUCT)
846PERL_CALLCONV struct perl_vars *        Perl_GetVars(pTHX);
847#endif
848PERL_CALLCONV int       Perl_runops_standard(pTHX);
849PERL_CALLCONV int       Perl_runops_debug(pTHX);
850#if defined(USE_5005THREADS)
851PERL_CALLCONV SV*       Perl_sv_lock(pTHX_ SV *sv);
852#endif
853PERL_CALLCONV void      Perl_sv_catpvf_mg(pTHX_ SV *sv, const char* pat, ...)
854        __attribute__format__(__printf__,pTHX_2,pTHX_3);
855PERL_CALLCONV void      Perl_sv_vcatpvf_mg(pTHX_ SV* sv, const char* pat, va_list* args);
856PERL_CALLCONV void      Perl_sv_catpv_mg(pTHX_ SV *sv, const char *ptr);
857PERL_CALLCONV void      Perl_sv_catpvn_mg(pTHX_ SV *sv, const char *ptr, STRLEN len);
858PERL_CALLCONV void      Perl_sv_catsv_mg(pTHX_ SV *dstr, SV *sstr);
859PERL_CALLCONV void      Perl_sv_setpvf_mg(pTHX_ SV *sv, const char* pat, ...)
860        __attribute__format__(__printf__,pTHX_2,pTHX_3);
861PERL_CALLCONV void      Perl_sv_vsetpvf_mg(pTHX_ SV* sv, const char* pat, va_list* args);
862PERL_CALLCONV void      Perl_sv_setiv_mg(pTHX_ SV *sv, IV i);
863PERL_CALLCONV void      Perl_sv_setpviv_mg(pTHX_ SV *sv, IV iv);
864PERL_CALLCONV void      Perl_sv_setuv_mg(pTHX_ SV *sv, UV u);
865PERL_CALLCONV void      Perl_sv_setnv_mg(pTHX_ SV *sv, NV num);
866PERL_CALLCONV void      Perl_sv_setpv_mg(pTHX_ SV *sv, const char *ptr);
867PERL_CALLCONV void      Perl_sv_setpvn_mg(pTHX_ SV *sv, const char *ptr, STRLEN len);
868PERL_CALLCONV void      Perl_sv_setsv_mg(pTHX_ SV *dstr, SV *sstr);
869PERL_CALLCONV void      Perl_sv_usepvn_mg(pTHX_ SV *sv, char *ptr, STRLEN len);
870PERL_CALLCONV MGVTBL*   Perl_get_vtbl(pTHX_ int vtbl_id);
871PERL_CALLCONV char*     Perl_pv_display(pTHX_ SV *dsv, char *pv, STRLEN cur, STRLEN len, STRLEN pvlim);
872PERL_CALLCONV void      Perl_dump_indent(pTHX_ I32 level, PerlIO *file, const char* pat, ...)
873        __attribute__format__(__printf__,pTHX_3,pTHX_4);
874PERL_CALLCONV void      Perl_dump_vindent(pTHX_ I32 level, PerlIO *file, const char* pat, va_list *args);
875PERL_CALLCONV void      Perl_do_gv_dump(pTHX_ I32 level, PerlIO *file, char *name, GV *sv);
876PERL_CALLCONV void      Perl_do_gvgv_dump(pTHX_ I32 level, PerlIO *file, char *name, GV *sv);
877PERL_CALLCONV void      Perl_do_hv_dump(pTHX_ I32 level, PerlIO *file, char *name, HV *sv);
878PERL_CALLCONV void      Perl_do_magic_dump(pTHX_ I32 level, PerlIO *file, MAGIC *mg, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim);
879PERL_CALLCONV void      Perl_do_op_dump(pTHX_ I32 level, PerlIO *file, OP *o);
880PERL_CALLCONV void      Perl_do_pmop_dump(pTHX_ I32 level, PerlIO *file, PMOP *pm);
881PERL_CALLCONV void      Perl_do_sv_dump(pTHX_ I32 level, PerlIO *file, SV *sv, I32 nest, I32 maxnest, bool dumpops, STRLEN pvlim);
882PERL_CALLCONV void      Perl_magic_dump(pTHX_ MAGIC *mg);
883#if defined(PERL_FLEXIBLE_EXCEPTIONS)
884PERL_CALLCONV void*     Perl_default_protect(pTHX_ volatile JMPENV *je, int *excpt, protect_body_t body, ...);
885PERL_CALLCONV void*     Perl_vdefault_protect(pTHX_ volatile JMPENV *je, int *excpt, protect_body_t body, va_list *args);
886#endif
887PERL_CALLCONV void      Perl_reginitcolors(pTHX);
888PERL_CALLCONV char*     Perl_sv_2pv_nolen(pTHX_ SV* sv);
889PERL_CALLCONV char*     Perl_sv_2pvutf8_nolen(pTHX_ SV* sv);
890PERL_CALLCONV char*     Perl_sv_2pvbyte_nolen(pTHX_ SV* sv);
891/* PERL_CALLCONV char*  sv_pv(pTHX_ SV *sv); */
892/* PERL_CALLCONV char*  sv_pvutf8(pTHX_ SV *sv); */
893/* PERL_CALLCONV char*  sv_pvbyte(pTHX_ SV *sv); */
894/* PERL_CALLCONV STRLEN sv_utf8_upgrade(pTHX_ SV *sv); */
895PERL_CALLCONV bool      Perl_sv_utf8_downgrade(pTHX_ SV *sv, bool fail_ok);
896PERL_CALLCONV void      Perl_sv_utf8_encode(pTHX_ SV *sv);
897PERL_CALLCONV bool      Perl_sv_utf8_decode(pTHX_ SV *sv);
898PERL_CALLCONV void      Perl_sv_force_normal(pTHX_ SV *sv);
899PERL_CALLCONV void      Perl_sv_force_normal_flags(pTHX_ SV *sv, U32 flags);
900PERL_CALLCONV void      Perl_tmps_grow(pTHX_ I32 n);
901PERL_CALLCONV SV*       Perl_sv_rvweaken(pTHX_ SV *sv);
902PERL_CALLCONV int       Perl_magic_killbackrefs(pTHX_ SV *sv, MAGIC *mg);
903PERL_CALLCONV OP*       Perl_newANONATTRSUB(pTHX_ I32 floor, OP *proto, OP *attrs, OP *block);
904PERL_CALLCONV CV*       Perl_newATTRSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block);
905PERL_CALLCONV void      Perl_newMYSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block);
906PERL_CALLCONV OP *      Perl_my_attrs(pTHX_ OP *o, OP *attrs);
907PERL_CALLCONV void      Perl_boot_core_xsutils(pTHX);
908#if defined(USE_ITHREADS)
909PERL_CALLCONV PERL_CONTEXT*     Perl_cx_dup(pTHX_ PERL_CONTEXT* cx, I32 ix, I32 max, CLONE_PARAMS* param);
910PERL_CALLCONV PERL_SI*  Perl_si_dup(pTHX_ PERL_SI* si, CLONE_PARAMS* param);
911PERL_CALLCONV ANY*      Perl_ss_dup(pTHX_ PerlInterpreter* proto_perl, CLONE_PARAMS* param);
912PERL_CALLCONV void*     Perl_any_dup(pTHX_ void* v, PerlInterpreter* proto_perl);
913PERL_CALLCONV HE*       Perl_he_dup(pTHX_ HE* e, bool shared, CLONE_PARAMS* param);
914PERL_CALLCONV REGEXP*   Perl_re_dup(pTHX_ REGEXP* r, CLONE_PARAMS* param);
915PERL_CALLCONV PerlIO*   Perl_fp_dup(pTHX_ PerlIO* fp, char type, CLONE_PARAMS* param);
916PERL_CALLCONV DIR*      Perl_dirp_dup(pTHX_ DIR* dp);
917PERL_CALLCONV GP*       Perl_gp_dup(pTHX_ GP* gp, CLONE_PARAMS* param);
918PERL_CALLCONV MAGIC*    Perl_mg_dup(pTHX_ MAGIC* mg, CLONE_PARAMS* param);
919PERL_CALLCONV SV*       Perl_sv_dup(pTHX_ SV* sstr, CLONE_PARAMS* param);
920#if defined(HAVE_INTERP_INTERN)
921PERL_CALLCONV void      Perl_sys_intern_dup(pTHX_ struct interp_intern* src, struct interp_intern* dst);
922#endif
923PERL_CALLCONV PTR_TBL_t*        Perl_ptr_table_new(pTHX);
924PERL_CALLCONV void*     Perl_ptr_table_fetch(pTHX_ PTR_TBL_t *tbl, void *sv);
925PERL_CALLCONV void      Perl_ptr_table_store(pTHX_ PTR_TBL_t *tbl, void *oldsv, void *newsv);
926PERL_CALLCONV void      Perl_ptr_table_split(pTHX_ PTR_TBL_t *tbl);
927PERL_CALLCONV void      Perl_ptr_table_clear(pTHX_ PTR_TBL_t *tbl);
928PERL_CALLCONV void      Perl_ptr_table_free(pTHX_ PTR_TBL_t *tbl);
929#endif
930#if defined(HAVE_INTERP_INTERN)
931PERL_CALLCONV void      Perl_sys_intern_clear(pTHX);
932PERL_CALLCONV void      Perl_sys_intern_init(pTHX);
933#endif
934
935PERL_CALLCONV char *    Perl_custom_op_name(pTHX_ OP* op);
936PERL_CALLCONV char *    Perl_custom_op_desc(pTHX_ OP* op);
937
938PERL_CALLCONV void      Perl_sv_nosharing(pTHX_ SV *);
939PERL_CALLCONV void      Perl_sv_nolocking(pTHX_ SV *);
940PERL_CALLCONV void      Perl_sv_nounlocking(pTHX_ SV *);
941PERL_CALLCONV int       Perl_nothreadhook(pTHX);
942
943END_EXTERN_C
944
945#if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
946STATIC I32      S_avhv_index_sv(pTHX_ SV* sv);
947STATIC I32      S_avhv_index(pTHX_ AV* av, SV* sv, U32 hash);
948#endif
949
950#if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT)
951STATIC I32      S_do_trans_simple(pTHX_ SV *sv);
952STATIC I32      S_do_trans_count(pTHX_ SV *sv);
953STATIC I32      S_do_trans_complex(pTHX_ SV *sv);
954STATIC I32      S_do_trans_simple_utf8(pTHX_ SV *sv);
955STATIC I32      S_do_trans_count_utf8(pTHX_ SV *sv);
956STATIC I32      S_do_trans_complex_utf8(pTHX_ SV *sv);
957#endif
958
959#if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT)
960STATIC void     S_gv_init_sv(pTHX_ GV *gv, I32 sv_type);
961STATIC void     S_require_errno(pTHX_ GV *gv);
962#endif
963
964#if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
965STATIC void     S_hsplit(pTHX_ HV *hv);
966STATIC void     S_hfreeentries(pTHX_ HV *hv);
967STATIC void     S_more_he(pTHX);
968STATIC HE*      S_new_he(pTHX);
969STATIC void     S_del_he(pTHX_ HE *p);
970STATIC HEK*     S_save_hek_flags(pTHX_ const char *str, I32 len, U32 hash, int flags);
971STATIC void     S_hv_magic_check(pTHX_ HV *hv, bool *needs_copy, bool *needs_store);
972STATIC void     S_unshare_hek_or_pvn(pTHX_ HEK* hek, const char* sv, I32 len, U32 hash);
973STATIC HEK*     S_share_hek_flags(pTHX_ const char* sv, I32 len, U32 hash, int flags);
974STATIC void     S_hv_notallowed(pTHX_ int flags, const char *key, I32 klen, const char *msg);
975#endif
976
977#if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT)
978STATIC void     S_save_magic(pTHX_ I32 mgs_ix, SV *sv);
979STATIC int      S_magic_methpack(pTHX_ SV *sv, MAGIC *mg, char *meth);
980STATIC int      S_magic_methcall(pTHX_ SV *sv, MAGIC *mg, char *meth, I32 f, int n, SV *val);
981#endif
982
983#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
984STATIC I32      S_list_assignment(pTHX_ OP *o);
985STATIC void     S_bad_type(pTHX_ I32 n, char *t, char *name, OP *kid);
986STATIC void     S_cop_free(pTHX_ COP *cop);
987STATIC OP*      S_modkids(pTHX_ OP *o, I32 type);
988STATIC void     S_no_bareword_allowed(pTHX_ OP *o);
989STATIC OP*      S_no_fh_allowed(pTHX_ OP *o);
990STATIC OP*      S_scalarboolean(pTHX_ OP *o);
991STATIC OP*      S_too_few_arguments(pTHX_ OP *o, char* name);
992STATIC OP*      S_too_many_arguments(pTHX_ OP *o, char* name);
993STATIC OP*      S_newDEFSVOP(pTHX);
994STATIC OP*      S_new_logop(pTHX_ I32 type, I32 flags, OP **firstp, OP **otherp);
995STATIC void     S_simplify_sort(pTHX_ OP *o);
996STATIC bool     S_is_handle_constructor(pTHX_ OP *o, I32 argnum);
997STATIC char*    S_gv_ename(pTHX_ GV *gv);
998STATIC bool     S_scalar_mod_type(pTHX_ OP *o, I32 type);
999STATIC OP *     S_my_kid(pTHX_ OP *o, OP *attrs, OP **imopsp);
1000STATIC OP *     S_dup_attrlist(pTHX_ OP *o);
1001STATIC void     S_apply_attrs(pTHX_ HV *stash, SV *target, OP *attrs, bool for_my);
1002STATIC void     S_apply_attrs_my(pTHX_ HV *stash, OP *target, OP *attrs, OP **imopsp);
1003#endif
1004#if defined(PL_OP_SLAB_ALLOC)
1005PERL_CALLCONV void*     Perl_Slab_Alloc(pTHX_ int m, size_t sz);
1006PERL_CALLCONV void      Perl_Slab_Free(pTHX_ void *op);
1007#endif
1008
1009#if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
1010STATIC void     S_find_beginning(pTHX);
1011STATIC void     S_forbid_setid(pTHX_ char *);
1012STATIC void     S_incpush(pTHX_ char *, int, int, int);
1013STATIC void     S_init_interp(pTHX);
1014STATIC void     S_init_ids(pTHX);
1015STATIC void     S_init_lexer(pTHX);
1016STATIC void     S_init_main_stash(pTHX);
1017STATIC void     S_init_perllib(pTHX);
1018STATIC void     S_init_postdump_symbols(pTHX_ int, char **, char **);
1019STATIC void     S_init_predump_symbols(pTHX);
1020STATIC void     S_my_exit_jump(pTHX) __attribute__((noreturn));
1021STATIC void     S_nuke_stacks(pTHX);
1022STATIC void     S_open_script(pTHX_ char *, bool, SV *, int *fd);
1023STATIC void     S_usage(pTHX_ char *);
1024STATIC void     S_validate_suid(pTHX_ char *, char*, int);
1025#  if defined(IAMSUID)
1026STATIC int      S_fd_on_nosuid_fs(pTHX_ int fd);
1027#  endif
1028STATIC void*    S_parse_body(pTHX_ char **env, XSINIT_t xsinit);
1029STATIC void*    S_run_body(pTHX_ I32 oldscope);
1030STATIC void     S_call_body(pTHX_ OP *myop, int is_eval);
1031STATIC void*    S_call_list_body(pTHX_ CV *cv);
1032#if defined(PERL_FLEXIBLE_EXCEPTIONS)
1033STATIC void*    S_vparse_body(pTHX_ va_list args);
1034STATIC void*    S_vrun_body(pTHX_ va_list args);
1035STATIC void*    S_vcall_body(pTHX_ va_list args);
1036STATIC void*    S_vcall_list_body(pTHX_ va_list args);
1037#endif
1038#  if defined(USE_5005THREADS)
1039STATIC struct perl_thread *     S_init_main_thread(pTHX);
1040#  endif
1041#endif
1042
1043#if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
1044STATIC SV*      S_refto(pTHX_ SV* sv);
1045#endif
1046
1047#if defined(PERL_IN_PP_PACK_C) || defined(PERL_DECL_PROT)
1048STATIC I32      S_unpack_rec(pTHX_ tempsym_t* symptr, char *s, char *strbeg, char *strend, char **new_s);
1049STATIC SV **    S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV **beglist, SV **endlist);
1050STATIC SV*      S_mul128(pTHX_ SV *sv, U8 m);
1051STATIC I32      S_measure_struct(pTHX_ tempsym_t* symptr);
1052STATIC char *   S_group_end(pTHX_ char *pat, char *patend, char ender);
1053STATIC char *   S_get_num(pTHX_ char *ppat, I32 *);
1054STATIC bool     S_next_symbol(pTHX_ tempsym_t* symptr);
1055STATIC void     S_doencodes(pTHX_ SV* sv, char* s, I32 len);
1056STATIC SV*      S_is_an_int(pTHX_ char *s, STRLEN l);
1057STATIC int      S_div128(pTHX_ SV *pnum, bool *done);
1058#endif
1059
1060#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
1061STATIC OP*      S_docatch(pTHX_ OP *o);
1062STATIC void*    S_docatch_body(pTHX);
1063#if defined(PERL_FLEXIBLE_EXCEPTIONS)
1064STATIC void*    S_vdocatch_body(pTHX_ va_list args);
1065#endif
1066STATIC OP*      S_dofindlabel(pTHX_ OP *o, char *label, OP **opstack, OP **oplimit);
1067STATIC void     S_doparseform(pTHX_ SV *sv);
1068STATIC I32      S_dopoptoeval(pTHX_ I32 startingblock);
1069STATIC I32      S_dopoptolabel(pTHX_ char *label);
1070STATIC I32      S_dopoptoloop(pTHX_ I32 startingblock);
1071STATIC I32      S_dopoptosub(pTHX_ I32 startingblock);
1072STATIC I32      S_dopoptosub_at(pTHX_ PERL_CONTEXT* cxstk, I32 startingblock);
1073STATIC void     S_save_lines(pTHX_ AV *array, SV *sv);
1074STATIC OP*      S_doeval(pTHX_ int gimme, OP** startop, CV* outside, U32 seq);
1075STATIC PerlIO * S_doopen_pm(pTHX_ const char *name, const char *mode);
1076STATIC bool     S_path_is_absolute(pTHX_ char *name);
1077#endif
1078
1079#if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
1080STATIC int      S_do_maybe_phash(pTHX_ AV *ary, SV **lelem, SV **firstlelem, SV **relem, SV **lastrelem);
1081STATIC void     S_do_oddball(pTHX_ HV *hash, SV **relem, SV **firstrelem);
1082STATIC CV*      S_get_db_sub(pTHX_ SV **svp, CV *cv);
1083STATIC SV*      S_method_common(pTHX_ SV* meth, U32* hashp);
1084#endif
1085
1086#if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
1087STATIC OP*      S_doform(pTHX_ CV *cv, GV *gv, OP *retop);
1088STATIC int      S_emulate_eaccess(pTHX_ const char* path, Mode_t mode);
1089#  if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
1090STATIC int      S_dooneliner(pTHX_ char *cmd, char *filename);
1091#  endif
1092#endif
1093
1094#if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT)
1095STATIC regnode* S_reg(pTHX_ struct RExC_state_t*, I32, I32 *);
1096STATIC regnode* S_reganode(pTHX_ struct RExC_state_t*, U8, U32);
1097STATIC regnode* S_regatom(pTHX_ struct RExC_state_t*, I32 *);
1098STATIC regnode* S_regbranch(pTHX_ struct RExC_state_t*, I32 *, I32);
1099STATIC void     S_reguni(pTHX_ struct RExC_state_t*, UV, char *, STRLEN*);
1100STATIC regnode* S_regclass(pTHX_ struct RExC_state_t*);
1101STATIC I32      S_regcurly(pTHX_ char *);
1102STATIC regnode* S_reg_node(pTHX_ struct RExC_state_t*, U8);
1103STATIC regnode* S_regpiece(pTHX_ struct RExC_state_t*, I32 *);
1104STATIC void     S_reginsert(pTHX_ struct RExC_state_t*, U8, regnode *);
1105STATIC void     S_regoptail(pTHX_ struct RExC_state_t*, regnode *, regnode *);
1106STATIC void     S_regtail(pTHX_ struct RExC_state_t*, regnode *, regnode *);
1107STATIC char*    S_regwhite(pTHX_ char *, char *);
1108STATIC char*    S_nextchar(pTHX_ struct RExC_state_t*);
1109#  ifdef DEBUGGING
1110STATIC regnode* S_dumpuntil(pTHX_ regnode *start, regnode *node, regnode *last, SV* sv, I32 l);
1111STATIC void     S_put_byte(pTHX_ SV* sv, int c);
1112#  endif
1113STATIC void     S_scan_commit(pTHX_ struct RExC_state_t*, struct scan_data_t *data);
1114STATIC void     S_cl_anything(pTHX_ struct RExC_state_t*, struct regnode_charclass_class *cl);
1115STATIC int      S_cl_is_anything(pTHX_ struct regnode_charclass_class *cl);
1116STATIC void     S_cl_init(pTHX_ struct RExC_state_t*, struct regnode_charclass_class *cl);
1117STATIC void     S_cl_init_zero(pTHX_ struct RExC_state_t*, struct regnode_charclass_class *cl);
1118STATIC void     S_cl_and(pTHX_ struct regnode_charclass_class *cl, struct regnode_charclass_class *and_with);
1119STATIC void     S_cl_or(pTHX_ struct RExC_state_t*, struct regnode_charclass_class *cl, struct regnode_charclass_class *or_with);
1120STATIC I32      S_study_chunk(pTHX_ struct RExC_state_t*, regnode **scanp, I32 *deltap, regnode *last, struct scan_data_t *data, U32 flags);
1121STATIC I32      S_add_data(pTHX_ struct RExC_state_t*, I32 n, char *s);
1122STATIC void     S_re_croak2(pTHX_ const char* pat1, const char* pat2, ...) __attribute__((noreturn));
1123STATIC I32      S_regpposixcc(pTHX_ struct RExC_state_t*, I32 value);
1124STATIC void     S_checkposixcc(pTHX_ struct RExC_state_t*);
1125#endif
1126
1127#if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT)
1128STATIC I32      S_regmatch(pTHX_ regnode *prog);
1129STATIC I32      S_regrepeat(pTHX_ regnode *p, I32 max);
1130STATIC I32      S_regrepeat_hard(pTHX_ regnode *p, I32 max, I32 *lp);
1131STATIC I32      S_regtry(pTHX_ regexp *prog, char *startpos);
1132STATIC bool     S_reginclass(pTHX_ regnode *n, U8 *p, STRLEN *lenp, bool do_utf8sv_is_utf8);
1133STATIC CHECKPOINT       S_regcppush(pTHX_ I32 parenfloor);
1134STATIC char*    S_regcppop(pTHX);
1135STATIC char*    S_regcp_set_to(pTHX_ I32 ss);
1136STATIC void     S_cache_re(pTHX_ regexp *prog);
1137STATIC U8*      S_reghop(pTHX_ U8 *pos, I32 off);
1138STATIC U8*      S_reghop3(pTHX_ U8 *pos, I32 off, U8 *lim);
1139STATIC U8*      S_reghopmaybe(pTHX_ U8 *pos, I32 off);
1140STATIC U8*      S_reghopmaybe3(pTHX_ U8 *pos, I32 off, U8 *lim);
1141STATIC char*    S_find_byclass(pTHX_ regexp * prog, regnode *c, char *s, char *strend, char *startpos, I32 norun);
1142STATIC void     S_to_utf8_substr(pTHX_ regexp * prog);
1143STATIC void     S_to_byte_substr(pTHX_ regexp * prog);
1144#endif
1145
1146#if defined(PERL_IN_DUMP_C) || defined(PERL_DECL_PROT)
1147STATIC CV*      S_deb_curcv(pTHX_ I32 ix);
1148STATIC void     S_debprof(pTHX_ OP *o);
1149#endif
1150
1151#if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
1152STATIC SV*      S_save_scalar_at(pTHX_ SV **sptr);
1153#endif
1154
1155#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
1156STATIC IV       S_asIV(pTHX_ SV* sv);
1157STATIC UV       S_asUV(pTHX_ SV* sv);
1158STATIC SV*      S_more_sv(pTHX);
1159STATIC void     S_more_xiv(pTHX);
1160STATIC void     S_more_xnv(pTHX);
1161STATIC void     S_more_xpv(pTHX);
1162STATIC void     S_more_xpviv(pTHX);
1163STATIC void     S_more_xpvnv(pTHX);
1164STATIC void     S_more_xpvcv(pTHX);
1165STATIC void     S_more_xpvav(pTHX);
1166STATIC void     S_more_xpvhv(pTHX);
1167STATIC void     S_more_xpvmg(pTHX);
1168STATIC void     S_more_xpvlv(pTHX);
1169STATIC void     S_more_xpvbm(pTHX);
1170STATIC void     S_more_xrv(pTHX);
1171STATIC XPVIV*   S_new_xiv(pTHX);
1172STATIC XPVNV*   S_new_xnv(pTHX);
1173STATIC XPV*     S_new_xpv(pTHX);
1174STATIC XPVIV*   S_new_xpviv(pTHX);
1175STATIC XPVNV*   S_new_xpvnv(pTHX);
1176STATIC XPVCV*   S_new_xpvcv(pTHX);
1177STATIC XPVAV*   S_new_xpvav(pTHX);
1178STATIC XPVHV*   S_new_xpvhv(pTHX);
1179STATIC XPVMG*   S_new_xpvmg(pTHX);
1180STATIC XPVLV*   S_new_xpvlv(pTHX);
1181STATIC XPVBM*   S_new_xpvbm(pTHX);
1182STATIC XRV*     S_new_xrv(pTHX);
1183STATIC void     S_del_xiv(pTHX_ XPVIV* p);
1184STATIC void     S_del_xnv(pTHX_ XPVNV* p);
1185STATIC void     S_del_xpv(pTHX_ XPV* p);
1186STATIC void     S_del_xpviv(pTHX_ XPVIV* p);
1187STATIC void     S_del_xpvnv(pTHX_ XPVNV* p);
1188STATIC void     S_del_xpvcv(pTHX_ XPVCV* p);
1189STATIC void     S_del_xpvav(pTHX_ XPVAV* p);
1190STATIC void     S_del_xpvhv(pTHX_ XPVHV* p);
1191STATIC void     S_del_xpvmg(pTHX_ XPVMG* p);
1192STATIC void     S_del_xpvlv(pTHX_ XPVLV* p);
1193STATIC void     S_del_xpvbm(pTHX_ XPVBM* p);
1194STATIC void     S_del_xrv(pTHX_ XRV* p);
1195STATIC void     S_sv_unglob(pTHX_ SV* sv);
1196STATIC void     S_not_a_number(pTHX_ SV *sv);
1197STATIC I32      S_visit(pTHX_ SVFUNC_t f);
1198STATIC void     S_sv_add_backref(pTHX_ SV *tsv, SV *sv);
1199STATIC void     S_sv_del_backref(pTHX_ SV *sv);
1200#  ifdef DEBUGGING
1201STATIC void     S_del_sv(pTHX_ SV *p);
1202#  endif
1203#  if !defined(NV_PRESERVES_UV)
1204STATIC int      S_sv_2iuv_non_preserve(pTHX_ SV *sv, I32 numtype);
1205#  endif
1206STATIC I32      S_expect_number(pTHX_ char** pattern);
1207#
1208#  if defined(USE_ITHREADS)
1209STATIC SV*      S_gv_share(pTHX_ SV *sv, CLONE_PARAMS *param);
1210#  endif
1211STATIC bool     S_utf8_mg_pos(pTHX_ SV *sv, MAGIC **mgp, STRLEN **cachep, I32 i, I32 *offsetp, I32 uoff, U8 **sp, U8 *start, U8 *send);
1212STATIC bool     S_utf8_mg_pos_init(pTHX_ SV *sv, MAGIC **mgp, STRLEN **cachep, I32 i, I32 *offsetp, U8 *s, U8 *start);
1213#endif
1214
1215#if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
1216STATIC void     S_check_uni(pTHX);
1217STATIC void     S_force_next(pTHX_ I32 type);
1218STATIC char*    S_force_version(pTHX_ char *start, int guessing);
1219STATIC char*    S_force_word(pTHX_ char *start, int token, int check_keyword, int allow_pack, int allow_tick);
1220STATIC SV*      S_tokeq(pTHX_ SV *sv);
1221STATIC int      S_pending_ident(pTHX);
1222STATIC char*    S_scan_const(pTHX_ char *start);
1223STATIC char*    S_scan_formline(pTHX_ char *s);
1224STATIC char*    S_scan_heredoc(pTHX_ char *s);
1225STATIC char*    S_scan_ident(pTHX_ char *s, char *send, char *dest, STRLEN destlen, I32 ck_uni);
1226STATIC char*    S_scan_inputsymbol(pTHX_ char *start);
1227STATIC char*    S_scan_pat(pTHX_ char *start, I32 type);
1228STATIC char*    S_scan_str(pTHX_ char *start, int keep_quoted, int keep_delims);
1229STATIC char*    S_scan_subst(pTHX_ char *start);
1230STATIC char*    S_scan_trans(pTHX_ char *start);
1231STATIC char*    S_scan_word(pTHX_ char *s, char *dest, STRLEN destlen, int allow_package, STRLEN *slp);
1232STATIC char*    S_skipspace(pTHX_ char *s);
1233STATIC char*    S_swallow_bom(pTHX_ U8 *s);
1234STATIC void     S_checkcomma(pTHX_ char *s, char *name, char *what);
1235STATIC void     S_force_ident(pTHX_ char *s, int kind);
1236STATIC void     S_incline(pTHX_ char *s);
1237STATIC int      S_intuit_method(pTHX_ char *s, GV *gv);
1238STATIC int      S_intuit_more(pTHX_ char *s);
1239STATIC I32      S_lop(pTHX_ I32 f, int x, char *s);
1240STATIC void     S_missingterm(pTHX_ char *s);
1241STATIC void     S_no_op(pTHX_ char *what, char *s);
1242STATIC void     S_set_csh(pTHX);
1243STATIC I32      S_sublex_done(pTHX);
1244STATIC I32      S_sublex_push(pTHX);
1245STATIC I32      S_sublex_start(pTHX);
1246STATIC char *   S_filter_gets(pTHX_ SV *sv, PerlIO *fp, STRLEN append);
1247STATIC HV *     S_find_in_my_stash(pTHX_ char *pkgname, I32 len);
1248STATIC SV*      S_new_constant(pTHX_ char *s, STRLEN len, const char *key, SV *sv, SV *pv, const char *type);
1249#  if defined(DEBUGGING)
1250STATIC void     S_tokereport(pTHX_ char *thing, char *s, I32 rv);
1251#  endif
1252STATIC int      S_ao(pTHX_ int toketype);
1253STATIC void     S_depcom(pTHX);
1254STATIC char*    S_incl_perldb(pTHX);
1255#if 0
1256STATIC I32      S_utf16_textfilter(pTHX_ int idx, SV *sv, int maxlen);
1257STATIC I32      S_utf16rev_textfilter(pTHX_ int idx, SV *sv, int maxlen);
1258#endif
1259#  if defined(PERL_CR_FILTER)
1260STATIC I32      S_cr_textfilter(pTHX_ int idx, SV *sv, int maxlen);
1261#  endif
1262#endif
1263
1264#if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
1265STATIC SV*      S_isa_lookup(pTHX_ HV *stash, const char *name, HV *name_stash, int len, int level);
1266#endif
1267
1268#if defined(PERL_IN_LOCALE_C) || defined(PERL_DECL_PROT)
1269STATIC char*    S_stdize_locale(pTHX_ char* locs);
1270#endif
1271
1272#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
1273STATIC COP*     S_closest_cop(pTHX_ COP *cop, OP *o);
1274STATIC SV*      S_mess_alloc(pTHX);
1275#endif
1276
1277#if defined(PERL_IN_NUMERIC_C) || defined(PERL_DECL_PROT)
1278STATIC NV       S_mulexp10(NV value, I32 exponent);
1279#endif
1280
1281START_EXTERN_C
1282
1283PERL_CALLCONV void      Perl_sv_setsv_flags(pTHX_ SV* dsv, SV* ssv, I32 flags);
1284PERL_CALLCONV void      Perl_sv_catpvn_flags(pTHX_ SV* sv, const char* ptr, STRLEN len, I32 flags);
1285PERL_CALLCONV void      Perl_sv_catsv_flags(pTHX_ SV* dsv, SV* ssv, I32 flags);
1286PERL_CALLCONV STRLEN    Perl_sv_utf8_upgrade_flags(pTHX_ SV *sv, I32 flags);
1287PERL_CALLCONV char*     Perl_sv_pvn_force_flags(pTHX_ SV* sv, STRLEN* lp, I32 flags);
1288PERL_CALLCONV char*     Perl_sv_2pv_flags(pTHX_ SV* sv, STRLEN* lp, I32 flags);
1289PERL_CALLCONV void      Perl_sv_copypv(pTHX_ SV* dsv, SV* ssv);
1290PERL_CALLCONV char*     Perl_my_atof2(pTHX_ const char *s, NV* value);
1291PERL_CALLCONV int       Perl_my_socketpair(int family, int type, int protocol, int fd[2]);
1292
1293#if defined(USE_PERLIO) && !defined(USE_SFIO)
1294PERL_CALLCONV int       Perl_PerlIO_close(pTHX_ PerlIO *);
1295PERL_CALLCONV int       Perl_PerlIO_fill(pTHX_ PerlIO *);
1296PERL_CALLCONV int       Perl_PerlIO_fileno(pTHX_ PerlIO *);
1297PERL_CALLCONV int       Perl_PerlIO_eof(pTHX_ PerlIO *);
1298PERL_CALLCONV int       Perl_PerlIO_error(pTHX_ PerlIO *);
1299PERL_CALLCONV int       Perl_PerlIO_flush(pTHX_ PerlIO *);
1300PERL_CALLCONV void      Perl_PerlIO_clearerr(pTHX_ PerlIO *);
1301PERL_CALLCONV void      Perl_PerlIO_set_cnt(pTHX_ PerlIO *, int);
1302PERL_CALLCONV void      Perl_PerlIO_set_ptrcnt(pTHX_ PerlIO *, STDCHAR *, int);
1303PERL_CALLCONV void      Perl_PerlIO_setlinebuf(pTHX_ PerlIO *);
1304PERL_CALLCONV SSize_t   Perl_PerlIO_read(pTHX_ PerlIO *, void *, Size_t);
1305PERL_CALLCONV SSize_t   Perl_PerlIO_write(pTHX_ PerlIO *, const void *, Size_t);
1306PERL_CALLCONV SSize_t   Perl_PerlIO_unread(pTHX_ PerlIO *, const void *, Size_t);
1307PERL_CALLCONV Off_t     Perl_PerlIO_tell(pTHX_ PerlIO *);
1308PERL_CALLCONV int       Perl_PerlIO_seek(pTHX_ PerlIO *, Off_t, int);
1309
1310PERL_CALLCONV STDCHAR * Perl_PerlIO_get_base(pTHX_ PerlIO *);
1311PERL_CALLCONV STDCHAR * Perl_PerlIO_get_ptr(pTHX_ PerlIO *);
1312PERL_CALLCONV int       Perl_PerlIO_get_bufsiz(pTHX_ PerlIO *);
1313PERL_CALLCONV int       Perl_PerlIO_get_cnt(pTHX_ PerlIO *);
1314
1315PERL_CALLCONV PerlIO *  Perl_PerlIO_stdin(pTHX);
1316PERL_CALLCONV PerlIO *  Perl_PerlIO_stdout(pTHX);
1317PERL_CALLCONV PerlIO *  Perl_PerlIO_stderr(pTHX);
1318#endif /* PERLIO_LAYERS */
1319
1320PERL_CALLCONV void      Perl_deb_stack_all(pTHX);
1321#ifdef PERL_IN_DEB_C
1322STATIC void     S_deb_stack_n(pTHX_ SV** stack_base, I32 stack_min, I32 stack_max, I32 mark_min, I32 mark_max);
1323#endif
1324
1325PERL_CALLCONV PADLIST*  Perl_pad_new(pTHX_ int flags);
1326PERL_CALLCONV void      Perl_pad_undef(pTHX_ CV* cv);
1327PERL_CALLCONV PADOFFSET Perl_pad_add_name(pTHX_ char *name, HV* typestash, HV* ourstash, bool clone);
1328PERL_CALLCONV PADOFFSET Perl_pad_add_anon(pTHX_ SV* sv, OPCODE op_type);
1329PERL_CALLCONV void      Perl_pad_check_dup(pTHX_ char* name, bool is_our, HV* ourstash);
1330#ifdef DEBUGGING
1331PERL_CALLCONV void      Perl_pad_setsv(pTHX_ PADOFFSET po, SV* sv);
1332#endif
1333PERL_CALLCONV void      Perl_pad_block_start(pTHX_ int full);
1334PERL_CALLCONV void      Perl_pad_tidy(pTHX_ padtidy_type type);
1335PERL_CALLCONV void      Perl_do_dump_pad(pTHX_ I32 level, PerlIO *file, PADLIST *padlist, int full);
1336PERL_CALLCONV void      Perl_pad_fixup_inner_anons(pTHX_ PADLIST *padlist, CV *old_cv, CV *new_cv);
1337
1338PERL_CALLCONV void      Perl_pad_push(pTHX_ PADLIST *padlist, int depth, int has_args);
1339
1340#if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
1341STATIC PADOFFSET        S_pad_findlex(pTHX_ char* name, PADOFFSET newoff, CV* innercv);
1342#  if defined(DEBUGGING)
1343STATIC void     S_cv_dump(pTHX_ CV *cv, char *title);
1344#  endif
1345STATIC CV*      S_cv_clone2(pTHX_ CV *proto, CV *outside);
1346#endif
1347PERL_CALLCONV CV*       Perl_find_runcv(pTHX_ U32 *db_seqp);
1348PERL_CALLCONV void      Perl_free_tied_hv_pool(pTHX);
1349#if defined(DEBUGGING)
1350PERL_CALLCONV int       Perl_get_debug_opts(pTHX_ char **s);
1351#endif
1352
1353
1354
1355
1356PERL_CALLCONV void      Perl_hv_clear_placeholders(pTHX_ HV* hb);
1357
1358#if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
1359STATIC SV*      S_hv_delete_common(pTHX_ HV* tb, SV* key_sv, const char* key, STRLEN klen, int k_flags, I32 d_flags, U32 hash);
1360STATIC HE*      S_hv_fetch_common(pTHX_ HV* tb, SV* key_sv, const char* key, STRLEN klen, int flags, int action, SV* val, U32 hash);
1361#endif
1362PERL_CALLCONV SV*       Perl_hv_scalar(pTHX_ HV* hv);
1363PERL_CALLCONV SV*       Perl_magic_scalarpack(pTHX_ HV* hv, MAGIC*      mg);
1364
1365END_EXTERN_C
Note: See TracBrowser for help on using the repository browser.