Install extensions with bootstrap (again) in $archlib
[p5sagit/p5-mst-13.2.git] / proto.h
diff --git a/proto.h b/proto.h
index cfcbb52..3eca378 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -1,10 +1,12 @@
+START_EXTERN_C
+
 #ifndef NEXT30_NO_ATTRIBUTE
 #ifndef HASATTRIBUTE       /* disable GNU-cc attribute checking? */
 #ifdef  __attribute__      /* Avoid possible redefinition errors */
 #undef  __attribute__
 #endif
 #define __attribute__(attr)
-#endif 
+#endif
 #endif
 #ifdef OVERLOAD
 SV*    amagic_call _((SV* left,SV* right,int method,int dir));
@@ -24,6 +26,7 @@ I32   avhv_iterinit _((AV *ar));
 HE*    avhv_iternext _((AV *ar));
 SV *   avhv_iternextsv _((AV *ar, char** key, I32* retlen));
 SV*    avhv_iterval _((AV *ar, HE* entry));
+HV*    avhv_keys _((AV *ar));
 SV**   avhv_store _((AV *ar, char* key, U32 klen, SV* val, U32 hash));
 void   av_clear _((AV* ar));
 void   av_extend _((AV* ar, I32 key));
@@ -34,6 +37,7 @@ I32   av_len _((AV* ar));
 AV*    av_make _((I32 size, SV** svp));
 SV*    av_pop _((AV* ar));
 void   av_push _((AV* ar, SV* val));
+void   av_reify _((AV* ar));
 SV*    av_shift _((AV* ar));
 SV**   av_store _((AV* ar, I32 key, SV* val));
 void   av_undef _((AV* ar));
@@ -44,7 +48,7 @@ I32   block_gimme _((void));
 int    block_start _((int full));
 void   boot_core_UNIVERSAL _((void));
 void   call_list _((I32 oldscope, AV* list));
-I32    cando _((I32 bit, I32 effective, struct stat* statbufp));
+I32    cando _((I32 bit, I32 effective, Stat_t* statbufp));
 #ifndef CASTNEGFLOAT
 U32    cast_ulong _((double f));
 #endif
@@ -63,11 +67,13 @@ CV* cv_clone _((CV* proto));
 SV*    cv_const_sv _((CV* cv));
 void   cv_undef _((CV* cv));
 #ifdef DEBUGGING
-void   cx_dump _((CONTEXT* cs));
+void   cx_dump _((PERL_CONTEXT* cs));
 #endif
 SV*    filter_add _((filter_t funcp, SV* datasv));
 void   filter_del _((filter_t funcp));
 I32    filter_read _((int idx, SV* buffer, int maxlen));
+char **        get_op_descs _((void));
+char **        get_op_names _((void));
 I32    cxinc _((void));
 void   deb _((const char* pat,...)) __attribute__((format(printf,1,2)));
 void   deb_growlevel _((void));
@@ -131,8 +137,11 @@ void       dump_op _((OP* arg));
 void   dump_pm _((PMOP* pm));
 void   dump_packsubs _((HV* stash));
 void   dump_sub _((GV* gv));
-void   fbm_compile _((SV* sv));
+void   fbm_compile _((SV* sv, U32 flags));
 char*  fbm_instr _((unsigned char* big, unsigned char* bigend, SV* littlesv));
+#ifdef USE_THREADS
+PADOFFSET      find_threadsv _((char *name));
+#endif
 OP*    force_list _((OP* arg));
 OP*    fold_constants _((OP* arg));
 char*  form _((const char* pat, ...));
@@ -158,7 +167,6 @@ void        gv_init _((GV* gv, HV* stash, char* name, STRLEN len, int multi));
 HV*    gv_stashpv _((char* name, I32 create));
 HV*    gv_stashpvn _((char* name, U32 namelen, I32 create));
 HV*    gv_stashsv _((SV* sv, I32 create));
-void   hoistmust _((PMOP* pm));
 void   hv_clear _((HV* tb));
 void   hv_delayfree_ent _((HV* hv, HE* entry));
 SV*    hv_delete _((HV* tb, char* key, U32 klen, I32 flags));
@@ -203,6 +211,7 @@ int magic_clearpack _((SV* sv, MAGIC* mg));
 int    magic_clearsig  _((SV* sv, MAGIC* mg));
 int    magic_existspack _((SV* sv, MAGIC* mg));
 int    magic_freedefelem _((SV* sv, MAGIC* mg));
+int    magic_freeregexp _((SV* sv, MAGIC* mg));
 int    magic_get       _((SV* sv, MAGIC* mg));
 int    magic_getarylen _((SV* sv, MAGIC* mg));
 int    magic_getdefelem _((SV* sv, MAGIC* mg));
@@ -241,6 +250,8 @@ int magic_setsubstr _((SV* sv, MAGIC* mg));
 int    magic_settaint  _((SV* sv, MAGIC* mg));
 int    magic_setuvar   _((SV* sv, MAGIC* mg));
 int    magic_setvec    _((SV* sv, MAGIC* mg));
+int    magic_set_all_env _((SV* sv, MAGIC* mg));
+U32    magic_sizepack  _((SV* sv, MAGIC* mg));
 int    magic_wipepack  _((SV* sv, MAGIC* mg));
 void   magicname _((char* sym, char* name, I32 namlen));
 int    main _((int argc, char** argv, char** env));
@@ -257,6 +268,7 @@ int mg_get _((SV* sv));
 U32    mg_len _((SV* sv));
 void   mg_magical _((SV* sv));
 int    mg_set _((SV* sv));
+I32    mg_size _((SV* sv));
 OP*    mod _((OP* o, I32 type));
 char*  moreswitches _((char* s));
 OP*    my _((OP* o));
@@ -290,6 +302,7 @@ OP* newANONHASH _((OP* o));
 OP*    newANONSUB _((I32 floor, OP* proto, OP* block));
 OP*    newASSIGNOP _((I32 flags, OP* left, I32 optype, OP* right));
 OP*    newCONDOP _((I32 flags, OP* expr, OP* trueop, OP* falseop));
+void   newCONSTSUB _((HV* stash, char* name, SV* sv));
 void   newFORM _((I32 floor, OP* o, OP* block));
 OP*    newFOROP _((I32 flags, char* label, line_t forline, OP* scalar, OP* expr, OP*block, OP*cont));
 OP*    newLOGOP _((I32 optype, I32 flags, OP* left, OP* right));
@@ -303,9 +316,6 @@ OP* newSLICEOP _((I32 flags, OP* subscript, OP* list));
 OP*    newSTATEOP _((I32 flags, char* label, OP* o));
 CV*    newSUB _((I32 floor, OP* o, OP* proto, OP* block));
 CV*    newXS _((char* name, void (*subaddr)(CV* cv), char* filename));
-#ifdef DEPRECATED
-CV*    newXSUB _((char* name, I32 ix, I32 (*subaddr)(int,int,int), char* filename));
-#endif
 AV*    newAV _((void));
 OP*    newAVREF _((OP* o));
 OP*    newBINOP _((I32 type, I32 flags, OP* first, OP* last));
@@ -320,21 +330,26 @@ OP*       newLISTOP _((I32 type, I32 flags, OP* first, OP* last));
 OP*    newPMOP _((I32 type, I32 flags));
 OP*    newPVOP _((I32 type, I32 flags, char* pv));
 SV*    newRV _((SV* ref));
-#ifdef LEAKTEST
-SV*    newSV _((I32 x, STRLEN len));
-#else
-SV*    newSV _((STRLEN len));
+#if !defined(__GNUC__) && (defined(CRIPPLED_CC) || defined(USE_THREADS))
+SV*    newRV_noinc _((SV *));
 #endif
+SV*    newSV _((STRLEN len));
 OP*    newSVREF _((OP* o));
 OP*    newSVOP _((I32 type, I32 flags, SV* sv));
 SV*    newSViv _((IV i));
 SV*    newSVnv _((double n));
 SV*    newSVpv _((char* s, STRLEN len));
+SV*    newSVpvn _((char* s, STRLEN len));
 SV*    newSVpvf _((const char* pat, ...));
 SV*    newSVrv _((SV* rv, char* classname));
 SV*    newSVsv _((SV* old));
 OP*    newUNOP _((I32 type, I32 flags, OP* first));
-OP*    newWHILEOP _((I32 flags, I32 debuggable, LOOP* loop, OP* expr, OP* block, OP* cont));
+OP*    newWHILEOP _((I32 flags, I32 debuggable, LOOP* loop,
+                     I32 whileline, OP* expr, OP* block, OP* cont));
+#ifdef USE_THREADS
+struct perl_thread *   new_struct_thread _((struct perl_thread *t));
+#endif
+PERL_SI *      new_stackinfo _((I32 stitems, I32 cxitems));
 PerlIO*        nextargv _((GV* gv));
 char*  ninstr _((char* big, char* bigend, char* little, char* lend));
 OP*    oopsCV _((OP* o));
@@ -389,10 +404,11 @@ regexp*   pregcomp _((char* exp, char* xend, PMOP* pm));
 OP*    ref _((OP* o, I32 type));
 OP*    refkids _((OP* o, I32 type));
 void   regdump _((regexp* r));
-I32    pregexec _((regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, I32 safebase));
-void   pregfree _((struct regexp* r));
-char*  regnext _((char* p));
-void   regprop _((SV* sv, char* o));
+I32    pregexec _((regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, U32 nosave));
+I32    regexec_flags _((regexp* prog, char* stringarg, char* strend, char* strbeg, I32 minend, SV* screamer, void* data, U32 flags));
+  void pregfree _((struct regexp* r));
+regnode*regnext _((regnode* p));
+void   regprop _((SV* sv, regnode* o));
 void   repeatcpy _((char* to, char* from, I32 len, I32 count));
 char*  rninstr _((char* big, char* bigend, char* little, char* lend));
 Sighandler_t rsignal _((int, Sighandler_t));
@@ -408,6 +424,7 @@ I32 same_dirent _((char* a, char* b));
 char*  savepv _((char* sv));
 char*  savepvn _((char* sv, I32 len));
 void   savestack_grow _((void));
+void   save_aelem _((AV* av, I32 idx, SV **sptr));
 void   save_aptr _((AV** aptr));
 AV*    save_ary _((GV* gv));
 void   save_clearsv _((SV** svp));
@@ -420,6 +437,7 @@ void        save_freeop _((OP* o));
 void   save_freepv _((char* pv));
 void   save_gp _((GV* gv, I32 empty));
 HV*    save_hash _((GV* gv));
+void   save_helem _((HV* hv, SV *key, SV **sptr));
 void   save_hptr _((HV** hptr));
 void   save_I16 _((I16* intp));
 void   save_I32 _((I32* intp));
@@ -434,6 +452,7 @@ SV* save_scalar _((GV* gv));
 void   save_pptr _((char** pptr));
 void   save_sptr _((SV** sptr));
 SV*    save_svref _((SV** sptr));
+SV**   save_threadsv _((PADOFFSET i));
 OP*    sawparens _((OP* o));
 OP*    scalar _((OP* o));
 OP*    scalarkids _((OP* o));
@@ -443,7 +462,7 @@ UV  scan_hex _((char* start, I32 len, I32* retlen));
 char*  scan_num _((char* s));
 UV     scan_oct _((char* start, I32 len, I32* retlen));
 OP*    scope _((OP* o));
-char*  screaminstr _((SV* bigsv, SV* littlesv));
+char*  screaminstr _((SV* bigsv, SV* littlesv, I32 start_shift, I32 end_shift, I32 *state, I32 last));
 #ifndef VMS
 I32    setenv_getix _((char* nam));
 #endif
@@ -462,13 +481,22 @@ SV*       sv_2mortal _((SV* sv));
 double sv_2nv _((SV* sv));
 char*  sv_2pv _((SV* sv, STRLEN* lp));
 UV     sv_2uv _((SV* sv));
+IV     sv_iv _((SV* sv));
+UV     sv_uv _((SV* sv));
+double sv_nv _((SV* sv));
+char * sv_pvn _((SV *, STRLEN *));
+I32    sv_true _((SV *));
 void   sv_add_arena _((char* ptr, U32 size, U32 flags));
 int    sv_backoff _((SV* sv));
 SV*    sv_bless _((SV* sv, HV* stash));
 void   sv_catpvf _((SV* sv, const char* pat, ...));
+void   sv_catpvf_mg _((SV* sv, const char* pat, ...));
 void   sv_catpv _((SV* sv, char* ptr));
+void   sv_catpv_mg _((SV* sv, char* ptr));
 void   sv_catpvn _((SV* sv, char* ptr, STRLEN len));
+void   sv_catpvn_mg _((SV* sv, char* ptr, STRLEN len));
 void   sv_catsv _((SV* dsv, SV* ssv));
+void   sv_catsv_mg _((SV* dsv, SV* ssv));
 void   sv_chop _((SV* sv, char* ptr));
 void   sv_clean_all _((void));
 void   sv_clean_objs _((void));
@@ -478,6 +506,7 @@ I32 sv_cmp_locale _((SV* sv1, SV* sv2));
 #ifdef USE_LOCALE_COLLATE
 char*  sv_collxfrm _((SV* sv, STRLEN* nxp));
 #endif
+OP*    sv_compile_2op _((SV* sv, OP** startp, char* code, AV** avp));
 void   sv_dec _((SV* sv));
 void   sv_dump _((SV* sv));
 bool   sv_derived_from _((SV* sv, char* name));
@@ -506,16 +535,25 @@ void      sv_replace _((SV* sv, SV* nsv));
 void   sv_report_used _((void));
 void   sv_reset _((char* s, HV* stash));
 void   sv_setpvf _((SV* sv, const char* pat, ...));
+void   sv_setpvf_mg _((SV* sv, const char* pat, ...));
 void   sv_setiv _((SV* sv, IV num));
+void   sv_setiv_mg _((SV* sv, IV num));
+void   sv_setpviv _((SV* sv, IV num));
+void   sv_setpviv_mg _((SV* sv, IV num));
 void   sv_setuv _((SV* sv, UV num));
+void   sv_setuv_mg _((SV* sv, UV num));
 void   sv_setnv _((SV* sv, double num));
+void   sv_setnv_mg _((SV* sv, double num));
 SV*    sv_setref_iv _((SV* rv, char* classname, IV iv));
 SV*    sv_setref_nv _((SV* rv, char* classname, double nv));
 SV*    sv_setref_pv _((SV* rv, char* classname, void* pv));
 SV*    sv_setref_pvn _((SV* rv, char* classname, char* pv, I32 n));
 void   sv_setpv _((SV* sv, const char* ptr));
+void   sv_setpv_mg _((SV* sv, const char* ptr));
 void   sv_setpvn _((SV* sv, const char* ptr, STRLEN len));
+void   sv_setpvn_mg _((SV* sv, const char* ptr, STRLEN len));
 void   sv_setsv _((SV* dsv, SV* ssv));
+void   sv_setsv_mg _((SV* dsv, SV* ssv));
 void   sv_taint _((SV* sv));
 bool   sv_tainted _((SV* sv));
 int    sv_unmagic _((SV* sv, int type));
@@ -523,6 +561,7 @@ void        sv_unref _((SV* sv));
 void   sv_untaint _((SV* sv));
 bool   sv_upgrade _((SV* sv, U32 mt));
 void   sv_usepvn _((SV* sv, char* ptr, STRLEN len));
+void   sv_usepvn_mg _((SV* sv, char* ptr, STRLEN len));
 void   sv_vcatpvfn _((SV* sv, const char* pat, STRLEN patlen,
                       va_list* args, SV** svargs, I32 svmax,
                       bool *used_locale));
@@ -551,13 +590,6 @@ int        yylex _((void));
 int    yyparse _((void));
 int    yywarn _((char* s));
 
-#if defined(MYMALLOC) || !defined(STANDARD_C)
-Malloc_t malloc _((MEM_SIZE nbytes));
-Malloc_t calloc _((MEM_SIZE elements, MEM_SIZE size));
-Malloc_t realloc _((Malloc_t where, MEM_SIZE nbytes));
-Free_t   free _((Malloc_t where));
-#endif
-
 #ifndef MYMALLOC
 Malloc_t safemalloc _((MEM_SIZE nbytes));
 Malloc_t safecalloc _((MEM_SIZE elements, MEM_SIZE size));
@@ -571,3 +603,9 @@ Malloc_t safexcalloc _((I32 x, MEM_SIZE elements, MEM_SIZE size));
 Malloc_t safexrealloc _((Malloc_t where, MEM_SIZE size));
 void     safexfree _((Malloc_t where));
 #endif
+
+#ifdef PERL_GLOBAL_STRUCT
+struct perl_vars *Perl_GetVars _((void));
+#endif
+
+END_EXTERN_C