This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
$#a>>=1 relies on malloc wrap to avoid the segfault, so need to
[perl5.git] / embed.fnc
index 32cb2f8..56fd52c 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -10,7 +10,8 @@
 :                      proto, no #define
 :      d               function has documentation with its source
 :      s               static function, should have an S_ prefix in
-:                      source file
+:                      source file; for macros (m), suffix the usage
+:                      example with a semicolon
 :      n               has no implicit interpreter/thread context argument
 :      p               function has a Perl_ prefix
 :      f               function takes printf style format string, varargs
@@ -22,6 +23,7 @@
 :      E               visible to extensions included in the Perl core
 :      b               binary backward compatibility; function is a macro
 :                      but has also Perl_ implementation (which is exported)
+:      U               suppress usage example in autogenerated documentation
 :
 : Individual flags may be separated by whitespace.
 :
@@ -47,7 +49,7 @@ Anod  |int    |perl_parse     |PerlInterpreter* interp|XSINIT_t xsinit \
                                |int argc|char** argv|char** env
 Anp    |bool   |doing_taint    |int argc|char** argv|char** env
 #if defined(USE_ITHREADS)
-Anod   |PerlInterpreter*|perl_clone|PerlInterpreter* interpUV flags
+Anod   |PerlInterpreter*|perl_clone|PerlInterpreter* interp|UV flags
 #  if defined(PERL_IMPLICIT_SYS)
 Ano    |PerlInterpreter*|perl_clone_using|PerlInterpreter *interp|UV flags \
                                |struct IPerlMem* m|struct IPerlMem* ms \
@@ -243,7 +245,7 @@ Ap  |GV*    |gv_autoload4   |HV* stash|const char* name|STRLEN len \
                                |I32 method
 Ap     |void   |gv_check       |HV* stash
 Ap     |void   |gv_efullname   |SV* sv|GV* gv
-A    |void   |gv_efullname3  |SV* sv|GV* gv|const char* prefix
+Amb    |void   |gv_efullname3  |SV* sv|GV* gv|const char* prefix
 Ap     |void   |gv_efullname4  |SV* sv|GV* gv|const char* prefix|bool keepmain
 Ap     |GV*    |gv_fetchfile   |const char* name
 Apd    |GV*    |gv_fetchmeth   |HV* stash|const char* name|STRLEN len \
@@ -255,12 +257,12 @@ Apd       |GV*    |gv_fetchmethod_autoload|HV* stash|const char* name \
                                |I32 autoload
 Ap     |GV*    |gv_fetchpv     |const char* name|I32 add|I32 sv_type
 Ap     |void   |gv_fullname    |SV* sv|GV* gv
-A    |void   |gv_fullname3   |SV* sv|GV* gv|const char* prefix
+Amb    |void   |gv_fullname3   |SV* sv|GV* gv|const char* prefix
 Ap     |void   |gv_fullname4   |SV* sv|GV* gv|const char* prefix|bool keepmain
 Ap     |void   |gv_init        |GV* gv|HV* stash|const char* name \
                                |STRLEN len|int multi
 Apd    |HV*    |gv_stashpv     |const char* name|I32 create
-Ap     |HV*    |gv_stashpvn    |const char* name|U32 namelen|I32 create
+Apd    |HV*    |gv_stashpvn    |const char* name|U32 namelen|I32 create
 Apd    |HV*    |gv_stashsv     |SV* sv|I32 create
 Apd    |void   |hv_clear       |HV* tb
 Ap     |void   |hv_delayfree_ent|HV* hv|HE* entry
@@ -359,8 +361,10 @@ p  |I32    |keyword        |char* d|I32 len
 Ap     |void   |leave_scope    |I32 base
 p      |void   |lex_end
 p      |void   |lex_start      |SV* line
-Ap |void   |op_null    |OP* o
+Ap     |void   |op_null        |OP* o
 p      |void   |op_clear       |OP* o
+Ap     |void   |op_refcnt_lock
+Ap     |void   |op_refcnt_unlock
 p      |OP*    |linklist       |OP* o
 p      |OP*    |list           |OP* o
 p      |OP*    |listkids       |OP* o
@@ -535,10 +539,11 @@ Ap        |OP*    |newWHILEOP     |I32 flags|I32 debuggable|LOOP* loop \
 
 Ap     |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems
 Ap     |char*  |scan_vstring   |char *vstr|SV *sv
-Apd    |char*  |scan_version   |char *vstr|SV *sv
+Apd    |char*  |scan_version   |char *vstr|SV *sv|bool qv
 Apd    |SV*    |new_version    |SV *ver
 Apd    |SV*    |upg_version    |SV *ver
 Apd    |SV*    |vnumify        |SV *vs
+Apd    |SV*    |vnormal        |SV *vs
 Apd    |SV*    |vstringify     |SV *vs
 Apd    |int    |vcmp           |SV *lvs|SV *rvs
 p      |PerlIO*|nextargv       |GV* gv
@@ -550,6 +555,7 @@ p   |void   |package        |OP* o
 pd     |PADOFFSET|pad_alloc    |I32 optype|U32 tmptype
 p      |PADOFFSET|allocmy      |char* name
 pd     |PADOFFSET|pad_findmy   |char* name
+Ap     |PADOFFSET|find_rundefsvoffset  |
 p      |OP*    |oopsAV         |OP* o
 p      |OP*    |oopsHV         |OP* o
 pd     |void   |pad_leavemy
@@ -590,12 +596,10 @@ Apd       |void   |pack_cat       |SV *cat|char *pat|char *patend|SV **beglist|SV **endlist|SV
 Apd    |void   |packlist       |SV *cat|char *pat|char *patend|SV **beglist|SV **endlist
 p      |void   |pidgone        |Pid_t pid|int status
 Ap     |void   |pmflag         |U32* pmfl|int ch
-p      |OP*    |pmruntime      |OP* pm|OP* expr|OP* repl
+p      |OP*    |pmruntime      |OP* pm|OP* expr|bool isreg
 p      |OP*    |pmtrans        |OP* o|OP* expr|OP* repl
-p      |OP*    |pop_return
 Ap     |void   |pop_scope
 p      |OP*    |prepend_elem   |I32 optype|OP* head|OP* tail
-p      |void   |push_return    |OP* o
 Ap     |void   |push_scope
 p      |OP*    |ref            |OP* o|I32 type
 p      |OP*    |refkids        |OP* o|I32 type
@@ -697,14 +701,16 @@ p |void   |sub_crush_depth|CV* cv
 Apd    |bool   |sv_2bool       |SV* sv
 Apd    |CV*    |sv_2cv         |SV* sv|HV** st|GV** gvp|I32 lref
 Apd    |IO*    |sv_2io         |SV* sv
-Apd    |IV     |sv_2iv         |SV* sv
+Amb    |IV     |sv_2iv         |SV* sv
+Apd    |IV     |sv_2iv_flags   |SV* sv|I32 flags
 Apd    |SV*    |sv_2mortal     |SV* sv
 Apd    |NV     |sv_2nv         |SV* sv
 Amb    |char*  |sv_2pv         |SV* sv|STRLEN* lp
 Apd    |char*  |sv_2pvutf8     |SV* sv|STRLEN* lp
 Apd    |char*  |sv_2pvbyte     |SV* sv|STRLEN* lp
 Ap     |char*  |sv_pvn_nomg    |SV* sv|STRLEN* lp
-Apd    |UV     |sv_2uv         |SV* sv
+Amb    |UV     |sv_2uv         |SV* sv
+Apd    |UV     |sv_2uv_flags   |SV* sv|I32 flags
 Apd    |IV     |sv_iv          |SV* sv
 Apd    |UV     |sv_uv          |SV* sv
 Apd    |NV     |sv_nv          |SV* sv
@@ -716,7 +722,7 @@ pd  |void   |sv_add_arena   |char* ptr|U32 size|U32 flags
 Apd    |int    |sv_backoff     |SV* sv
 Apd    |SV*    |sv_bless       |SV* sv|HV* stash
 Afpd   |void   |sv_catpvf      |SV* sv|const char* pat|...
-Ap     |void   |sv_vcatpvf     |SV* sv|const char* pat|va_list* args
+Apd    |void   |sv_vcatpvf     |SV* sv|const char* pat|va_list* args
 Apd    |void   |sv_catpv       |SV* sv|const char* ptr
 Amdb   |void   |sv_catpvn      |SV* sv|const char* ptr|STRLEN len
 Amdb   |void   |sv_catsv       |SV* dsv|SV* ssv
@@ -750,7 +756,7 @@ Apd |STRLEN |sv_len_utf8    |SV* sv
 Apd    |void   |sv_magic       |SV* sv|SV* obj|int how|const char* name \
                                |I32 namlen
 Apd    |MAGIC *|sv_magicext    |SV* sv|SV* obj|int how|MGVTBL *vtbl \
-                               | const char* name|I32 namlen   
+                               |const char* name|I32 namlen
 Apd    |SV*    |sv_mortalcopy  |SV* oldsv
 Apd    |SV*    |sv_newmortal
 Apd    |SV*    |sv_newref      |SV* sv
@@ -768,7 +774,7 @@ Apd |void   |sv_replace     |SV* sv|SV* nsv
 Apd    |void   |sv_report_used
 Apd    |void   |sv_reset       |char* s|HV* stash
 Afpd   |void   |sv_setpvf      |SV* sv|const char* pat|...
-Ap     |void   |sv_vsetpvf     |SV* sv|const char* pat|va_list* args
+Apd    |void   |sv_vsetpvf     |SV* sv|const char* pat|va_list* args
 Apd    |void   |sv_setiv       |SV* sv|IV num
 Apdb   |void   |sv_setpviv     |SV* sv|IV num
 Apd    |void   |sv_setuv       |SV* sv|UV num
@@ -842,7 +848,7 @@ p   |U32    |parse_unicode_opts|char **popt
 p      |U32    |seed
 p      |UV     |get_hash_seed
 p      |void   |report_evil_fh |GV *gv|IO *io|I32 op
-pd     |void   |report_uninit
+pd     |void   |report_uninit  |SV* uninit_sv
 Afpd   |void   |warn           |const char* pat|...
 Ap     |void   |vwarn          |const char* pat|va_list* args
 Afp    |void   |warner         |U32 err|const char* pat|...
@@ -851,9 +857,6 @@ p   |void   |watch          |char** addr
 Ap     |I32    |whichsig       |char* sig
 p      |void   |write_to_stderr|const char* message|int msglen
 p      |int    |yyerror        |char* s
-#ifdef USE_PURE_BISON
-p      |int    |yylex_r        |YYSTYPE *lvalp|int *lcharp
-#endif
 p      |int    |yylex
 p      |int    |yyparse
 p      |int    |yywarn         |char* s
@@ -871,12 +874,12 @@ Ap        |struct perl_vars *|GetVars
 Ap     |int    |runops_standard
 Ap     |int    |runops_debug
 Afpd   |void   |sv_catpvf_mg   |SV *sv|const char* pat|...
-Ap     |void   |sv_vcatpvf_mg  |SV* sv|const char* pat|va_list* args
+Apd    |void   |sv_vcatpvf_mg  |SV* sv|const char* pat|va_list* args
 Apd    |void   |sv_catpv_mg    |SV *sv|const char *ptr
 Apd    |void   |sv_catpvn_mg   |SV *sv|const char *ptr|STRLEN len
 Apd    |void   |sv_catsv_mg    |SV *dstr|SV *sstr
 Afpd   |void   |sv_setpvf_mg   |SV *sv|const char* pat|...
-Ap     |void   |sv_vsetpvf_mg  |SV* sv|const char* pat|va_list* args
+Apd    |void   |sv_vsetpvf_mg  |SV* sv|const char* pat|va_list* args
 Apd    |void   |sv_setiv_mg    |SV *sv|IV i
 Apdb   |void   |sv_setpviv_mg  |SV *sv|IV iv
 Apd    |void   |sv_setuv_mg    |SV *sv|UV u
@@ -1043,9 +1046,9 @@ s |void   |init_postdump_symbols|int|char **|char **
 s      |void   |init_predump_symbols
 rs     |void   |my_exit_jump
 s      |void   |nuke_stacks
-s      |void   |open_script    |char *|bool|SV *|int *fd
+s      |void   |open_script    |char *|bool|SV *
 s      |void   |usage          |char *
-s      |void   |validate_suid  |char *|char*|int
+s      |void   |validate_suid  |char *|char*
 #  if defined(IAMSUID)
 s      |int    |fd_on_nosuid_fs|int fd
 #  endif
@@ -1085,7 +1088,8 @@ s |void*  |docatch_body
 s      |void*  |vdocatch_body  |va_list args
 #endif
 s      |OP*    |dofindlabel    |OP *o|char *label|OP **opstack|OP **oplimit
-s      |void   |doparseform    |SV *sv
+s      |OP*    |doparseform    |SV *sv
+sn     |bool   |num_overflow   |NV value|I32 fldsize|I32 frcsize
 s      |I32    |dopoptoeval    |I32 startingblock
 s      |I32    |dopoptolabel   |char *label
 s      |I32    |dopoptoloop    |I32 startingblock
@@ -1219,7 +1223,7 @@ s |void   |del_xpvbm      |XPVBM* p
 s      |void   |del_xrv        |XRV* p
 s      |void   |sv_unglob      |SV* sv
 s      |void   |not_a_number   |SV *sv
-s      |I32    |visit          |SVFUNC_t f
+s      |I32    |visit          |SVFUNC_t f|U32 flags|U32 mask
 s      |void   |sv_add_backref |SV *tsv|SV *sv
 s      |void   |sv_del_backref |SV *sv
 #  ifdef DEBUGGING
@@ -1280,7 +1284,7 @@ s |HV *   |find_in_my_stash|char *pkgname|I32 len
 s      |SV*    |new_constant   |char *s|STRLEN len|const char *key|SV *sv \
                                |SV *pv|const char *type
 #  if defined(DEBUGGING)
-s      |void   |tokereport     |char *thing|char *s|I32 rv
+s      |int    |tokereport     |char *s|I32 rv
 #  endif
 s      |int    |ao             |int toketype
 s      |void   |depcom
@@ -1323,7 +1327,7 @@ Apd       |void   |sv_copypv      |SV* dsv|SV* ssv
 Ap     |char*  |my_atof2       |const char *s|NV* value
 Apn    |int    |my_socketpair  |int family|int type|int protocol|int fd[2]
 #ifdef PERL_COPY_ON_WRITE
-pMX    |SV*    |sv_setsv_cow   |SV* dsv|SV* ssv
+pMXE   |SV*    |sv_setsv_cow   |SV* dsv|SV* ssv
 #endif
 
 #if defined(USE_PERLIO) && !defined(USE_SFIO)
@@ -1388,15 +1392,98 @@ sd      |void   |cv_dump        |CV *cv|char *title
 pd     |CV*    |find_runcv     |U32 *db_seqp
 p      |void   |free_tied_hv_pool
 #if defined(DEBUGGING)
-p      |int    |get_debug_opts |char **s
+p      |int    |get_debug_opts |char **s|bool givehelp
 #endif
 Ap     |void   |save_set_svflags|SV* sv|U32 mask|U32 val
 Apod   |void   |hv_assert      |HV* tb
 
 #if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
-sM     |SV*    |hv_delete_common|HV* tb|SV* key_sv|const char* key|I32 klen|I32 flags|U32 hash
-sM     |bool   |hv_exists_common|HV* tb|SV* key_sv|const char* key|I32 klen|U32 hash
-sM     |HE*    |hv_fetch_common|HV* tb|SV* key_sv|const char* key|I32 klen|int flags|int action|U32 hash
+sM     |SV*    |hv_delete_common|HV* tb|SV* key_sv|const char* key|STRLEN klen|int k_flags|I32 d_flags|U32 hash
+sM     |HE*    |hv_fetch_common|HV* tb|SV* key_sv|const char* key|STRLEN klen|int flags|int action|SV* val|U32 hash
+#endif
+
+Apd    |void   |hv_clear_placeholders|HV* hb
+
+Apd    |SV*    |hv_scalar      |HV* hv|
+p      |SV*    |magic_scalarpack|HV* hv|MAGIC* mg
+#ifdef PERL_IN_SV_C
+sMd    |SV*    |find_uninit_var|OP* obase|SV* uninit_sv|bool top
 #endif
-END_EXTERN_C
 
+#ifdef PERL_NEED_MY_HTOLE16
+np     |U16    |my_htole16     |U16 n
+#endif
+#ifdef PERL_NEED_MY_LETOH16
+np     |U16    |my_letoh16     |U16 n
+#endif
+#ifdef PERL_NEED_MY_HTOBE16
+np     |U16    |my_htobe16     |U16 n
+#endif
+#ifdef PERL_NEED_MY_BETOH16
+np     |U16    |my_betoh16     |U16 n
+#endif
+#ifdef PERL_NEED_MY_HTOLE32
+np     |U32    |my_htole32     |U32 n
+#endif
+#ifdef PERL_NEED_MY_LETOH32
+np     |U32    |my_letoh32     |U32 n
+#endif
+#ifdef PERL_NEED_MY_HTOBE32
+np     |U32    |my_htobe32     |U32 n
+#endif
+#ifdef PERL_NEED_MY_BETOH32
+np     |U32    |my_betoh32     |U32 n
+#endif
+#ifdef PERL_NEED_MY_HTOLE64
+np     |U64    |my_htole64     |U64 n
+#endif
+#ifdef PERL_NEED_MY_LETOH64
+np     |U64    |my_letoh64     |U64 n
+#endif
+#ifdef PERL_NEED_MY_HTOBE64
+np     |U64    |my_htobe64     |U64 n
+#endif
+#ifdef PERL_NEED_MY_BETOH64
+np     |U64    |my_betoh64     |U64 n
+#endif
+
+#ifdef PERL_NEED_MY_HTOLES
+np     |short  |my_htoles      |short n
+#endif
+#ifdef PERL_NEED_MY_LETOHS
+np     |short  |my_letohs      |short n
+#endif
+#ifdef PERL_NEED_MY_HTOBES
+np     |short  |my_htobes      |short n
+#endif
+#ifdef PERL_NEED_MY_BETOHS
+np     |short  |my_betohs      |short n
+#endif
+#ifdef PERL_NEED_MY_HTOLEI
+np     |int    |my_htolei      |int n
+#endif
+#ifdef PERL_NEED_MY_LETOHI
+np     |int    |my_letohi      |int n
+#endif
+#ifdef PERL_NEED_MY_HTOBEI
+np     |int    |my_htobei      |int n
+#endif
+#ifdef PERL_NEED_MY_BETOHI
+np     |int    |my_betohi      |int n
+#endif
+#ifdef PERL_NEED_MY_HTOLEL
+np     |long   |my_htolel      |long n
+#endif
+#ifdef PERL_NEED_MY_LETOHL
+np     |long   |my_letohl      |long n
+#endif
+#ifdef PERL_NEED_MY_HTOBEL
+np     |long   |my_htobel      |long n
+#endif
+#ifdef PERL_NEED_MY_BETOHL
+np     |long   |my_betohl      |long n
+#endif
+
+np     |void   |my_swabn       |void* ptr|int n
+
+END_EXTERN_C