Skip the RV printing test under threads until fixed.
[p5sagit/p5-mst-13.2.git] / embed.pl
CommitLineData
5f05dabc 1#!/usr/bin/perl -w
e50aee73 2
954c1994 3require 5.003; # keep this compatible, an old perl is all we may have before
4 # we build the new one
5f05dabc 5
cea2e8a9 6#
7# See database of global and static function prototypes at the __END__.
8# This is used to generate prototype headers under various configurations,
9# export symbols lists for different platforms, and macros to provide an
10# implicit interpreter context argument.
11#
12
13my $END = tell DATA;
14
15# walk table providing an array of components in each line to
16# subroutine, printing the result
17sub walk_table (&@) {
18 my $function = shift;
19 my $filename = shift || '-';
20 my $leader = shift;
21 my $trailer = shift;
22 my $F;
23 local *F;
24 if (ref $filename) { # filehandle
25 $F = $filename;
26 }
27 else {
918426be 28 unlink $filename;
cea2e8a9 29 open F, ">$filename" or die "Can't open $filename: $!";
30 $F = \*F;
31 }
32 print $F $leader if $leader;
33 seek DATA, $END, 0; # so we may restart
34 while (<DATA>) {
35 chomp;
1d7c1841 36 next if /^:/;
cea2e8a9 37 while (s|\\$||) {
38 $_ .= <DATA>;
39 chomp;
40 }
41 my @args;
42 if (/^\s*(#|$)/) {
43 @args = $_;
44 }
45 else {
46 @args = split /\s*\|\s*/, $_;
47 }
4543f4c0 48 my @outs = &{$function}(@args);
49 print $F @outs; # $function->(@args) is not 5.003
cea2e8a9 50 }
51 print $F $trailer if $trailer;
52 close $F unless ref $filename;
53}
54
55sub munge_c_files () {
56 my $functions = {};
57 unless (@ARGV) {
58 warn "\@ARGV empty, nothing to do\n";
59 return;
60 }
61 walk_table {
62 if (@_ > 1) {
63 $functions->{$_[2]} = \@_ if $_[@_-1] =~ /\.\.\./;
64 }
65 } '/dev/null';
66 local $^I = '.bak';
67 while (<>) {
68# if (/^#\s*include\s+"perl.h"/) {
69# my $file = uc $ARGV;
70# $file =~ s/\./_/g;
71# print "#define PERL_IN_$file\n";
72# }
73# s{^(\w+)\s*\(}
74# {
75# my $f = $1;
76# my $repl = "$f(";
77# if (exists $functions->{$f}) {
78# my $flags = $functions->{$f}[0];
79# $repl = "Perl_$repl" if $flags =~ /p/;
80# unless ($flags =~ /n/) {
81# $repl .= "pTHX";
82# $repl .= "_ " if @{$functions->{$f}} > 3;
83# }
84# warn("$ARGV:$.:$repl\n");
85# }
86# $repl;
87# }e;
88 s{(\b(\w+)[ \t]*\([ \t]*(?!aTHX))}
89 {
90 my $repl = $1;
91 my $f = $2;
92 if (exists $functions->{$f}) {
93 $repl .= "aTHX_ ";
94 warn("$ARGV:$.:$`#$repl#$'");
95 }
96 $repl;
97 }eg;
98 print;
99 close ARGV if eof; # restart $.
100 }
101 exit;
102}
103
104#munge_c_files();
105
106# generate proto.h
0cb96387 107my $wrote_protected = 0;
108
cea2e8a9 109sub write_protos {
110 my $ret = "";
111 if (@_ == 1) {
112 my $arg = shift;
1d7c1841 113 $ret .= "$arg\n";
cea2e8a9 114 }
115 else {
116 my ($flags,$retval,$func,@args) = @_;
117 if ($flags =~ /s/) {
118 $retval = "STATIC $retval";
119 $func = "S_$func";
120 }
0cb96387 121 else {
1d7c1841 122 $retval = "PERL_CALLCONV $retval";
0cb96387 123 if ($flags =~ /p/) {
124 $func = "Perl_$func";
125 }
cea2e8a9 126 }
127 $ret .= "$retval\t$func(";
128 unless ($flags =~ /n/) {
129 $ret .= "pTHX";
130 $ret .= "_ " if @args;
131 }
132 if (@args) {
133 $ret .= join ", ", @args;
134 }
135 else {
136 $ret .= "void" if $flags =~ /n/;
137 }
138 $ret .= ")";
139 $ret .= " __attribute__((noreturn))" if $flags =~ /r/;
1c846c1f 140 if( $flags =~ /f/ ) {
894356b3 141 my $prefix = $flags =~ /n/ ? '' : 'pTHX_';
1c846c1f 142 my $args = scalar @args;
d5b3b440 143 $ret .= "\n#ifdef CHECK_FORMAT\n";
894356b3 144 $ret .= sprintf " __attribute__((format(printf,%s%d,%s%d)))",
1c846c1f 145 $prefix, $args - 1, $prefix, $args;
894356b3 146 $ret .= "\n#endif\n";
147 }
cea2e8a9 148 $ret .= ";\n";
149 }
150 $ret;
151}
152
954c1994 153# generates global.sym (API export list), and populates %global with global symbols
cea2e8a9 154sub write_global_sym {
155 my $ret = "";
156 if (@_ > 1) {
157 my ($flags,$retval,$func,@args) = @_;
954c1994 158 if ($flags =~ /A/ && $flags !~ /x/) { # public API, so export
cea2e8a9 159 $func = "Perl_$func" if $flags =~ /p/;
160 $ret = "$func\n";
161 }
162 }
163 $ret;
164}
165
166
167walk_table(\&write_protos, 'proto.h', <<'EOT');
168/*
169 * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
170 * This file is autogenerated from data in embed.pl. Edit that file
171 * and run 'make regen_headers' to effect changes.
172 */
173
174EOT
175
176walk_table(\&write_global_sym, 'global.sym', <<'EOT');
177#
178# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
179# This file is autogenerated from data in embed.pl. Edit that file
180# and run 'make regen_headers' to effect changes.
181#
182
183EOT
184
709f4e38 185# XXX others that may need adding
186# warnhook
187# hints
188# copline
84fee439 189my @extvars = qw(sv_undef sv_yes sv_no na dowarn
1c846c1f 190 curcop compiling
84fee439 191 tainting tainted stack_base stack_sp sv_arenaroot
256a4781 192 no_modify
84fee439 193 curstash DBsub DBsingle debstash
1c846c1f 194 rsfp
84fee439 195 stdingv
6b88bc9c 196 defgv
197 errgv
3070f6ec 198 rsfp_filters
199 perldb
709f4e38 200 diehook
201 dirty
202 perl_destruct_level
ac634a9a 203 ppaddr
84fee439 204 );
205
5f05dabc 206sub readsyms (\%$) {
207 my ($syms, $file) = @_;
5f05dabc 208 local (*FILE, $_);
209 open(FILE, "< $file")
210 or die "embed.pl: Can't open $file: $!\n";
211 while (<FILE>) {
212 s/[ \t]*#.*//; # Delete comments.
213 if (/^\s*(\S+)\s*$/) {
22c35a8c 214 my $sym = $1;
215 warn "duplicate symbol $sym while processing $file\n"
216 if exists $$syms{$sym};
217 $$syms{$sym} = 1;
5f05dabc 218 }
219 }
220 close(FILE);
221}
222
cea2e8a9 223# Perl_pp_* and Perl_ck_* are in pp.sym
224readsyms my %ppsym, 'pp.sym';
5f05dabc 225
c6af7a1a 226sub readvars(\%$$@) {
227 my ($syms, $file,$pre,$keep_pre) = @_;
d4cce5f1 228 local (*FILE, $_);
229 open(FILE, "< $file")
230 or die "embed.pl: Can't open $file: $!\n";
231 while (<FILE>) {
232 s/[ \t]*#.*//; # Delete comments.
51371543 233 if (/PERLVARA?I?C?\($pre(\w+)/) {
22c35a8c 234 my $sym = $1;
c6af7a1a 235 $sym = $pre . $sym if $keep_pre;
22c35a8c 236 warn "duplicate symbol $sym while processing $file\n"
237 if exists $$syms{$sym};
51371543 238 $$syms{$sym} = $pre || 1;
d4cce5f1 239 }
240 }
241 close(FILE);
242}
243
244my %intrp;
245my %thread;
246
247readvars %intrp, 'intrpvar.h','I';
248readvars %thread, 'thrdvar.h','T';
22239a37 249readvars %globvar, 'perlvars.h','G';
d4cce5f1 250
4543f4c0 251my $sym;
252foreach $sym (sort keys %thread) {
34b58025 253 warn "$sym in intrpvar.h as well as thrdvar.h\n" if exists $intrp{$sym};
51371543 254}
d4cce5f1 255
c6af7a1a 256sub undefine ($) {
257 my ($sym) = @_;
258 "#undef $sym\n";
259}
260
5f05dabc 261sub hide ($$) {
262 my ($from, $to) = @_;
263 my $t = int(length($from) / 8);
264 "#define $from" . "\t" x ($t < 3 ? 3 - $t : 1) . "$to\n";
265}
c6af7a1a 266
6f4183fe 267sub bincompat_var ($$) {
51371543 268 my ($pfx, $sym) = @_;
acfe0abc 269 my $arg = ($pfx eq 'G' ? 'NULL' : 'aTHX');
c5be433b 270 undefine("PL_$sym") . hide("PL_$sym", "(*Perl_${pfx}${sym}_ptr($arg))");
c6af7a1a 271}
272
d4cce5f1 273sub multon ($$$) {
274 my ($sym,$pre,$ptr) = @_;
3280af22 275 hide("PL_$sym", "($ptr$pre$sym)");
5f05dabc 276}
54aff467 277
d4cce5f1 278sub multoff ($$) {
279 my ($sym,$pre) = @_;
533c011a 280 return hide("PL_$pre$sym", "PL_$sym");
5f05dabc 281}
282
283unlink 'embed.h';
cea2e8a9 284open(EM, '> embed.h') or die "Can't create embed.h: $!\n";
e50aee73 285
286print EM <<'END';
1c846c1f 287/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
cea2e8a9 288 This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h,
c6af7a1a 289 perlvars.h and thrdvar.h. Any changes made here will be lost!
76b72cf1 290*/
e50aee73 291
292/* (Doing namespace management portably in C is really gross.) */
293
22c35a8c 294/* NO_EMBED is no longer supported. i.e. EMBED is always active. */
820c3be9 295
538feb02 296/* provide binary compatible (but inconsistent) names */
297#if defined(PERL_BINCOMPAT_5005)
c0e79ee6 298# define Perl_call_atexit perl_atexit
299# define Perl_eval_sv perl_eval_sv
300# define Perl_eval_pv perl_eval_pv
538feb02 301# define Perl_call_argv perl_call_argv
302# define Perl_call_method perl_call_method
303# define Perl_call_pv perl_call_pv
304# define Perl_call_sv perl_call_sv
305# define Perl_get_av perl_get_av
306# define Perl_get_cv perl_get_cv
307# define Perl_get_hv perl_get_hv
308# define Perl_get_sv perl_get_sv
309# define Perl_init_i18nl10n perl_init_i18nl10n
310# define Perl_init_i18nl14n perl_init_i18nl14n
311# define Perl_new_collate perl_new_collate
312# define Perl_new_ctype perl_new_ctype
313# define Perl_new_numeric perl_new_numeric
314# define Perl_require_pv perl_require_pv
315# define Perl_safesyscalloc Perl_safecalloc
316# define Perl_safesysfree Perl_safefree
317# define Perl_safesysmalloc Perl_safemalloc
318# define Perl_safesysrealloc Perl_saferealloc
319# define Perl_set_numeric_local perl_set_numeric_local
320# define Perl_set_numeric_standard perl_set_numeric_standard
37bd1396 321/* malloc() pollution was the default in earlier versions, so enable
322 * it for bincompat; but not for systems that used to do prevent that,
323 * or when they ask for {HIDE,EMBED}MYMALLOC */
324# if !defined(EMBEDMYMALLOC) && !defined(HIDEMYMALLOC)
325# if !defined(NeXT) && !defined(__NeXT) && !defined(__MACHTEN__) && \
326 !defined(__QNX__)
327# define PERL_POLLUTE_MALLOC
328# endif
3d3b6b6a 329# endif
538feb02 330#endif
331
22c35a8c 332/* Hide global symbols */
5f05dabc 333
cea2e8a9 334#if !defined(PERL_IMPLICIT_CONTEXT)
e50aee73 335
e50aee73 336END
337
cea2e8a9 338walk_table {
339 my $ret = "";
340 if (@_ == 1) {
341 my $arg = shift;
12a98ad5 342 $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifn?def|else|endif)\b/;
cea2e8a9 343 }
344 else {
345 my ($flags,$retval,$func,@args) = @_;
346 unless ($flags =~ /o/) {
347 if ($flags =~ /s/) {
348 $ret .= hide($func,"S_$func");
349 }
350 elsif ($flags =~ /p/) {
351 $ret .= hide($func,"Perl_$func");
352 }
353 }
354 }
355 $ret;
356} \*EM;
357
358for $sym (sort keys %ppsym) {
359 $sym =~ s/^Perl_//;
360 print EM hide($sym, "Perl_$sym");
361}
362
363print EM <<'END';
364
365#else /* PERL_IMPLICIT_CONTEXT */
366
367END
368
369my @az = ('a'..'z');
370
371walk_table {
372 my $ret = "";
373 if (@_ == 1) {
374 my $arg = shift;
12a98ad5 375 $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifn?def|else|endif)\b/;
cea2e8a9 376 }
377 else {
378 my ($flags,$retval,$func,@args) = @_;
379 unless ($flags =~ /o/) {
380 my $args = scalar @args;
381 if ($args and $args[$args-1] =~ /\.\.\./) {
382 # we're out of luck for varargs functions under CPP
383 }
384 elsif ($flags =~ /n/) {
385 if ($flags =~ /s/) {
386 $ret .= hide($func,"S_$func");
387 }
388 elsif ($flags =~ /p/) {
389 $ret .= hide($func,"Perl_$func");
390 }
391 }
392 else {
393 my $alist = join(",", @az[0..$args-1]);
394 $ret = "#define $func($alist)";
395 my $t = int(length($ret) / 8);
396 $ret .= "\t" x ($t < 4 ? 4 - $t : 1);
397 if ($flags =~ /s/) {
398 $ret .= "S_$func(aTHX";
399 }
400 elsif ($flags =~ /p/) {
401 $ret .= "Perl_$func(aTHX";
402 }
403 $ret .= "_ " if $alist;
404 $ret .= $alist . ")\n";
405 }
406 }
407 }
408 $ret;
409} \*EM;
410
411for $sym (sort keys %ppsym) {
412 $sym =~ s/^Perl_//;
413 if ($sym =~ /^ck_/) {
414 print EM hide("$sym(a)", "Perl_$sym(aTHX_ a)");
415 }
416 elsif ($sym =~ /^pp_/) {
417 print EM hide("$sym()", "Perl_$sym(aTHX)");
418 }
419 else {
420 warn "Illegal symbol '$sym' in pp.sym";
421 }
e50aee73 422}
423
e50aee73 424print EM <<'END';
425
cea2e8a9 426#endif /* PERL_IMPLICIT_CONTEXT */
22c35a8c 427
428END
429
22c35a8c 430print EM <<'END';
431
cea2e8a9 432/* Compatibility stubs. Compile extensions with -DPERL_NOCOMPAT to
433 disable them.
434 */
435
538feb02 436#if !defined(PERL_CORE)
5bc28da9 437# define sv_setptrobj(rv,ptr,name) sv_setref_iv(rv,name,PTR2IV(ptr))
438# define sv_setptrref(rv,ptr) sv_setref_iv(rv,Nullch,PTR2IV(ptr))
538feb02 439#endif
cea2e8a9 440
538feb02 441#if !defined(PERL_CORE) && !defined(PERL_NOCOMPAT) && !defined(PERL_BINCOMPAT_5005)
cea2e8a9 442
443/* Compatibility for various misnamed functions. All functions
444 in the API that begin with "perl_" (not "Perl_") take an explicit
445 interpreter context pointer.
446 The following are not like that, but since they had a "perl_"
447 prefix in previous versions, we provide compatibility macros.
448 */
65cec589 449# define perl_atexit(a,b) call_atexit(a,b)
450# define perl_call_argv(a,b,c) call_argv(a,b,c)
451# define perl_call_pv(a,b) call_pv(a,b)
452# define perl_call_method(a,b) call_method(a,b)
453# define perl_call_sv(a,b) call_sv(a,b)
454# define perl_eval_sv(a,b) eval_sv(a,b)
455# define perl_eval_pv(a,b) eval_pv(a,b)
456# define perl_require_pv(a) require_pv(a)
457# define perl_get_sv(a,b) get_sv(a,b)
458# define perl_get_av(a,b) get_av(a,b)
459# define perl_get_hv(a,b) get_hv(a,b)
460# define perl_get_cv(a,b) get_cv(a,b)
461# define perl_init_i18nl10n(a) init_i18nl10n(a)
462# define perl_init_i18nl14n(a) init_i18nl14n(a)
463# define perl_new_ctype(a) new_ctype(a)
464# define perl_new_collate(a) new_collate(a)
465# define perl_new_numeric(a) new_numeric(a)
cea2e8a9 466
467/* varargs functions can't be handled with CPP macros. :-(
468 This provides a set of compatibility functions that don't take
469 an extra argument but grab the context pointer using the macro
470 dTHX.
471 */
acfe0abc 472#if defined(PERL_IMPLICIT_CONTEXT)
cea2e8a9 473# define croak Perl_croak_nocontext
c5be433b 474# define deb Perl_deb_nocontext
cea2e8a9 475# define die Perl_die_nocontext
476# define form Perl_form_nocontext
e4783991 477# define load_module Perl_load_module_nocontext
5a844595 478# define mess Perl_mess_nocontext
cea2e8a9 479# define newSVpvf Perl_newSVpvf_nocontext
480# define sv_catpvf Perl_sv_catpvf_nocontext
481# define sv_setpvf Perl_sv_setpvf_nocontext
482# define warn Perl_warn_nocontext
c5be433b 483# define warner Perl_warner_nocontext
cea2e8a9 484# define sv_catpvf_mg Perl_sv_catpvf_mg_nocontext
485# define sv_setpvf_mg Perl_sv_setpvf_mg_nocontext
486#endif
487
488#endif /* !defined(PERL_CORE) && !defined(PERL_NOCOMPAT) */
489
490#if !defined(PERL_IMPLICIT_CONTEXT)
491/* undefined symbols, point them back at the usual ones */
492# define Perl_croak_nocontext Perl_croak
493# define Perl_die_nocontext Perl_die
c5be433b 494# define Perl_deb_nocontext Perl_deb
cea2e8a9 495# define Perl_form_nocontext Perl_form
e4783991 496# define Perl_load_module_nocontext Perl_load_module
5a844595 497# define Perl_mess_nocontext Perl_mess
c5be433b 498# define Perl_newSVpvf_nocontext Perl_newSVpvf
499# define Perl_sv_catpvf_nocontext Perl_sv_catpvf
500# define Perl_sv_setpvf_nocontext Perl_sv_setpvf
cea2e8a9 501# define Perl_warn_nocontext Perl_warn
c5be433b 502# define Perl_warner_nocontext Perl_warner
cea2e8a9 503# define Perl_sv_catpvf_mg_nocontext Perl_sv_catpvf_mg
504# define Perl_sv_setpvf_mg_nocontext Perl_sv_setpvf_mg
505#endif
db5cf5a9 506
d4cce5f1 507END
508
509close(EM);
510
511unlink 'embedvar.h';
512open(EM, '> embedvar.h')
513 or die "Can't create embedvar.h: $!\n";
514
515print EM <<'END';
1c846c1f 516/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
cea2e8a9 517 This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h,
c6af7a1a 518 perlvars.h and thrdvar.h. Any changes made here will be lost!
d4cce5f1 519*/
520
521/* (Doing namespace management portably in C is really gross.) */
522
54aff467 523/*
acfe0abc 524 The following combinations of MULTIPLICITY, USE_5005THREADS
54aff467 525 and PERL_IMPLICIT_CONTEXT are supported:
526 1) none
527 2) MULTIPLICITY # supported for compatibility
528 3) MULTIPLICITY && PERL_IMPLICIT_CONTEXT
4d1ff10f 529 4) USE_5005THREADS && PERL_IMPLICIT_CONTEXT
530 5) MULTIPLICITY && USE_5005THREADS && PERL_IMPLICIT_CONTEXT
54aff467 531
532 All other combinations of these flags are errors.
533
534 #3, #4, #5, and #6 are supported directly, while #2 is a special
535 case of #3 (supported by redefining vTHX appropriately).
536*/
cea2e8a9 537
54aff467 538#if defined(MULTIPLICITY)
539/* cases 2, 3 and 5 above */
cea2e8a9 540
54aff467 541# if defined(PERL_IMPLICIT_CONTEXT)
542# define vTHX aTHX
543# else
544# define vTHX PERL_GET_INTERP
545# endif
cea2e8a9 546
e50aee73 547END
548
d4cce5f1 549for $sym (sort keys %thread) {
54aff467 550 print EM multon($sym,'T','vTHX->');
d4cce5f1 551}
552
553print EM <<'END';
554
4d1ff10f 555# if defined(USE_5005THREADS)
54aff467 556/* case 5 above */
d4cce5f1 557
558END
559
560for $sym (sort keys %intrp) {
c5be433b 561 print EM multon($sym,'I','PERL_GET_INTERP->');
760ac839 562}
760ac839 563
55497cff 564print EM <<'END';
565
4d1ff10f 566# else /* !USE_5005THREADS */
54aff467 567/* cases 2 and 3 above */
55497cff 568
569END
760ac839 570
d4cce5f1 571for $sym (sort keys %intrp) {
54aff467 572 print EM multon($sym,'I','vTHX->');
d4cce5f1 573}
574
575print EM <<'END';
576
4d1ff10f 577# endif /* USE_5005THREADS */
d4cce5f1 578
54aff467 579#else /* !MULTIPLICITY */
1d7c1841 580
1d7c1841 581/* cases 1 and 4 above */
5f05dabc 582
56d28764 583END
e50aee73 584
d4cce5f1 585for $sym (sort keys %intrp) {
54aff467 586 print EM multoff($sym,'I');
d4cce5f1 587}
588
589print EM <<'END';
590
acfe0abc 591# if defined(USE_5005THREADS)
54aff467 592/* case 4 above */
d4cce5f1 593
594END
595
596for $sym (sort keys %thread) {
54aff467 597 print EM multon($sym,'T','aTHX->');
5f05dabc 598}
599
600print EM <<'END';
601
acfe0abc 602# else /* !USE_5005THREADS */
1d7c1841 603/* case 1 above */
d4cce5f1 604
605END
606
607for $sym (sort keys %thread) {
54aff467 608 print EM multoff($sym,'T');
d4cce5f1 609}
610
611print EM <<'END';
612
acfe0abc 613# endif /* USE_5005THREADS */
54aff467 614#endif /* MULTIPLICITY */
d4cce5f1 615
54aff467 616#if defined(PERL_GLOBAL_STRUCT)
22239a37 617
618END
619
620for $sym (sort keys %globvar) {
533c011a 621 print EM multon($sym,'G','PL_Vars.');
22239a37 622}
623
624print EM <<'END';
625
626#else /* !PERL_GLOBAL_STRUCT */
627
628END
629
630for $sym (sort keys %globvar) {
631 print EM multoff($sym,'G');
632}
633
634print EM <<'END';
635
22239a37 636#endif /* PERL_GLOBAL_STRUCT */
637
85add8c2 638#ifdef PERL_POLLUTE /* disabled by default in 5.6.0 */
84fee439 639
640END
641
642for $sym (sort @extvars) {
643 print EM hide($sym,"PL_$sym");
644}
645
646print EM <<'END';
647
db5cf5a9 648#endif /* PERL_POLLUTE */
84fee439 649END
650
3fe35a81 651close(EM);
c6af7a1a 652
51371543 653unlink 'perlapi.h';
654unlink 'perlapi.c';
655open(CAPI, '> perlapi.c') or die "Can't create perlapi.c: $!\n";
656open(CAPIH, '> perlapi.h') or die "Can't create perlapi.h: $!\n";
657
658print CAPIH <<'EOT';
1c846c1f 659/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
51371543 660 This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h,
661 perlvars.h and thrdvar.h. Any changes made here will be lost!
662*/
663
51371543 664/* declare accessor functions for Perl variables */
6f4183fe 665#ifndef __perlapi_h__
666#define __perlapi_h__
51371543 667
acfe0abc 668#if defined (MULTIPLICITY)
c5be433b 669
51371543 670START_EXTERN_C
671
672#undef PERLVAR
673#undef PERLVARA
674#undef PERLVARI
675#undef PERLVARIC
acfe0abc 676#define PERLVAR(v,t) EXTERN_C t* Perl_##v##_ptr(pTHX);
51371543 677#define PERLVARA(v,n,t) typedef t PL_##v##_t[n]; \
acfe0abc 678 EXTERN_C PL_##v##_t* Perl_##v##_ptr(pTHX);
51371543 679#define PERLVARI(v,t,i) PERLVAR(v,t)
c5be433b 680#define PERLVARIC(v,t,i) PERLVAR(v, const t)
51371543 681
682#include "thrdvar.h"
683#include "intrpvar.h"
684#include "perlvars.h"
685
686#undef PERLVAR
687#undef PERLVARA
688#undef PERLVARI
689#undef PERLVARIC
690
691END_EXTERN_C
692
682fc664 693#if defined(PERL_CORE)
6f4183fe 694
682fc664 695/* accessor functions for Perl variables (provide binary compatibility) */
696
697/* these need to be mentioned here, or most linkers won't put them in
698 the perl executable */
699
700#ifndef PERL_NO_FORCE_LINK
701
702START_EXTERN_C
703
704#ifndef DOINIT
705EXT void *PL_force_link_funcs[];
706#else
707EXT void *PL_force_link_funcs[] = {
708#undef PERLVAR
709#undef PERLVARA
710#undef PERLVARI
711#undef PERLVARIC
ea1f607c 712#define PERLVAR(v,t) (void*)Perl_##v##_ptr,
682fc664 713#define PERLVARA(v,n,t) PERLVAR(v,t)
714#define PERLVARI(v,t,i) PERLVAR(v,t)
715#define PERLVARIC(v,t,i) PERLVAR(v,t)
716
717#include "thrdvar.h"
718#include "intrpvar.h"
719#include "perlvars.h"
720
721#undef PERLVAR
722#undef PERLVARA
723#undef PERLVARI
724#undef PERLVARIC
725};
726#endif /* DOINIT */
727
acfe0abc 728END_EXTERN_C
682fc664 729
730#endif /* PERL_NO_FORCE_LINK */
731
732#else /* !PERL_CORE */
51371543 733
734EOT
735
4543f4c0 736foreach $sym (sort keys %intrp) {
6f4183fe 737 print CAPIH bincompat_var('I',$sym);
738}
739
4543f4c0 740foreach $sym (sort keys %thread) {
6f4183fe 741 print CAPIH bincompat_var('T',$sym);
742}
743
4543f4c0 744foreach $sym (sort keys %globvar) {
6f4183fe 745 print CAPIH bincompat_var('G',$sym);
746}
747
748print CAPIH <<'EOT';
749
750#endif /* !PERL_CORE */
acfe0abc 751#endif /* MULTIPLICITY */
6f4183fe 752
753#endif /* __perlapi_h__ */
754
755EOT
d98f61e7 756close CAPIH;
51371543 757
758print CAPI <<'EOT';
1c846c1f 759/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
51371543 760 This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h,
761 perlvars.h and thrdvar.h. Any changes made here will be lost!
762*/
763
764#include "EXTERN.h"
765#include "perl.h"
766#include "perlapi.h"
767
acfe0abc 768#if defined (MULTIPLICITY)
51371543 769
770/* accessor functions for Perl variables (provides binary compatibility) */
771START_EXTERN_C
772
773#undef PERLVAR
774#undef PERLVARA
775#undef PERLVARI
776#undef PERLVARIC
6f4183fe 777
6f4183fe 778#define PERLVAR(v,t) t* Perl_##v##_ptr(pTHX) \
779 { return &(aTHX->v); }
780#define PERLVARA(v,n,t) PL_##v##_t* Perl_##v##_ptr(pTHX) \
781 { return &(aTHX->v); }
6f4183fe 782
51371543 783#define PERLVARI(v,t,i) PERLVAR(v,t)
c5be433b 784#define PERLVARIC(v,t,i) PERLVAR(v, const t)
51371543 785
786#include "thrdvar.h"
787#include "intrpvar.h"
c5be433b 788
789#undef PERLVAR
790#undef PERLVARA
acfe0abc 791#define PERLVAR(v,t) t* Perl_##v##_ptr(pTHX) \
c5be433b 792 { return &(PL_##v); }
acfe0abc 793#define PERLVARA(v,n,t) PL_##v##_t* Perl_##v##_ptr(pTHX) \
c5be433b 794 { return &(PL_##v); }
34f7a5fe 795#undef PERLVARIC
acfe0abc 796#define PERLVARIC(v,t,i) const t* Perl_##v##_ptr(pTHX) \
34f7a5fe 797 { return (const t *)&(PL_##v); }
51371543 798#include "perlvars.h"
799
800#undef PERLVAR
801#undef PERLVARA
802#undef PERLVARI
803#undef PERLVARIC
804
acfe0abc 805END_EXTERN_C
6f4183fe 806
acfe0abc 807#endif /* MULTIPLICITY */
51371543 808EOT
809
acfe0abc 810close(CAPI);
811
c5be433b 812# functions that take va_list* for implementing vararg functions
08cd8952 813# NOTE: makedef.pl must be updated if you add symbols to %vfuncs
acfe0abc 814# XXX %vfuncs currently unused
c5be433b 815my %vfuncs = qw(
816 Perl_croak Perl_vcroak
817 Perl_warn Perl_vwarn
818 Perl_warner Perl_vwarner
819 Perl_die Perl_vdie
820 Perl_form Perl_vform
e4783991 821 Perl_load_module Perl_vload_module
5a844595 822 Perl_mess Perl_vmess
c5be433b 823 Perl_deb Perl_vdeb
824 Perl_newSVpvf Perl_vnewSVpvf
825 Perl_sv_setpvf Perl_sv_vsetpvf
826 Perl_sv_setpvf_mg Perl_sv_vsetpvf_mg
827 Perl_sv_catpvf Perl_sv_vcatpvf
828 Perl_sv_catpvf_mg Perl_sv_vcatpvf_mg
829 Perl_dump_indent Perl_dump_vindent
830 Perl_default_protect Perl_vdefault_protect
831);
832
954c1994 833# autogenerate documentation from comments in source files
834
835my %apidocs;
836my %gutsdocs;
837my %docfuncs;
838
60ed1d8c 839sub autodoc ($$) { # parse a file and extract documentation info
840 my($fh,$file) = @_;
497711e7 841 my($in, $doc, $line);
954c1994 842FUNC:
843 while (defined($in = <$fh>)) {
497711e7 844 $line++;
954c1994 845 if ($in =~ /^=for\s+apidoc\s+(.*)\n/) {
846 my $proto = $1;
847 $proto = "||$proto" unless $proto =~ /\|/;
848 my($flags, $ret, $name, @args) = split /\|/, $proto;
849 my $docs = "";
850DOC:
851 while (defined($doc = <$fh>)) {
497711e7 852 $line++;
954c1994 853 last DOC if $doc =~ /^=\w+/;
497711e7 854 if ($doc =~ m:^\*/$:) {
855 warn "=cut missing? $file:$line:$doc";;
856 last DOC;
857 }
954c1994 858 $docs .= $doc;
859 }
860 $docs = "\n$docs" if $docs and $docs !~ /^\n/;
861 if ($flags =~ /m/) {
862 if ($flags =~ /A/) {
60ed1d8c 863 $apidocs{$name} = [$flags, $docs, $ret, $file, @args];
954c1994 864 }
865 else {
60ed1d8c 866 $gutsdocs{$name} = [$flags, $docs, $ret, $file, @args];
954c1994 867 }
868 }
869 else {
60ed1d8c 870 $docfuncs{$name} = [$flags, $docs, $ret, $file, @args];
954c1994 871 }
497711e7 872 if (defined $doc) {
873 if ($doc =~ /^=for/) {
874 $in = $doc;
875 redo FUNC;
876 }
877 } else {
f22d8e4b 878 warn "$file:$line:$in (=cut missing?)";
954c1994 879 }
880 }
881 }
882}
883
884sub docout ($$$) { # output the docs for one function
885 my($fh, $name, $docref) = @_;
60ed1d8c 886 my($flags, $docs, $ret, $file, @args) = @$docref;
954c1994 887
c461cf8f 888 $docs .= "NOTE: this function is experimental and may change or be
889removed without notice.\n\n" if $flags =~ /x/;
1c846c1f 890 $docs .= "NOTE: the perl_ form of this function is deprecated.\n\n"
954c1994 891 if $flags =~ /p/;
892
893 print $fh "=item $name\n$docs";
894
895 if ($flags =~ /U/) { # no usage
896 # nothing
897 } elsif ($flags =~ /s/) { # semicolon ("dTHR;")
898 print $fh "\t\t$name;\n\n";
899 } elsif ($flags =~ /n/) { # no args
900 print $fh "\t$ret\t$name\n\n";
901 } else { # full usage
902 print $fh "\t$ret\t$name";
903 print $fh "(" . join(", ", @args) . ")";
904 print $fh "\n\n";
905 }
60ed1d8c 906 print $fh "=for hackers\nFound in file $file\n\n";
954c1994 907}
908
909my $file;
910for $file (glob('*.c'), glob('*.h')) {
911 open F, "< $file" or die "Cannot open $file for docs: $!\n";
60ed1d8c 912 autodoc(\*F,$file);
954c1994 913 close F or die "Error closing $file: $!\n";
914}
915
916unlink "pod/perlapi.pod";
1c846c1f 917open (DOC, ">pod/perlapi.pod") or
954c1994 918 die "Can't create pod/perlapi.pod: $!\n";
919
920walk_table { # load documented functions into approriate hash
921 if (@_ > 1) {
922 my($flags, $retval, $func, @args) = @_;
923 return "" unless $flags =~ /d/;
924 $func =~ s/\t//g; $flags =~ s/p//; # clean up fields from embed.pl
925 $retval =~ s/\t//;
926 if ($flags =~ /A/) {
927 my $docref = delete $docfuncs{$func};
928 warn "no docs for $func\n" unless $docref and @$docref;
c461cf8f 929 $docref->[0].="x" if $flags =~ /M/;
60ed1d8c 930 $apidocs{$func} = [$docref->[0] . 'A', $docref->[1], $retval,
931 $docref->[3], @args];
954c1994 932 } else {
933 my $docref = delete $docfuncs{$func};
60ed1d8c 934 $gutsdocs{$func} = [$docref->[0], $docref->[1], $retval,
935 $docref->[3], @args];
954c1994 936 }
937 }
938 return "";
939} \*DOC;
940
941for (sort keys %docfuncs) {
1c846c1f 942 # Have you used a full for apidoc or just a func name?
497711e7 943 # Have you used Ap instead of Am in the for apidoc?
954c1994 944 warn "Unable to place $_!\n";
945}
946
947print DOC <<'_EOB_';
948=head1 NAME
949
950perlapi - autogenerated documentation for the perl public API
951
952=head1 DESCRIPTION
953
1c846c1f 954This file contains the documentation of the perl public API generated by
955embed.pl, specifically a listing of functions, macros, flags, and variables
956that may be used by extension writers. The interfaces of any functions that
954c1994 957are not listed here are subject to change without notice. For this reason,
958blindly using functions listed in proto.h is to be avoided when writing
959extensions.
960
961Note that all Perl API global variables must be referenced with the C<PL_>
962prefix. Some macros are provided for compatibility with the older,
963unadorned names, but this support may be disabled in a future release.
964
965The listing is alphabetical, case insensitive.
966
967=over 8
968
969_EOB_
970
971my $key;
972for $key (sort { uc($a) cmp uc($b); } keys %apidocs) { # case insensitive sort
973 docout(\*DOC, $key, $apidocs{$key});
974}
975
976print DOC <<'_EOE_';
977=back
978
979=head1 AUTHORS
980
981Until May 1997, this document was maintained by Jeff Okamoto
982<okamoto@corp.hp.com>. It is now maintained as part of Perl itself.
983
984With lots of help and suggestions from Dean Roehrich, Malcolm Beattie,
985Andreas Koenig, Paul Hudson, Ilya Zakharevich, Paul Marquess, Neil
986Bowers, Matthew Green, Tim Bunce, Spider Boardman, Ulrich Pfeifer,
987Stephen McCamant, and Gurusamy Sarathy.
988
989API Listing originally by Dean Roehrich <roehrich@cray.com>.
990
991Updated to be autogenerated from comments in the source by Benjamin Stuhl.
992
993=head1 SEE ALSO
994
995perlguts(1), perlxs(1), perlxstut(1), perlintern(1)
996
997_EOE_
998
999
1000close(DOC);
1001
2b9d42f0 1002unlink "pod/perlintern.pod";
1003
1c846c1f 1004open(GUTS, ">pod/perlintern.pod") or
954c1994 1005 die "Unable to create pod/perlintern.pod: $!\n";
1006print GUTS <<'END';
1007=head1 NAME
1008
1c846c1f 1009perlintern - autogenerated documentation of purely B<internal>
954c1994 1010 Perl functions
1011
1012=head1 DESCRIPTION
1013
1c846c1f 1014This file is the autogenerated documentation of functions in the
4375e838 1015Perl interpreter that are documented using Perl's internal documentation
1c846c1f 1016format but are not marked as part of the Perl API. In other words,
954c1994 1017B<they are not for use in extensions>!
1018
1019=over 8
1020
1021END
1022
1023for $key (sort { uc($a) cmp uc($b); } keys %gutsdocs) {
1024 docout(\*GUTS, $key, $gutsdocs{$key});
1025}
1026
1027print GUTS <<'END';
1028=back
1029
1030=head1 AUTHORS
1031
1c846c1f 1032The autodocumentation system was originally added to the Perl core by
1033Benjamin Stuhl. Documentation is by whoever was kind enough to
954c1994 1034document their functions.
1035
1036=head1 SEE ALSO
1037
1038perlguts(1), perlapi(1)
1039
1040END
1041
1042close GUTS;
1043
1044
cea2e8a9 1045__END__
1046
1d7c1841 1047: Lines are of the form:
1048: flags|return_type|function_name|arg1|arg2|...|argN
1049:
1050: A line may be continued on another by ending it with a backslash.
1051: Leading and trailing whitespace will be ignored in each component.
1052:
1053: flags are single letters with following meanings:
954c1994 1054: A member of public API
1055: d function has documentation with its source
1d7c1841 1056: s static function, should have an S_ prefix in source
954c1994 1057: file
1d7c1841 1058: n has no implicit interpreter/thread context argument
1059: p function has a Perl_ prefix
894356b3 1060: f function takes printf style format string, varargs
1d7c1841 1061: r function never returns
1062: o has no compatibility macro (#define foo Perl_foo)
1d7c1841 1063: x not exported
c461cf8f 1064: M may change
1d7c1841 1065:
1066: Individual flags may be separated by whitespace.
1067:
1068: New global functions should be added at the end for binary compatibility
1069: in some configurations.
1d7c1841 1070
1071START_EXTERN_C
1072
1073#if defined(PERL_IMPLICIT_SYS)
acfe0abc 1074Ano |PerlInterpreter* |perl_alloc_using \
1d7c1841 1075 |struct IPerlMem* m|struct IPerlMem* ms \
1076 |struct IPerlMem* mp|struct IPerlEnv* e \
1077 |struct IPerlStdIO* io|struct IPerlLIO* lio \
1078 |struct IPerlDir* d|struct IPerlSock* s \
1079 |struct IPerlProc* p
1d7c1841 1080#endif
acfe0abc 1081Anod |PerlInterpreter* |perl_alloc
1082Anod |void |perl_construct |PerlInterpreter* interp
1083Anod |int |perl_destruct |PerlInterpreter* interp
1084Anod |void |perl_free |PerlInterpreter* interp
1085Anod |int |perl_run |PerlInterpreter* interp
1086Anod |int |perl_parse |PerlInterpreter* interp|XSINIT_t xsinit \
1d7c1841 1087 |int argc|char** argv|char** env
1088#if defined(USE_ITHREADS)
acfe0abc 1089Anod |PerlInterpreter*|perl_clone|PerlInterpreter* interp, UV flags
1d7c1841 1090# if defined(PERL_IMPLICIT_SYS)
acfe0abc 1091Ano |PerlInterpreter*|perl_clone_using|PerlInterpreter *interp|UV flags \
1d7c1841 1092 |struct IPerlMem* m|struct IPerlMem* ms \
1093 |struct IPerlMem* mp|struct IPerlEnv* e \
1094 |struct IPerlStdIO* io|struct IPerlLIO* lio \
1095 |struct IPerlDir* d|struct IPerlSock* s \
1096 |struct IPerlProc* p
1097# endif
1098#endif
1099
acfe0abc 1100Anop |Malloc_t|malloc |MEM_SIZE nbytes
1101Anop |Malloc_t|calloc |MEM_SIZE elements|MEM_SIZE size
1102Anop |Malloc_t|realloc |Malloc_t where|MEM_SIZE nbytes
1103Anop |Free_t |mfree |Malloc_t where
cae6d0e5 1104#if defined(MYMALLOC)
acfe0abc 1105np |MEM_SIZE|malloced_size |void *p
1d7c1841 1106#endif
cea2e8a9 1107
acfe0abc 1108Anp |void* |get_context
1109Anp |void |set_context |void *thx
ba869deb 1110
1d7c1841 1111END_EXTERN_C
1112
1113/* functions with flag 'n' should come before here */
1d7c1841 1114START_EXTERN_C
1d7c1841 1115# include "pp_proto.h"
954c1994 1116Ap |SV* |amagic_call |SV* left|SV* right|int method|int dir
1117Ap |bool |Gv_AMupdate |HV* stash
32251b26 1118Ap |CV* |gv_handler |HV* stash|I32 id
cea2e8a9 1119p |OP* |append_elem |I32 optype|OP* head|OP* tail
1120p |OP* |append_list |I32 optype|LISTOP* first|LISTOP* last
1121p |I32 |apply |I32 type|SV** mark|SV** sp
01ec43d0 1122Ap |void |apply_attrs_string|char *stashpv|CV *cv|char *attrstr|STRLEN len
954c1994 1123Ap |SV* |avhv_delete_ent|AV *ar|SV* keysv|I32 flags|U32 hash
1124Ap |bool |avhv_exists_ent|AV *ar|SV* keysv|U32 hash
1125Ap |SV** |avhv_fetch_ent |AV *ar|SV* keysv|I32 lval|U32 hash
10c8fecd 1126Ap |SV** |avhv_store_ent |AV *ar|SV* keysv|SV* val|U32 hash
954c1994 1127Ap |HE* |avhv_iternext |AV *ar
1128Ap |SV* |avhv_iterval |AV *ar|HE* entry
1129Ap |HV* |avhv_keys |AV *ar
1130Apd |void |av_clear |AV* ar
f3b76584 1131Apd |SV* |av_delete |AV* ar|I32 key|I32 flags
1132Apd |bool |av_exists |AV* ar|I32 key
954c1994 1133Apd |void |av_extend |AV* ar|I32 key
f3b76584 1134p |AV* |av_fake |I32 size|SV** svp
954c1994 1135Apd |SV** |av_fetch |AV* ar|I32 key|I32 lval
f3b76584 1136Apd |void |av_fill |AV* ar|I32 fill
954c1994 1137Apd |I32 |av_len |AV* ar
1138Apd |AV* |av_make |I32 size|SV** svp
1139Apd |SV* |av_pop |AV* ar
1140Apd |void |av_push |AV* ar|SV* val
f3b76584 1141p |void |av_reify |AV* ar
954c1994 1142Apd |SV* |av_shift |AV* ar
1143Apd |SV** |av_store |AV* ar|I32 key|SV* val
1144Apd |void |av_undef |AV* ar
1145Apd |void |av_unshift |AV* ar|I32 num
cea2e8a9 1146p |OP* |bind_match |I32 type|OP* left|OP* pat
1147p |OP* |block_end |I32 floor|OP* seq
954c1994 1148Ap |I32 |block_gimme
cea2e8a9 1149p |int |block_start |int full
1150p |void |boot_core_UNIVERSAL
0c4f7ff0 1151p |void |boot_core_PerlIO
1be9d9c6 1152Ap |void |call_list |I32 oldscope|AV* av_list
7f4774ae 1153p |bool |cando |Mode_t mode|Uid_t effective|Stat_t* statbufp
954c1994 1154Ap |U32 |cast_ulong |NV f
1155Ap |I32 |cast_i32 |NV f
1156Ap |IV |cast_iv |NV f
1157Ap |UV |cast_uv |NV f
cea2e8a9 1158#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
954c1994 1159Ap |I32 |my_chsize |int fd|Off_t length
cea2e8a9 1160#endif
4d1ff10f 1161#if defined(USE_5005THREADS)
1be9d9c6 1162Ap |MAGIC* |condpair_magic |SV *sv
cea2e8a9 1163#endif
1164p |OP* |convert |I32 optype|I32 flags|OP* o
954c1994 1165Afprd |void |croak |const char* pat|...
1166Apr |void |vcroak |const char* pat|va_list* args
cea2e8a9 1167#if defined(PERL_IMPLICIT_CONTEXT)
954c1994 1168Afnrp |void |croak_nocontext|const char* pat|...
1169Afnp |OP* |die_nocontext |const char* pat|...
1170Afnp |void |deb_nocontext |const char* pat|...
1171Afnp |char* |form_nocontext |const char* pat|...
d2560b70 1172Anp |void |load_module_nocontext|U32 flags|SV* name|SV* ver|...
954c1994 1173Afnp |SV* |mess_nocontext |const char* pat|...
1174Afnp |void |warn_nocontext |const char* pat|...
1175Afnp |void |warner_nocontext|U32 err|const char* pat|...
1176Afnp |SV* |newSVpvf_nocontext|const char* pat|...
1177Afnp |void |sv_catpvf_nocontext|SV* sv|const char* pat|...
1178Afnp |void |sv_setpvf_nocontext|SV* sv|const char* pat|...
1179Afnp |void |sv_catpvf_mg_nocontext|SV* sv|const char* pat|...
1180Afnp |void |sv_setpvf_mg_nocontext|SV* sv|const char* pat|...
1181Afnp |int |fprintf_nocontext|PerlIO* stream|const char* fmt|...
b0316773 1182Afnp |int |printf_nocontext|const char* fmt|...
cea2e8a9 1183#endif
1184p |void |cv_ckproto |CV* cv|GV* gv|char* p
1185p |CV* |cv_clone |CV* proto
beab0874 1186Apd |SV* |cv_const_sv |CV* cv
cea2e8a9 1187p |SV* |op_const_sv |OP* o|CV* cv
d0674b55 1188Ap |void |cv_undef |CV* cv
954c1994 1189Ap |void |cx_dump |PERL_CONTEXT* cs
1190Ap |SV* |filter_add |filter_t funcp|SV* datasv
1191Ap |void |filter_del |filter_t funcp
1192Ap |I32 |filter_read |int idx|SV* buffer|int maxlen
1193Ap |char** |get_op_descs
1194Ap |char** |get_op_names
cea2e8a9 1195p |char* |get_no_modify
1196p |U32* |get_opargs
954c1994 1197Ap |PPADDR_t*|get_ppaddr
cea2e8a9 1198p |I32 |cxinc
954c1994 1199Afp |void |deb |const char* pat|...
1200Ap |void |vdeb |const char* pat|va_list* args
1201Ap |void |debprofdump
1202Ap |I32 |debop |OP* o
1203Ap |I32 |debstack
1204Ap |I32 |debstackptrs
1205Ap |char* |delimcpy |char* to|char* toend|char* from \
cea2e8a9 1206 |char* fromend|int delim|I32* retlen
1207p |void |deprecate |char* s
1be9d9c6 1208Afp |OP* |die |const char* pat|...
c5be433b 1209p |OP* |vdie |const char* pat|va_list* args
cea2e8a9 1210p |OP* |die_where |char* message|STRLEN msglen
1be9d9c6 1211Ap |void |dounwind |I32 cxix
cea2e8a9 1212p |bool |do_aexec |SV* really|SV** mark|SV** sp
d5a9bfb0 1213p |bool |do_aexec5 |SV* really|SV** mark|SV** sp|int fd|int flag
412d7f2a 1214Ap |int |do_binmode |PerlIO *fp|int iotype|int mode
cea2e8a9 1215p |void |do_chop |SV* asv|SV* sv
1c0ca838 1216Ap |bool |do_close |GV* gv|bool not_implicit
cea2e8a9 1217p |bool |do_eof |GV* gv
1218p |bool |do_exec |char* cmd
1219#if !defined(WIN32)
1220p |bool |do_exec3 |char* cmd|int fd|int flag
1221#endif
1222p |void |do_execfree
1223#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
1224p |I32 |do_ipcctl |I32 optype|SV** mark|SV** sp
1225p |I32 |do_ipcget |I32 optype|SV** mark|SV** sp
1226p |I32 |do_msgrcv |SV** mark|SV** sp
1227p |I32 |do_msgsnd |SV** mark|SV** sp
1228p |I32 |do_semop |SV** mark|SV** sp
1229p |I32 |do_shmio |I32 optype|SV** mark|SV** sp
1230#endif
412d7f2a 1231Ap |void |do_join |SV* sv|SV* del|SV** mark|SV** sp
cea2e8a9 1232p |OP* |do_kv
954c1994 1233Ap |bool |do_open |GV* gv|char* name|I32 len|int as_raw \
cea2e8a9 1234 |int rawmode|int rawperm|PerlIO* supplied_fp
954c1994 1235Ap |bool |do_open9 |GV *gv|char *name|I32 len|int as_raw \
6170680b 1236 |int rawmode|int rawperm|PerlIO *supplied_fp \
1237 |SV *svs|I32 num
a567e93b 1238Ap |bool |do_openn |GV *gv|char *name|I32 len|int as_raw \
1239 |int rawmode|int rawperm|PerlIO *supplied_fp \
1240 |SV **svp|I32 num
cea2e8a9 1241p |void |do_pipe |SV* sv|GV* rgv|GV* wgv
1242p |bool |do_print |SV* sv|PerlIO* fp
1243p |OP* |do_readline
1244p |I32 |do_chomp |SV* sv
1245p |bool |do_seek |GV* gv|Off_t pos|int whence
1246p |void |do_sprintf |SV* sv|I32 len|SV** sarg
1247p |Off_t |do_sysseek |GV* gv|Off_t pos|int whence
1248p |Off_t |do_tell |GV* gv
1249p |I32 |do_trans |SV* sv
81e118e0 1250p |UV |do_vecget |SV* sv|I32 offset|I32 size
cea2e8a9 1251p |void |do_vecset |SV* sv
1252p |void |do_vop |I32 optype|SV* sv|SV* left|SV* right
1253p |OP* |dofile |OP* term
954c1994 1254Ap |I32 |dowantarray
1255Ap |void |dump_all
1256Ap |void |dump_eval
cea2e8a9 1257#if defined(DUMP_FDS)
954c1994 1258Ap |void |dump_fds |char* s
cea2e8a9 1259#endif
954c1994 1260Ap |void |dump_form |GV* gv
1261Ap |void |gv_dump |GV* gv
1262Ap |void |op_dump |OP* arg
1263Ap |void |pmop_dump |PMOP* pm
1264Ap |void |dump_packsubs |HV* stash
1265Ap |void |dump_sub |GV* gv
1266Apd |void |fbm_compile |SV* sv|U32 flags
1267Apd |char* |fbm_instr |unsigned char* big|unsigned char* bigend \
cea2e8a9 1268 |SV* littlesv|U32 flags
1269p |char* |find_script |char *scriptname|bool dosearch \
1270 |char **search_ext|I32 flags
4d1ff10f 1271#if defined(USE_5005THREADS)
cea2e8a9 1272p |PADOFFSET|find_threadsv|const char *name
1273#endif
1274p |OP* |force_list |OP* arg
1275p |OP* |fold_constants |OP* arg
954c1994 1276Afp |char* |form |const char* pat|...
1277Ap |char* |vform |const char* pat|va_list* args
1278Ap |void |free_tmps
cea2e8a9 1279p |OP* |gen_constant_list|OP* o
1280#if !defined(HAS_GETENV_LEN)
c0c883f4 1281p |char* |getenv_len |const char* key|unsigned long *len
cea2e8a9 1282#endif
954c1994 1283Ap |void |gp_free |GV* gv
1284Ap |GP* |gp_ref |GP* gp
1285Ap |GV* |gv_AVadd |GV* gv
1286Ap |GV* |gv_HVadd |GV* gv
1287Ap |GV* |gv_IOadd |GV* gv
1288Ap |GV* |gv_autoload4 |HV* stash|const char* name|STRLEN len \
cea2e8a9 1289 |I32 method
954c1994 1290Ap |void |gv_check |HV* stash
1291Ap |void |gv_efullname |SV* sv|GV* gv
1292Ap |void |gv_efullname3 |SV* sv|GV* gv|const char* prefix
43693395 1293Ap |void |gv_efullname4 |SV* sv|GV* gv|const char* prefix|bool keepmain
954c1994 1294Ap |GV* |gv_fetchfile |const char* name
1295Apd |GV* |gv_fetchmeth |HV* stash|const char* name|STRLEN len \
cea2e8a9 1296 |I32 level
954c1994 1297Apd |GV* |gv_fetchmethod |HV* stash|const char* name
1298Apd |GV* |gv_fetchmethod_autoload|HV* stash|const char* name \
cea2e8a9 1299 |I32 autoload
954c1994 1300Ap |GV* |gv_fetchpv |const char* name|I32 add|I32 sv_type
1301Ap |void |gv_fullname |SV* sv|GV* gv
1302Ap |void |gv_fullname3 |SV* sv|GV* gv|const char* prefix
43693395 1303Ap |void |gv_fullname4 |SV* sv|GV* gv|const char* prefix|bool keepmain
954c1994 1304Ap |void |gv_init |GV* gv|HV* stash|const char* name \
cea2e8a9 1305 |STRLEN len|int multi
954c1994 1306Apd |HV* |gv_stashpv |const char* name|I32 create
1307Ap |HV* |gv_stashpvn |const char* name|U32 namelen|I32 create
1308Apd |HV* |gv_stashsv |SV* sv|I32 create
1309Apd |void |hv_clear |HV* tb
1310Ap |void |hv_delayfree_ent|HV* hv|HE* entry
da58a35d 1311Apd |SV* |hv_delete |HV* tb|const char* key|I32 klen|I32 flags
954c1994 1312Apd |SV* |hv_delete_ent |HV* tb|SV* key|I32 flags|U32 hash
da58a35d 1313Apd |bool |hv_exists |HV* tb|const char* key|I32 klen
954c1994 1314Apd |bool |hv_exists_ent |HV* tb|SV* key|U32 hash
da58a35d 1315Apd |SV** |hv_fetch |HV* tb|const char* key|I32 klen|I32 lval
954c1994 1316Apd |HE* |hv_fetch_ent |HV* tb|SV* key|I32 lval|U32 hash
1317Ap |void |hv_free_ent |HV* hv|HE* entry
1318Apd |I32 |hv_iterinit |HV* tb
1319Apd |char* |hv_iterkey |HE* entry|I32* retlen
1320Apd |SV* |hv_iterkeysv |HE* entry
1321Apd |HE* |hv_iternext |HV* tb
1322Apd |SV* |hv_iternextsv |HV* hv|char** key|I32* retlen
1323Apd |SV* |hv_iterval |HV* tb|HE* entry
1324Ap |void |hv_ksplit |HV* hv|IV newmax
1325Apd |void |hv_magic |HV* hv|GV* gv|int how
da58a35d 1326Apd |SV** |hv_store |HV* tb|const char* key|I32 klen|SV* val \
cea2e8a9 1327 |U32 hash
954c1994 1328Apd |HE* |hv_store_ent |HV* tb|SV* key|SV* val|U32 hash
1329Apd |void |hv_undef |HV* tb
1330Ap |I32 |ibcmp |const char* a|const char* b|I32 len
1331Ap |I32 |ibcmp_locale |const char* a|const char* b|I32 len
d8eceb89 1332p |bool |ingroup |Gid_t testgid|Uid_t effective
1ee4443e 1333p |void |init_debugger
1be9d9c6 1334Ap |void |init_stacks
b93ec261 1335Ap |void |init_tm |struct tm *ptm
cea2e8a9 1336p |U32 |intro_my
954c1994 1337Ap |char* |instr |const char* big|const char* little
f2b5be74 1338p |bool |io_close |IO* io|bool not_implicit
cea2e8a9 1339p |OP* |invert |OP* cmd
c9d5ac95 1340dp |bool |is_gv_magical |char *name|STRLEN len|U32 flags
78f9721b 1341p |I32 |is_lvalue_sub
954c1994 1342Ap |bool |is_uni_alnum |U32 c
1343Ap |bool |is_uni_alnumc |U32 c
1344Ap |bool |is_uni_idfirst |U32 c
1345Ap |bool |is_uni_alpha |U32 c
1346Ap |bool |is_uni_ascii |U32 c
1347Ap |bool |is_uni_space |U32 c
1348Ap |bool |is_uni_cntrl |U32 c
1349Ap |bool |is_uni_graph |U32 c
1350Ap |bool |is_uni_digit |U32 c
1351Ap |bool |is_uni_upper |U32 c
1352Ap |bool |is_uni_lower |U32 c
1353Ap |bool |is_uni_print |U32 c
1354Ap |bool |is_uni_punct |U32 c
1355Ap |bool |is_uni_xdigit |U32 c
1356Ap |U32 |to_uni_upper |U32 c
1357Ap |U32 |to_uni_title |U32 c
1358Ap |U32 |to_uni_lower |U32 c
1359Ap |bool |is_uni_alnum_lc|U32 c
1360Ap |bool |is_uni_alnumc_lc|U32 c
1361Ap |bool |is_uni_idfirst_lc|U32 c
1362Ap |bool |is_uni_alpha_lc|U32 c
1363Ap |bool |is_uni_ascii_lc|U32 c
1364Ap |bool |is_uni_space_lc|U32 c
1365Ap |bool |is_uni_cntrl_lc|U32 c
1366Ap |bool |is_uni_graph_lc|U32 c
1367Ap |bool |is_uni_digit_lc|U32 c
1368Ap |bool |is_uni_upper_lc|U32 c
1369Ap |bool |is_uni_lower_lc|U32 c
1370Ap |bool |is_uni_print_lc|U32 c
1371Ap |bool |is_uni_punct_lc|U32 c
1372Ap |bool |is_uni_xdigit_lc|U32 c
1373Ap |U32 |to_uni_upper_lc|U32 c
1374Ap |U32 |to_uni_title_lc|U32 c
1375Ap |U32 |to_uni_lower_lc|U32 c
eebe1485 1376Apd |STRLEN |is_utf8_char |U8 *p
1377Apd |bool |is_utf8_string |U8 *s|STRLEN len
954c1994 1378Ap |bool |is_utf8_alnum |U8 *p
1379Ap |bool |is_utf8_alnumc |U8 *p
1380Ap |bool |is_utf8_idfirst|U8 *p
1381Ap |bool |is_utf8_alpha |U8 *p
1382Ap |bool |is_utf8_ascii |U8 *p
1383Ap |bool |is_utf8_space |U8 *p
1384Ap |bool |is_utf8_cntrl |U8 *p
1385Ap |bool |is_utf8_digit |U8 *p
1386Ap |bool |is_utf8_graph |U8 *p
1387Ap |bool |is_utf8_upper |U8 *p
1388Ap |bool |is_utf8_lower |U8 *p
1389Ap |bool |is_utf8_print |U8 *p
1390Ap |bool |is_utf8_punct |U8 *p
1391Ap |bool |is_utf8_xdigit |U8 *p
1392Ap |bool |is_utf8_mark |U8 *p
cea2e8a9 1393p |OP* |jmaybe |OP* arg
1394p |I32 |keyword |char* d|I32 len
1be9d9c6 1395Ap |void |leave_scope |I32 base
cea2e8a9 1396p |void |lex_end
1397p |void |lex_start |SV* line
1cadc447 1398Ap |void |op_null |OP* o
93c66552 1399p |void |op_clear |OP* o
cea2e8a9 1400p |OP* |linklist |OP* o
1401p |OP* |list |OP* o
1402p |OP* |listkids |OP* o
7d3fb230 1403Apd |void |load_module|U32 flags|SV* name|SV* ver|...
e4783991 1404Ap |void |vload_module|U32 flags|SV* name|SV* ver|va_list* args
cea2e8a9 1405p |OP* |localize |OP* arg|I32 lexical
954c1994 1406Apd |I32 |looks_like_number|SV* sv
53305cf1 1407Apd |UV |grok_bin |char* start|STRLEN* len|I32* flags|NV *result
1408Apd |UV |grok_hex |char* start|STRLEN* len|I32* flags|NV *result
dd5dc04f 1409Apd |int |grok_number |const char *pv|STRLEN len|UV *valuep
1410Apd |bool |grok_numeric_radix|const char **sp|const char *send
53305cf1 1411Apd |UV |grok_oct |char* start|STRLEN* len|I32* flags|NV *result
cea2e8a9 1412p |int |magic_clearenv |SV* sv|MAGIC* mg
1413p |int |magic_clear_all_env|SV* sv|MAGIC* mg
1414p |int |magic_clearpack|SV* sv|MAGIC* mg
1415p |int |magic_clearsig |SV* sv|MAGIC* mg
1416p |int |magic_existspack|SV* sv|MAGIC* mg
1417p |int |magic_freeregexp|SV* sv|MAGIC* mg
d460ef45 1418p |int |magic_freeovrld|SV* sv|MAGIC* mg
cea2e8a9 1419p |int |magic_get |SV* sv|MAGIC* mg
1420p |int |magic_getarylen|SV* sv|MAGIC* mg
1421p |int |magic_getdefelem|SV* sv|MAGIC* mg
1422p |int |magic_getglob |SV* sv|MAGIC* mg
1423p |int |magic_getnkeys |SV* sv|MAGIC* mg
1424p |int |magic_getpack |SV* sv|MAGIC* mg
1425p |int |magic_getpos |SV* sv|MAGIC* mg
1426p |int |magic_getsig |SV* sv|MAGIC* mg
1427p |int |magic_getsubstr|SV* sv|MAGIC* mg
1428p |int |magic_gettaint |SV* sv|MAGIC* mg
1429p |int |magic_getuvar |SV* sv|MAGIC* mg
1430p |int |magic_getvec |SV* sv|MAGIC* mg
1431p |U32 |magic_len |SV* sv|MAGIC* mg
4d1ff10f 1432#if defined(USE_5005THREADS)
cea2e8a9 1433p |int |magic_mutexfree|SV* sv|MAGIC* mg
1434#endif
1435p |int |magic_nextpack |SV* sv|MAGIC* mg|SV* key
1436p |U32 |magic_regdata_cnt|SV* sv|MAGIC* mg
1437p |int |magic_regdatum_get|SV* sv|MAGIC* mg
e4b89193 1438p |int |magic_regdatum_set|SV* sv|MAGIC* mg
cea2e8a9 1439p |int |magic_set |SV* sv|MAGIC* mg
1440p |int |magic_setamagic|SV* sv|MAGIC* mg
1441p |int |magic_setarylen|SV* sv|MAGIC* mg
1442p |int |magic_setbm |SV* sv|MAGIC* mg
1443p |int |magic_setdbline|SV* sv|MAGIC* mg
1444#if defined(USE_LOCALE_COLLATE)
1445p |int |magic_setcollxfrm|SV* sv|MAGIC* mg
1446#endif
1447p |int |magic_setdefelem|SV* sv|MAGIC* mg
1448p |int |magic_setenv |SV* sv|MAGIC* mg
1449p |int |magic_setfm |SV* sv|MAGIC* mg
1450p |int |magic_setisa |SV* sv|MAGIC* mg
1451p |int |magic_setglob |SV* sv|MAGIC* mg
1452p |int |magic_setmglob |SV* sv|MAGIC* mg
1453p |int |magic_setnkeys |SV* sv|MAGIC* mg
1454p |int |magic_setpack |SV* sv|MAGIC* mg
1455p |int |magic_setpos |SV* sv|MAGIC* mg
1456p |int |magic_setsig |SV* sv|MAGIC* mg
1457p |int |magic_setsubstr|SV* sv|MAGIC* mg
1458p |int |magic_settaint |SV* sv|MAGIC* mg
1459p |int |magic_setuvar |SV* sv|MAGIC* mg
1460p |int |magic_setvec |SV* sv|MAGIC* mg
1461p |int |magic_set_all_env|SV* sv|MAGIC* mg
1462p |U32 |magic_sizepack |SV* sv|MAGIC* mg
1463p |int |magic_wipepack |SV* sv|MAGIC* mg
1464p |void |magicname |char* sym|char* name|I32 namlen
954c1994 1465Ap |void |markstack_grow
cea2e8a9 1466#if defined(USE_LOCALE_COLLATE)
1467p |char* |mem_collxfrm |const char* s|STRLEN len|STRLEN* xlen
1468#endif
954c1994 1469Afp |SV* |mess |const char* pat|...
1470Ap |SV* |vmess |const char* pat|va_list* args
5a844595 1471p |void |qerror |SV* err
8d344e3e 1472Apd |void |sortsv |SV ** array|size_t num_elts|SVCOMPARE_t f
954c1994 1473Apd |int |mg_clear |SV* sv
1474Apd |int |mg_copy |SV* sv|SV* nsv|const char* key|I32 klen
1475Apd |MAGIC* |mg_find |SV* sv|int type
1476Apd |int |mg_free |SV* sv
1477Apd |int |mg_get |SV* sv
1478Apd |U32 |mg_length |SV* sv
1479Apd |void |mg_magical |SV* sv
1480Apd |int |mg_set |SV* sv
8fb26106 1481Ap |I32 |mg_size |SV* sv
b93ec261 1482Ap |void |mini_mktime |struct tm *pm
cea2e8a9 1483p |OP* |mod |OP* o|I32 type
16fe6d59 1484p |int |mode_from_discipline|SV* discp
1be9d9c6 1485Ap |char* |moreswitches |char* s
cea2e8a9 1486p |OP* |my |OP* o
954c1994 1487Ap |NV |my_atof |const char *s
2253333f 1488#if (!defined(HAS_MEMCPY) && !defined(HAS_BCOPY)) || (!defined(HAS_MEMMOVE) && !defined(HAS_SAFE_MEMCPY) && !defined(HAS_SAFE_BCOPY))
954c1994 1489Anp |char* |my_bcopy |const char* from|char* to|I32 len
cea2e8a9 1490#endif
1491#if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
954c1994 1492Anp |char* |my_bzero |char* loc|I32 len
cea2e8a9 1493#endif
954c1994 1494Apr |void |my_exit |U32 status
1495Apr |void |my_failure_exit
1496Ap |I32 |my_fflush_all
52e18b1f 1497Anp |Pid_t |my_fork
1498Anp |void |atfork_lock
1499Anp |void |atfork_unlock
954c1994 1500Ap |I32 |my_lstat
cea2e8a9 1501#if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP)
954c1994 1502Anp |I32 |my_memcmp |const char* s1|const char* s2|I32 len
cea2e8a9 1503#endif
1504#if !defined(HAS_MEMSET)
954c1994 1505Anp |void* |my_memset |char* loc|I32 ch|I32 len
cea2e8a9 1506#endif
954c1994 1507Ap |I32 |my_pclose |PerlIO* ptr
1508Ap |PerlIO*|my_popen |char* cmd|char* mode
4a7d1889 1509Ap |PerlIO*|my_popen_list |char* mode|int n|SV ** args
954c1994 1510Ap |void |my_setenv |char* nam|char* val
1511Ap |I32 |my_stat
b93ec261 1512Ap |char * |my_strftime |char *fmt|int sec|int min|int hour|int mday|int mon|int year|int wday|int yday|int isdst
cea2e8a9 1513#if defined(MYSWAP)
954c1994 1514Ap |short |my_swap |short s
1515Ap |long |my_htonl |long l
1516Ap |long |my_ntohl |long l
cea2e8a9 1517#endif
1518p |void |my_unexec
954c1994 1519Ap |OP* |newANONLIST |OP* o
1520Ap |OP* |newANONHASH |OP* o
1521Ap |OP* |newANONSUB |I32 floor|OP* proto|OP* block
1522Ap |OP* |newASSIGNOP |I32 flags|OP* left|I32 optype|OP* right
1523Ap |OP* |newCONDOP |I32 flags|OP* expr|OP* trueop|OP* falseop
beab0874 1524Apd |CV* |newCONSTSUB |HV* stash|char* name|SV* sv
954c1994 1525Ap |void |newFORM |I32 floor|OP* o|OP* block
1526Ap |OP* |newFOROP |I32 flags|char* label|line_t forline \
cea2e8a9 1527 |OP* sclr|OP* expr|OP*block|OP*cont
954c1994 1528Ap |OP* |newLOGOP |I32 optype|I32 flags|OP* left|OP* right
1529Ap |OP* |newLOOPEX |I32 type|OP* label
1530Ap |OP* |newLOOPOP |I32 flags|I32 debuggable|OP* expr|OP* block
1531Ap |OP* |newNULLLIST
1532Ap |OP* |newOP |I32 optype|I32 flags
1533Ap |void |newPROG |OP* o
1534Ap |OP* |newRANGE |I32 flags|OP* left|OP* right
1535Ap |OP* |newSLICEOP |I32 flags|OP* subscript|OP* listop
1536Ap |OP* |newSTATEOP |I32 flags|char* label|OP* o
1537Ap |CV* |newSUB |I32 floor|OP* o|OP* proto|OP* block
1538Apd |CV* |newXS |char* name|XSUBADDR_t f|char* filename
1539Apd |AV* |newAV
1540Ap |OP* |newAVREF |OP* o
1541Ap |OP* |newBINOP |I32 type|I32 flags|OP* first|OP* last
1542Ap |OP* |newCVREF |I32 flags|OP* o
1543Ap |OP* |newGVOP |I32 type|I32 flags|GV* gv
1544Ap |GV* |newGVgen |char* pack
1545Ap |OP* |newGVREF |I32 type|OP* o
1546Ap |OP* |newHVREF |OP* o
1547Apd |HV* |newHV
1548Ap |HV* |newHVhv |HV* hv
1549Ap |IO* |newIO
1550Ap |OP* |newLISTOP |I32 type|I32 flags|OP* first|OP* last
1551Ap |OP* |newPADOP |I32 type|I32 flags|SV* sv
1552Ap |OP* |newPMOP |I32 type|I32 flags
1553Ap |OP* |newPVOP |I32 type|I32 flags|char* pv
1554Ap |SV* |newRV |SV* pref
1555Apd |SV* |newRV_noinc |SV *sv
451be7b1 1556Apd |SV* |newSV |STRLEN len
954c1994 1557Ap |OP* |newSVREF |OP* o
1558Ap |OP* |newSVOP |I32 type|I32 flags|SV* sv
1559Apd |SV* |newSViv |IV i
1a3327fb 1560Apd |SV* |newSVuv |UV u
954c1994 1561Apd |SV* |newSVnv |NV n
1562Apd |SV* |newSVpv |const char* s|STRLEN len
1563Apd |SV* |newSVpvn |const char* s|STRLEN len
c3654f1a 1564Apd |SV* |newSVpvn_share |const char* s|I32 len|U32 hash
954c1994 1565Afpd |SV* |newSVpvf |const char* pat|...
1566Ap |SV* |vnewSVpvf |const char* pat|va_list* args
1567Apd |SV* |newSVrv |SV* rv|const char* classname
1568Apd |SV* |newSVsv |SV* old
1569Ap |OP* |newUNOP |I32 type|I32 flags|OP* first
1570Ap |OP* |newWHILEOP |I32 flags|I32 debuggable|LOOP* loop \
cea2e8a9 1571 |I32 whileline|OP* expr|OP* block|OP* cont
c5be433b 1572
1be9d9c6 1573Ap |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems
cea2e8a9 1574p |PerlIO*|nextargv |GV* gv
954c1994 1575Ap |char* |ninstr |const char* big|const char* bigend \
cea2e8a9 1576 |const char* little|const char* lend
1577p |OP* |oopsCV |OP* o
1be9d9c6 1578Ap |void |op_free |OP* arg
cea2e8a9 1579p |void |package |OP* o
1580p |PADOFFSET|pad_alloc |I32 optype|U32 tmptype
1581p |PADOFFSET|pad_allocmy |char* name
1582p |PADOFFSET|pad_findmy |char* name
1583p |OP* |oopsAV |OP* o
1584p |OP* |oopsHV |OP* o
1585p |void |pad_leavemy |I32 fill
1be9d9c6 1586Ap |SV* |pad_sv |PADOFFSET po
cea2e8a9 1587p |void |pad_free |PADOFFSET po
1588p |void |pad_reset
1589p |void |pad_swipe |PADOFFSET po
1590p |void |peep |OP* o
ae154d6d 1591dopM |PerlIO*|start_glob |SV* pattern|IO *io
4d1ff10f 1592#if defined(USE_5005THREADS)
954c1994 1593Ap |struct perl_thread* |new_struct_thread|struct perl_thread *t
c5be433b 1594#endif
954c1994 1595Ap |void |call_atexit |ATEXIT_t fn|void *ptr
1596Apd |I32 |call_argv |const char* sub_name|I32 flags|char** argv
1597Apd |I32 |call_method |const char* methname|I32 flags
1598Apd |I32 |call_pv |const char* sub_name|I32 flags
1599Apd |I32 |call_sv |SV* sv|I32 flags
ce08f86c 1600p |void |despatch_signals
954c1994 1601Apd |SV* |eval_pv |const char* p|I32 croak_on_error
1602Apd |I32 |eval_sv |SV* sv|I32 flags
1603Apd |SV* |get_sv |const char* name|I32 create
1604Apd |AV* |get_av |const char* name|I32 create
1605Apd |HV* |get_hv |const char* name|I32 create
1606Apd |CV* |get_cv |const char* name|I32 create
1be9d9c6 1607Ap |int |init_i18nl10n |int printwarn
1608Ap |int |init_i18nl14n |int printwarn
ff4fed7c 1609Ap |void |new_collate |char* newcoll
1610Ap |void |new_ctype |char* newctype
1611Ap |void |new_numeric |char* newcoll
954c1994 1612Ap |void |set_numeric_local
1613Ap |void |set_numeric_radix
1614Ap |void |set_numeric_standard
1615Apd |void |require_pv |const char* pv
d8a83dd3 1616p |void |pidgone |Pid_t pid|int status
1be9d9c6 1617Ap |void |pmflag |U16* pmfl|int ch
cea2e8a9 1618p |OP* |pmruntime |OP* pm|OP* expr|OP* repl
1619p |OP* |pmtrans |OP* o|OP* expr|OP* repl
1620p |OP* |pop_return
954c1994 1621Ap |void |pop_scope
cea2e8a9 1622p |OP* |prepend_elem |I32 optype|OP* head|OP* tail
1623p |void |push_return |OP* o
954c1994 1624Ap |void |push_scope
cea2e8a9 1625p |OP* |ref |OP* o|I32 type
1626p |OP* |refkids |OP* o|I32 type
954c1994 1627Ap |void |regdump |regexp* r
7ea3cd40 1628Ap |SV* |regclass_swash |struct regnode *n|bool doinit|SV **initsvp
a86f0dc9 1629Ap |I32 |pregexec |regexp* prog|char* stringarg \
cea2e8a9 1630 |char* strend|char* strbeg|I32 minend \
1631 |SV* screamer|U32 nosave
1be9d9c6 1632Ap |void |pregfree |struct regexp* r
1633Ap |regexp*|pregcomp |char* exp|char* xend|PMOP* pm
1634Ap |char* |re_intuit_start|regexp* prog|SV* sv|char* strpos \
cad2e5aa 1635 |char* strend|U32 flags \
1636 |struct re_scream_pos_data_s *data
1be9d9c6 1637Ap |SV* |re_intuit_string|regexp* prog
1638Ap |I32 |regexec_flags |regexp* prog|char* stringarg \
cea2e8a9 1639 |char* strend|char* strbeg|I32 minend \
1640 |SV* screamer|void* data|U32 flags
1be9d9c6 1641Ap |regnode*|regnext |regnode* p
cea2e8a9 1642p |void |regprop |SV* sv|regnode* o
1be9d9c6 1643Ap |void |repeatcpy |char* to|const char* from|I32 len|I32 count
954c1994 1644Ap |char* |rninstr |const char* big|const char* bigend \
cea2e8a9 1645 |const char* little|const char* lend
412d7f2a 1646Ap |Sighandler_t|rsignal |int i|Sighandler_t t
cea2e8a9 1647p |int |rsignal_restore|int i|Sigsave_t* t
1648p |int |rsignal_save |int i|Sighandler_t t1|Sigsave_t* t2
76d48558 1649Ap |Sighandler_t|rsignal_state|int i
cea2e8a9 1650p |void |rxres_free |void** rsp
1651p |void |rxres_restore |void** rsp|REGEXP* prx
1652p |void |rxres_save |void** rsp|REGEXP* prx
1653#if !defined(HAS_RENAME)
1654p |I32 |same_dirent |char* a|char* b
1655#endif
954c1994 1656Apd |char* |savepv |const char* sv
1657Apd |char* |savepvn |const char* sv|I32 len
1658Ap |void |savestack_grow
1659Ap |void |save_aelem |AV* av|I32 idx|SV **sptr
1660Ap |I32 |save_alloc |I32 size|I32 pad
1661Ap |void |save_aptr |AV** aptr
1662Ap |AV* |save_ary |GV* gv
1663Ap |void |save_clearsv |SV** svp
1664Ap |void |save_delete |HV* hv|char* key|I32 klen
1665Ap |void |save_destructor|DESTRUCTORFUNC_NOCONTEXT_t f|void* p
1666Ap |void |save_destructor_x|DESTRUCTORFUNC_t f|void* p
1667Ap |void |save_freesv |SV* sv
cea2e8a9 1668p |void |save_freeop |OP* o
954c1994 1669Ap |void |save_freepv |char* pv
1670Ap |void |save_generic_svref|SV** sptr
f4dd75d9 1671Ap |void |save_generic_pvref|char** str
954c1994 1672Ap |void |save_gp |GV* gv|I32 empty
1673Ap |HV* |save_hash |GV* gv
1674Ap |void |save_helem |HV* hv|SV *key|SV **sptr
1675Ap |void |save_hints
1676Ap |void |save_hptr |HV** hptr
1677Ap |void |save_I16 |I16* intp
1678Ap |void |save_I32 |I32* intp
1679Ap |void |save_I8 |I8* bytep
1680Ap |void |save_int |int* intp
1681Ap |void |save_item |SV* item
1682Ap |void |save_iv |IV* iv
1683Ap |void |save_list |SV** sarg|I32 maxsarg
1684Ap |void |save_long |long* longp
26d9b02f 1685Ap |void |save_mortalizesv|SV* sv
954c1994 1686Ap |void |save_nogv |GV* gv
cea2e8a9 1687p |void |save_op
954c1994 1688Ap |SV* |save_scalar |GV* gv
1689Ap |void |save_pptr |char** pptr
1690Ap |void |save_vptr |void* pptr
1691Ap |void |save_re_context
c3564e5c 1692Ap |void |save_padsv |PADOFFSET off
954c1994 1693Ap |void |save_sptr |SV** sptr
1694Ap |SV* |save_svref |SV** sptr
1695Ap |SV** |save_threadsv |PADOFFSET i
cea2e8a9 1696p |OP* |sawparens |OP* o
1697p |OP* |scalar |OP* o
1698p |OP* |scalarkids |OP* o
1699p |OP* |scalarseq |OP* o
1700p |OP* |scalarvoid |OP* o
53305cf1 1701Apd |NV |scan_bin |char* start|STRLEN len|STRLEN* retlen
1702Apd |NV |scan_hex |char* start|STRLEN len|STRLEN* retlen
b73d6f50 1703Ap |char* |scan_num |char* s|YYSTYPE *lvalp
53305cf1 1704Apd |NV |scan_oct |char* start|STRLEN len|STRLEN* retlen
cea2e8a9 1705p |OP* |scope |OP* o
1be9d9c6 1706Ap |char* |screaminstr |SV* bigsv|SV* littlesv|I32 start_shift \
cea2e8a9 1707 |I32 end_shift|I32 *state|I32 last
1708#if !defined(VMS)
1709p |I32 |setenv_getix |char* nam
1710#endif
1711p |void |setdefout |GV* gv
1be9d9c6 1712Ap |char* |sharepvn |const char* sv|I32 len|U32 hash
cea2e8a9 1713p |HEK* |share_hek |const char* sv|I32 len|U32 hash
1714np |Signal_t |sighandler |int sig
954c1994 1715Ap |SV** |stack_grow |SV** sp|SV**p|int n
1716Ap |I32 |start_subparse |I32 is_format|U32 flags
cea2e8a9 1717p |void |sub_crush_depth|CV* cv
645c22ef 1718Apd |bool |sv_2bool |SV* sv
1719Apd |CV* |sv_2cv |SV* sv|HV** st|GV** gvp|I32 lref
1720Apd |IO* |sv_2io |SV* sv
1721Apd |IV |sv_2iv |SV* sv
954c1994 1722Apd |SV* |sv_2mortal |SV* sv
645c22ef 1723Apd |NV |sv_2nv |SV* sv
5e26c890 1724Ap |char* |sv_2pv |SV* sv|STRLEN* lp
451be7b1 1725Apd |char* |sv_2pvutf8 |SV* sv|STRLEN* lp
1726Apd |char* |sv_2pvbyte |SV* sv|STRLEN* lp
5e26c890 1727Ap |char* |sv_pvn_nomg |SV* sv|STRLEN* lp
645c22ef 1728Apd |UV |sv_2uv |SV* sv
1729Apd |IV |sv_iv |SV* sv
1730Apd |UV |sv_uv |SV* sv
1731Apd |NV |sv_nv |SV* sv
451be7b1 1732Apd |char* |sv_pvn |SV *sv|STRLEN *len
645c22ef 1733Apd |char* |sv_pvutf8n |SV *sv|STRLEN *len
1734Apd |char* |sv_pvbyten |SV *sv|STRLEN *len
c461cf8f 1735Apd |I32 |sv_true |SV *sv
645c22ef 1736pd |void |sv_add_arena |char* ptr|U32 size|U32 flags
1737Apd |int |sv_backoff |SV* sv
954c1994 1738Apd |SV* |sv_bless |SV* sv|HV* stash
1739Afpd |void |sv_catpvf |SV* sv|const char* pat|...
1740Ap |void |sv_vcatpvf |SV* sv|const char* pat|va_list* args
1741Apd |void |sv_catpv |SV* sv|const char* ptr
5e26c890 1742Apd |void |sv_catpvn |SV* sv|const char* ptr|STRLEN len
1743Apd |void |sv_catsv |SV* dsv|SV* ssv
954c1994 1744Apd |void |sv_chop |SV* sv|char* ptr
645c22ef 1745pd |I32 |sv_clean_all
1746pd |void |sv_clean_objs
c461cf8f 1747Apd |void |sv_clear |SV* sv
954c1994 1748Apd |I32 |sv_cmp |SV* sv1|SV* sv2
c461cf8f 1749Apd |I32 |sv_cmp_locale |SV* sv1|SV* sv2
cea2e8a9 1750#if defined(USE_LOCALE_COLLATE)
645c22ef 1751Apd |char* |sv_collxfrm |SV* sv|STRLEN* nxp
cea2e8a9 1752#endif
1be9d9c6 1753Ap |OP* |sv_compile_2op |SV* sv|OP** startp|char* code|AV** avp
89423764 1754Apd |int |getcwd_sv |SV* sv
954c1994 1755Apd |void |sv_dec |SV* sv
1756Ap |void |sv_dump |SV* sv
1757Apd |bool |sv_derived_from|SV* sv|const char* name
1758Apd |I32 |sv_eq |SV* sv1|SV* sv2
c461cf8f 1759Apd |void |sv_free |SV* sv
645c22ef 1760pd |void |sv_free_arenas
c461cf8f 1761Apd |char* |sv_gets |SV* sv|PerlIO* fp|I32 append
954c1994 1762Apd |char* |sv_grow |SV* sv|STRLEN newlen
1763Apd |void |sv_inc |SV* sv
1764Apd |void |sv_insert |SV* bigsv|STRLEN offset|STRLEN len \
cea2e8a9 1765 |char* little|STRLEN littlelen
954c1994 1766Apd |int |sv_isa |SV* sv|const char* name
1767Apd |int |sv_isobject |SV* sv
1768Apd |STRLEN |sv_len |SV* sv
c461cf8f 1769Apd |STRLEN |sv_len_utf8 |SV* sv
954c1994 1770Apd |void |sv_magic |SV* sv|SV* obj|int how|const char* name \
cea2e8a9 1771 |I32 namlen
954c1994 1772Apd |SV* |sv_mortalcopy |SV* oldsv
1773Apd |SV* |sv_newmortal
645c22ef 1774Apd |SV* |sv_newref |SV* sv
954c1994 1775Ap |char* |sv_peek |SV* sv
645c22ef 1776Apd |void |sv_pos_u2b |SV* sv|I32* offsetp|I32* lenp
1777Apd |void |sv_pos_b2u |SV* sv|I32* offsetp
5e26c890 1778Apd |char* |sv_pvn_force |SV* sv|STRLEN* lp
c461cf8f 1779Apd |char* |sv_pvutf8n_force|SV* sv|STRLEN* lp
645c22ef 1780Apd |char* |sv_pvbyten_force|SV* sv|STRLEN* lp
c461cf8f 1781Apd |char* |sv_reftype |SV* sv|int ob
1782Apd |void |sv_replace |SV* sv|SV* nsv
645c22ef 1783Apd |void |sv_report_used
451be7b1 1784Apd |void |sv_reset |char* s|HV* stash
954c1994 1785Afpd |void |sv_setpvf |SV* sv|const char* pat|...
1786Ap |void |sv_vsetpvf |SV* sv|const char* pat|va_list* args
1787Apd |void |sv_setiv |SV* sv|IV num
1788Apd |void |sv_setpviv |SV* sv|IV num
1789Apd |void |sv_setuv |SV* sv|UV num
1790Apd |void |sv_setnv |SV* sv|NV num
1791Apd |SV* |sv_setref_iv |SV* rv|const char* classname|IV iv
e1c57cef 1792Apd |SV* |sv_setref_uv |SV* rv|const char* classname|UV uv
954c1994 1793Apd |SV* |sv_setref_nv |SV* rv|const char* classname|NV nv
1794Apd |SV* |sv_setref_pv |SV* rv|const char* classname|void* pv
1795Apd |SV* |sv_setref_pvn |SV* rv|const char* classname|char* pv \
cea2e8a9 1796 |STRLEN n
954c1994 1797Apd |void |sv_setpv |SV* sv|const char* ptr
1798Apd |void |sv_setpvn |SV* sv|const char* ptr|STRLEN len
5e26c890 1799Apd |void |sv_setsv |SV* dsv|SV* ssv
645c22ef 1800Apd |void |sv_taint |SV* sv
451be7b1 1801Apd |bool |sv_tainted |SV* sv
c461cf8f 1802Apd |int |sv_unmagic |SV* sv|int type
954c1994 1803Apd |void |sv_unref |SV* sv
840a7b70 1804Apd |void |sv_unref_flags |SV* sv|U32 flags
451be7b1 1805Apd |void |sv_untaint |SV* sv
954c1994 1806Apd |bool |sv_upgrade |SV* sv|U32 mt
1807Apd |void |sv_usepvn |SV* sv|char* ptr|STRLEN len
1808Apd |void |sv_vcatpvfn |SV* sv|const char* pat|STRLEN patlen \
cea2e8a9 1809 |va_list* args|SV** svargs|I32 svmax \
5bc28da9 1810 |bool *maybe_tainted
954c1994 1811Apd |void |sv_vsetpvfn |SV* sv|const char* pat|STRLEN patlen \
cea2e8a9 1812 |va_list* args|SV** svargs|I32 svmax \
5bc28da9 1813 |bool *maybe_tainted
1571675a 1814Ap |NV |str_to_version |SV *sv
1be9d9c6 1815Ap |SV* |swash_init |char* pkg|char* name|SV* listsv \
cea2e8a9 1816 |I32 minbits|I32 none
3568d838 1817Ap |UV |swash_fetch |SV *sv|U8 *ptr|bool do_utf8
954c1994 1818Ap |void |taint_env
1819Ap |void |taint_proper |const char* f|const char* s
1820Ap |UV |to_utf8_lower |U8 *p
1821Ap |UV |to_utf8_upper |U8 *p
1822Ap |UV |to_utf8_title |U8 *p
cea2e8a9 1823#if defined(UNLINK_ALL_VERSIONS)
954c1994 1824Ap |I32 |unlnk |char* f
cea2e8a9 1825#endif
4d1ff10f 1826#if defined(USE_5005THREADS)
1be9d9c6 1827Ap |void |unlock_condpair|void* svv
cea2e8a9 1828#endif
1be9d9c6 1829Ap |void |unsharepvn |const char* sv|I32 len|U32 hash
cea2e8a9 1830p |void |unshare_hek |HEK* hek
1831p |void |utilize |int aver|I32 floor|OP* version|OP* id|OP* arg
dea0fc0b 1832Ap |U8* |utf16_to_utf8 |U8* p|U8 *d|I32 bytelen|I32 *newlen
1833Ap |U8* |utf16_to_utf8_reversed|U8* p|U8 *d|I32 bytelen|I32 *newlen
eebe1485 1834Adp |STRLEN |utf8_length |U8* s|U8 *e
1835Apd |IV |utf8_distance |U8 *a|U8 *b
1836Apd |U8* |utf8_hop |U8 *s|I32 off
1837ApMd |U8* |utf8_to_bytes |U8 *s|STRLEN *len
f9a63242 1838ApMd |U8* |bytes_from_utf8|U8 *s|STRLEN *len|bool *is_utf8
eebe1485 1839ApMd |U8* |bytes_to_utf8 |U8 *s|STRLEN *len
9041c2e3 1840Apd |UV |utf8_to_uvchr |U8 *s|STRLEN* retlen
1841Apd |UV |utf8_to_uvuni |U8 *s|STRLEN* retlen
1842Adp |UV |utf8n_to_uvchr |U8 *s|STRLEN curlen|STRLEN* retlen|U32 flags
1843Adp |UV |utf8n_to_uvuni |U8 *s|STRLEN curlen|STRLEN* retlen|U32 flags
1844Apd |U8* |uvchr_to_utf8 |U8 *d|UV uv
1845Apd |U8* |uvuni_to_utf8 |U8 *d|UV uv
cea2e8a9 1846p |void |vivify_defelem |SV* sv
1847p |void |vivify_ref |SV* sv|U32 to_what
d8a83dd3 1848p |I32 |wait4pid |Pid_t pid|int* statusp|int flags
bc37a18f 1849p |void |report_evil_fh |GV *gv|IO *io|I32 op
645c22ef 1850pd |void |report_uninit
954c1994 1851Afpd |void |warn |const char* pat|...
1852Ap |void |vwarn |const char* pat|va_list* args
1853Afp |void |warner |U32 err|const char* pat|...
1854Ap |void |vwarner |U32 err|const char* pat|va_list* args
cea2e8a9 1855p |void |watch |char** addr
412d7f2a 1856Ap |I32 |whichsig |char* sig
cea2e8a9 1857p |int |yyerror |char* s
dba4d153 1858#ifdef USE_PURE_BISON
1859p |int |yylex_r |YYSTYPE *lvalp|int *lcharp
cea2e8a9 1860#endif
48cf72c8 1861p |int |yylex
cea2e8a9 1862p |int |yyparse
1863p |int |yywarn |char* s
1864#if defined(MYMALLOC)
954c1994 1865Ap |void |dump_mstats |char* s
827e134a 1866Ap |int |get_mstats |perl_mstats_t *buf|int buflen|int level
cea2e8a9 1867#endif
954c1994 1868Anp |Malloc_t|safesysmalloc |MEM_SIZE nbytes
1869Anp |Malloc_t|safesyscalloc |MEM_SIZE elements|MEM_SIZE size
1870Anp |Malloc_t|safesysrealloc|Malloc_t where|MEM_SIZE nbytes
1871Anp |Free_t |safesysfree |Malloc_t where
cea2e8a9 1872#if defined(LEAKTEST)
954c1994 1873Anp |Malloc_t|safexmalloc |I32 x|MEM_SIZE size
1874Anp |Malloc_t|safexcalloc |I32 x|MEM_SIZE elements|MEM_SIZE size
1875Anp |Malloc_t|safexrealloc |Malloc_t where|MEM_SIZE size
1876Anp |void |safexfree |Malloc_t where
cea2e8a9 1877#endif
1878#if defined(PERL_GLOBAL_STRUCT)
954c1994 1879Ap |struct perl_vars *|GetVars
cea2e8a9 1880#endif
954c1994 1881Ap |int |runops_standard
1882Ap |int |runops_debug
4d1ff10f 1883#if defined(USE_5005THREADS)
4755096e 1884Ap |SV* |sv_lock |SV *sv
1885#endif
954c1994 1886Afpd |void |sv_catpvf_mg |SV *sv|const char* pat|...
1887Ap |void |sv_vcatpvf_mg |SV* sv|const char* pat|va_list* args
1888Apd |void |sv_catpv_mg |SV *sv|const char *ptr
1889Apd |void |sv_catpvn_mg |SV *sv|const char *ptr|STRLEN len
1890Apd |void |sv_catsv_mg |SV *dstr|SV *sstr
1891Afpd |void |sv_setpvf_mg |SV *sv|const char* pat|...
1892Ap |void |sv_vsetpvf_mg |SV* sv|const char* pat|va_list* args
1893Apd |void |sv_setiv_mg |SV *sv|IV i
1894Apd |void |sv_setpviv_mg |SV *sv|IV iv
1895Apd |void |sv_setuv_mg |SV *sv|UV u
1896Apd |void |sv_setnv_mg |SV *sv|NV num
1897Apd |void |sv_setpv_mg |SV *sv|const char *ptr
1898Apd |void |sv_setpvn_mg |SV *sv|const char *ptr|STRLEN len
1899Apd |void |sv_setsv_mg |SV *dstr|SV *sstr
1900Apd |void |sv_usepvn_mg |SV *sv|char *ptr|STRLEN len
1901Ap |MGVTBL*|get_vtbl |int vtbl_id
e6abe6d8 1902p |char* |pv_display |SV *dsv|char *pv|STRLEN cur|STRLEN len \
cea2e8a9 1903 |STRLEN pvlim
e6abe6d8 1904p |char* |sv_uni_display |SV *dsv|SV *ssv|STRLEN pvlim
954c1994 1905Afp |void |dump_indent |I32 level|PerlIO *file|const char* pat|...
1906Ap |void |dump_vindent |I32 level|PerlIO *file|const char* pat \
c5be433b 1907 |va_list *args
954c1994 1908Ap |void |do_gv_dump |I32 level|PerlIO *file|char *name|GV *sv
1909Ap |void |do_gvgv_dump |I32 level|PerlIO *file|char *name|GV *sv
1910Ap |void |do_hv_dump |I32 level|PerlIO *file|char *name|HV *sv
1911Ap |void |do_magic_dump |I32 level|PerlIO *file|MAGIC *mg|I32 nest \
cea2e8a9 1912 |I32 maxnest|bool dumpops|STRLEN pvlim
954c1994 1913Ap |void |do_op_dump |I32 level|PerlIO *file|OP *o
1914Ap |void |do_pmop_dump |I32 level|PerlIO *file|PMOP *pm
1915Ap |void |do_sv_dump |I32 level|PerlIO *file|SV *sv|I32 nest \
cea2e8a9 1916 |I32 maxnest|bool dumpops|STRLEN pvlim
954c1994 1917Ap |void |magic_dump |MAGIC *mg
14dd3ad8 1918#if defined(PERL_FLEXIBLE_EXCEPTIONS)
954c1994 1919Ap |void* |default_protect|volatile JMPENV *je|int *excpt \
db36c5a1 1920 |protect_body_t body|...
954c1994 1921Ap |void* |vdefault_protect|volatile JMPENV *je|int *excpt \
db36c5a1 1922 |protect_body_t body|va_list *args
14dd3ad8 1923#endif
954c1994 1924Ap |void |reginitcolors
645c22ef 1925Apd |char* |sv_2pv_nolen |SV* sv
1926Apd |char* |sv_2pvutf8_nolen|SV* sv
1927Apd |char* |sv_2pvbyte_nolen|SV* sv
451be7b1 1928Apd |char* |sv_pv |SV *sv
645c22ef 1929Apd |char* |sv_pvutf8 |SV *sv
1930Apd |char* |sv_pvbyte |SV *sv
5e26c890 1931Apd |STRLEN |sv_utf8_upgrade|SV *sv
4411f3b6 1932ApdM |bool |sv_utf8_downgrade|SV *sv|bool fail_ok
1933Apd |void |sv_utf8_encode |SV *sv
1934ApdM |bool |sv_utf8_decode |SV *sv
645c22ef 1935Apd |void |sv_force_normal|SV *sv
1936Apd |void |sv_force_normal_flags|SV *sv|U32 flags
954c1994 1937Ap |void |tmps_grow |I32 n
c461cf8f 1938Apd |SV* |sv_rvweaken |SV *sv
cea2e8a9 1939p |int |magic_killbackrefs|SV *sv|MAGIC *mg
954c1994 1940Ap |OP* |newANONATTRSUB |I32 floor|OP *proto|OP *attrs|OP *block
1941Ap |CV* |newATTRSUB |I32 floor|OP *o|OP *proto|OP *attrs|OP *block
1942Ap |void |newMYSUB |I32 floor|OP *o|OP *proto|OP *attrs|OP *block
09bef843 1943p |OP * |my_attrs |OP *o|OP *attrs
1944p |void |boot_core_xsutils
1d7c1841 1945#if defined(USE_ITHREADS)
d2d73c3e 1946Ap |PERL_CONTEXT*|cx_dup |PERL_CONTEXT* cx|I32 ix|I32 max|clone_params* param
1947Ap |PERL_SI*|si_dup |PERL_SI* si|clone_params* param
1948Ap |ANY* |ss_dup |PerlInterpreter* proto_perl|clone_params* param
954c1994 1949Ap |void* |any_dup |void* v|PerlInterpreter* proto_perl
d2d73c3e 1950Ap |HE* |he_dup |HE* e|bool shared|clone_params* param
d2f185dc 1951Ap |REGEXP*|re_dup |REGEXP* r|clone_params* param
954c1994 1952Ap |PerlIO*|fp_dup |PerlIO* fp|char type
1953Ap |DIR* |dirp_dup |DIR* dp
d2d73c3e 1954Ap |GP* |gp_dup |GP* gp|clone_params* param
1955Ap |MAGIC* |mg_dup |MAGIC* mg|clone_params* param
1956Ap |SV* |sv_dup |SV* sstr|clone_params* param
1d7c1841 1957#if defined(HAVE_INTERP_INTERN)
954c1994 1958Ap |void |sys_intern_dup |struct interp_intern* src \
1d7c1841 1959 |struct interp_intern* dst
1960#endif
954c1994 1961Ap |PTR_TBL_t*|ptr_table_new
1962Ap |void* |ptr_table_fetch|PTR_TBL_t *tbl|void *sv
1963Ap |void |ptr_table_store|PTR_TBL_t *tbl|void *oldsv|void *newsv
1964Ap |void |ptr_table_split|PTR_TBL_t *tbl
a0739874 1965Ap |void |ptr_table_clear|PTR_TBL_t *tbl
1966Ap |void |ptr_table_free|PTR_TBL_t *tbl
1d7c1841 1967#endif
3dbbd0f5 1968#if defined(HAVE_INTERP_INTERN)
1969Ap |void |sys_intern_clear
1970Ap |void |sys_intern_init
1971#endif
19e8ce8e 1972
53e06cf0 1973Ap |char * |custom_op_name|OP* op
1974Ap |char * |custom_op_desc|OP* op
19e8ce8e 1975
cea2e8a9 1976
1d7c1841 1977END_EXTERN_C
1d7c1841 1978
0cb96387 1979#if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
cea2e8a9 1980s |I32 |avhv_index_sv |SV* sv
10c8fecd 1981s |I32 |avhv_index |AV* av|SV* sv|U32 hash
cea2e8a9 1982#endif
1983
0cb96387 1984#if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT)
036b4402 1985s |I32 |do_trans_simple |SV *sv
1986s |I32 |do_trans_count |SV *sv
1987s |I32 |do_trans_complex |SV *sv
1988s |I32 |do_trans_simple_utf8 |SV *sv
1989s |I32 |do_trans_count_utf8 |SV *sv
1990s |I32 |do_trans_complex_utf8 |SV *sv
cea2e8a9 1991#endif
1992
0cb96387 1993#if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT)
cea2e8a9 1994s |void |gv_init_sv |GV *gv|I32 sv_type
d2c93421 1995s |void |require_errno |GV *gv
cea2e8a9 1996#endif
1997
0cb96387 1998#if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
cea2e8a9 1999s |void |hsplit |HV *hv
2000s |void |hfreeentries |HV *hv
2001s |void |more_he
2002s |HE* |new_he
2003s |void |del_he |HE *p
2004s |HEK* |save_hek |const char *str|I32 len|U32 hash
2005s |void |hv_magic_check |HV *hv|bool *needs_copy|bool *needs_store
2006#endif
2007
0cb96387 2008#if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT)
8fb26106 2009s |void |save_magic |I32 mgs_ix|SV *sv
cea2e8a9 2010s |int |magic_methpack |SV *sv|MAGIC *mg|char *meth
2011s |int |magic_methcall |SV *sv|MAGIC *mg|char *meth|I32 f \
2012 |int n|SV *val
cea2e8a9 2013#endif
2014
0cb96387 2015#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
cea2e8a9 2016s |I32 |list_assignment|OP *o
2017s |void |bad_type |I32 n|char *t|char *name|OP *kid
3eb57f73 2018s |void |cop_free |COP *cop
cea2e8a9 2019s |OP* |modkids |OP *o|I32 type
2020s |void |no_bareword_allowed|OP *o
2021s |OP* |no_fh_allowed |OP *o
2022s |OP* |scalarboolean |OP *o
2023s |OP* |too_few_arguments|OP *o|char* name
2024s |OP* |too_many_arguments|OP *o|char* name
94f23f41 2025s |PADOFFSET|pad_addlex |SV* name
cea2e8a9 2026s |PADOFFSET|pad_findlex |char* name|PADOFFSET newoff|U32 seq \
2027 |CV* startcv|I32 cx_ix|I32 saweval|U32 flags
2028s |OP* |newDEFSVOP
2029s |OP* |new_logop |I32 type|I32 flags|OP **firstp|OP **otherp
2030s |void |simplify_sort |OP *o
2031s |bool |is_handle_constructor |OP *o|I32 argnum
2032s |char* |gv_ename |GV *gv
9cbac4c7 2033# if defined(DEBUG_CLOSURES)
1d7c1841 2034s |void |cv_dump |CV *cv
9cbac4c7 2035# endif
cea2e8a9 2036s |CV* |cv_clone2 |CV *proto|CV *outside
2037s |bool |scalar_mod_type|OP *o|I32 type
09bef843 2038s |OP * |my_kid |OP *o|OP *attrs
2039s |OP * |dup_attrlist |OP *o
2040s |void |apply_attrs |HV *stash|SV *target|OP *attrs
cea2e8a9 2041# if defined(PL_OP_SLAB_ALLOC)
2042s |void* |Slab_Alloc |int m|size_t sz
2043# endif
2044#endif
2045
0cb96387 2046#if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
cea2e8a9 2047s |void |find_beginning
2048s |void |forbid_setid |char *
9c8a64f0 2049s |void |incpush |char *|int|int
cea2e8a9 2050s |void |init_interp
2051s |void |init_ids
cea2e8a9 2052s |void |init_lexer
2053s |void |init_main_stash
2054s |void |init_perllib
2055s |void |init_postdump_symbols|int|char **|char **
2056s |void |init_predump_symbols
2057rs |void |my_exit_jump
2058s |void |nuke_stacks
2059s |void |open_script |char *|bool|SV *|int *fd
2060s |void |usage |char *
2061s |void |validate_suid |char *|char*|int
cea2e8a9 2062# if defined(IAMSUID)
2063s |int |fd_on_nosuid_fs|int fd
2064# endif
14dd3ad8 2065s |void* |parse_body |char **env|XSINIT_t xsinit
2066s |void* |run_body |I32 oldscope
2067s |void |call_body |OP *myop|int is_eval
2068s |void* |call_list_body |CV *cv
2069#if defined(PERL_FLEXIBLE_EXCEPTIONS)
2070s |void* |vparse_body |va_list args
2071s |void* |vrun_body |va_list args
2072s |void* |vcall_body |va_list args
2073s |void* |vcall_list_body|va_list args
2074#endif
4d1ff10f 2075# if defined(USE_5005THREADS)
cea2e8a9 2076s |struct perl_thread * |init_main_thread
2077# endif
2078#endif
2079
0cb96387 2080#if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
cea2e8a9 2081s |SV* |refto |SV* sv
2082s |U32 |seed
a6ec74c1 2083#endif
2084
2085#if defined(PERL_IN_PP_PACK_C) || defined(PERL_DECL_PROT)
2086s |void |doencodes |SV* sv|char* s|I32 len
cea2e8a9 2087s |SV* |mul128 |SV *sv|U8 m
2088s |SV* |is_an_int |char *s|STRLEN l
2089s |int |div128 |SV *pnum|bool *done
2090#endif
2091
0cb96387 2092#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
cea2e8a9 2093s |OP* |docatch |OP *o
14dd3ad8 2094s |void* |docatch_body
2095#if defined(PERL_FLEXIBLE_EXCEPTIONS)
2096s |void* |vdocatch_body |va_list args
2097#endif
cea2e8a9 2098s |OP* |dofindlabel |OP *o|char *label|OP **opstack|OP **oplimit
2099s |void |doparseform |SV *sv
2100s |I32 |dopoptoeval |I32 startingblock
2101s |I32 |dopoptolabel |char *label
2102s |I32 |dopoptoloop |I32 startingblock
2103s |I32 |dopoptosub |I32 startingblock
2104s |I32 |dopoptosub_at |PERL_CONTEXT* cxstk|I32 startingblock
cea2e8a9 2105s |void |save_lines |AV *array|SV *sv
2106s |OP* |doeval |int gimme|OP** startop
2107s |PerlIO *|doopen_pmc |const char *name|const char *mode
cea2e8a9 2108#endif
2109
0cb96387 2110#if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
10c8fecd 2111s |int |do_maybe_phash |AV *ary|SV **lelem|SV **firstlelem \
2112 |SV **relem|SV **lastrelem
2113s |void |do_oddball |HV *hash|SV **relem|SV **firstrelem
cea2e8a9 2114s |CV* |get_db_sub |SV **svp|CV *cv
f5d5a27c 2115s |SV* |method_common |SV* meth|U32* hashp
cea2e8a9 2116#endif
2117
0cb96387 2118#if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
cea2e8a9 2119s |OP* |doform |CV *cv|GV *gv|OP *retop
7f4774ae 2120s |int |emulate_eaccess|const char* path|Mode_t mode
cea2e8a9 2121# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
2122s |int |dooneliner |char *cmd|char *filename
2123# endif
2124#endif
2125
0cb96387 2126#if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT)
830247a4 2127s |regnode*|reg |struct RExC_state_t*|I32|I32 *
2128s |regnode*|reganode |struct RExC_state_t*|U8|U32
2129s |regnode*|regatom |struct RExC_state_t*|I32 *
2130s |regnode*|regbranch |struct RExC_state_t*|I32 *|I32
2131s |void |reguni |struct RExC_state_t*|UV|char *|STRLEN*
2132s |regnode*|regclass |struct RExC_state_t*
cea2e8a9 2133s |I32 |regcurly |char *
830247a4 2134s |regnode*|reg_node |struct RExC_state_t*|U8
2135s |regnode*|regpiece |struct RExC_state_t*|I32 *
2136s |void |reginsert |struct RExC_state_t*|U8|regnode *
2137s |void |regoptail |struct RExC_state_t*|regnode *|regnode *
2138s |void |regtail |struct RExC_state_t*|regnode *|regnode *
cea2e8a9 2139s |char*|regwhite |char *|char *
830247a4 2140s |char*|nextchar |struct RExC_state_t*
8fa7f367 2141# ifdef DEBUGGING
cea2e8a9 2142s |regnode*|dumpuntil |regnode *start|regnode *node \
2143 |regnode *last|SV* sv|I32 l
1d7c1841 2144s |void |put_byte |SV* sv|int c
8fa7f367 2145# endif
830247a4 2146s |void |scan_commit |struct RExC_state_t*|struct scan_data_t *data
2147s |void |cl_anything |struct RExC_state_t*|struct regnode_charclass_class *cl
1d7c1841 2148s |int |cl_is_anything |struct regnode_charclass_class *cl
830247a4 2149s |void |cl_init |struct RExC_state_t*|struct regnode_charclass_class *cl
2150s |void |cl_init_zero |struct RExC_state_t*|struct regnode_charclass_class *cl
1d7c1841 2151s |void |cl_and |struct regnode_charclass_class *cl \
2152 |struct regnode_charclass_class *and_with
830247a4 2153s |void |cl_or |struct RExC_state_t*|struct regnode_charclass_class *cl \
1d7c1841 2154 |struct regnode_charclass_class *or_with
830247a4 2155s |I32 |study_chunk |struct RExC_state_t*|regnode **scanp|I32 *deltap \
82ba1be6 2156 |regnode *last|struct scan_data_t *data \
2157 |U32 flags
830247a4 2158s |I32 |add_data |struct RExC_state_t*|I32 n|char *s
cea2e8a9 2159rs |void|re_croak2 |const char* pat1|const char* pat2|...
830247a4 2160s |I32 |regpposixcc |struct RExC_state_t*|I32 value
2161s |void |checkposixcc |struct RExC_state_t*
cea2e8a9 2162#endif
2163
0cb96387 2164#if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT)
cea2e8a9 2165s |I32 |regmatch |regnode *prog
2166s |I32 |regrepeat |regnode *p|I32 max
2167s |I32 |regrepeat_hard |regnode *p|I32 max|I32 *lp
2168s |I32 |regtry |regexp *prog|char *startpos
7ea3cd40 2169s |bool |reginclass |regnode *n|U8 *p|bool do_utf8sv_is_utf8
cea2e8a9 2170s |CHECKPOINT|regcppush |I32 parenfloor
2171s |char*|regcppop
2172s |char*|regcp_set_to |I32 ss
2173s |void |cache_re |regexp *prog
cea2e8a9 2174s |U8* |reghop |U8 *pos|I32 off
60aeb6fd 2175s |U8* |reghop3 |U8 *pos|I32 off|U8 *lim
cea2e8a9 2176s |U8* |reghopmaybe |U8 *pos|I32 off
60aeb6fd 2177s |U8* |reghopmaybe3 |U8 *pos|I32 off|U8 *lim
1d7c1841 2178s |char* |find_byclass |regexp * prog|regnode *c|char *s|char *strend|char *startpos|I32 norun
cea2e8a9 2179#endif
2180
0cb96387 2181#if defined(PERL_IN_RUN_C) || defined(PERL_DECL_PROT)
8fa7f367 2182# ifdef DEBUGGING
53a2efa2 2183s |CV* |deb_curcv |I32 ix
cea2e8a9 2184s |void |debprof |OP *o
8fa7f367 2185# endif
cea2e8a9 2186#endif
2187
0cb96387 2188#if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
cea2e8a9 2189s |SV* |save_scalar_at |SV **sptr
2190#endif
2191
5961b034 2192#if defined(USE_ITHREADS)
cd1ee231 2193Adp |void |sharedsv_init
0776ebf0 2194Adp |shared_sv* |sharedsv_new
2195Adp |shared_sv* |sharedsv_find |SV* sv
2196Adp |void |sharedsv_lock |shared_sv* ssv
2197Adp |void |sharedsv_unlock |shared_sv* ssv
2198p |void |sharedsv_unlock_scope |shared_sv* ssv
cd1ee231 2199Adp |void |sharedsv_thrcnt_inc |shared_sv* ssv
2200Adp |void |sharedsv_thrcnt_dec |shared_sv* ssv
2201#endif
2202
0cb96387 2203#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
cea2e8a9 2204s |IV |asIV |SV* sv
2205s |UV |asUV |SV* sv
2206s |SV* |more_sv
2207s |void |more_xiv
2208s |void |more_xnv
2209s |void |more_xpv
932e9ff9 2210s |void |more_xpviv
2211s |void |more_xpvnv
2212s |void |more_xpvcv
2213s |void |more_xpvav
2214s |void |more_xpvhv
2215s |void |more_xpvmg
2216s |void |more_xpvlv
2217s |void |more_xpvbm
cea2e8a9 2218s |void |more_xrv
2219s |XPVIV* |new_xiv
2220s |XPVNV* |new_xnv
2221s |XPV* |new_xpv
932e9ff9 2222s |XPVIV* |new_xpviv
2223s |XPVNV* |new_xpvnv
2224s |XPVCV* |new_xpvcv
2225s |XPVAV* |new_xpvav
2226s |XPVHV* |new_xpvhv
2227s |XPVMG* |new_xpvmg
2228s |XPVLV* |new_xpvlv
2229s |XPVBM* |new_xpvbm
cea2e8a9 2230s |XRV* |new_xrv
2231s |void |del_xiv |XPVIV* p
2232s |void |del_xnv |XPVNV* p
2233s |void |del_xpv |XPV* p
932e9ff9 2234s |void |del_xpviv |XPVIV* p
2235s |void |del_xpvnv |XPVNV* p
2236s |void |del_xpvcv |XPVCV* p
2237s |void |del_xpvav |XPVAV* p
2238s |void |del_xpvhv |XPVHV* p
2239s |void |del_xpvmg |XPVMG* p
2240s |void |del_xpvlv |XPVLV* p
2241s |void |del_xpvbm |XPVBM* p
cea2e8a9 2242s |void |del_xrv |XRV* p
2243s |void |sv_unglob |SV* sv
cea2e8a9 2244s |void |not_a_number |SV *sv
5226ed68 2245s |I32 |visit |SVFUNC_t f
cea2e8a9 2246s |void |sv_add_backref |SV *tsv|SV *sv
2247s |void |sv_del_backref |SV *sv
8fa7f367 2248# ifdef DEBUGGING
cea2e8a9 2249s |void |del_sv |SV *p
2250# endif
28e5dec8 2251# if !defined(NV_PRESERVES_UV)
28e5dec8 2252s |int |sv_2iuv_non_preserve |SV *sv|I32 numtype
2253# endif
6b1bfb71 2254s |I32 |expect_number |char** pattern
9cbac4c7 2255#
2256# if defined(USE_ITHREADS)
2257s |SV* |gv_share |SV *sv
2258# endif
cea2e8a9 2259#endif
2260
0cb96387 2261#if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
cea2e8a9 2262s |void |check_uni
2263s |void |force_next |I32 type
e759cc13 2264s |char* |force_version |char *start|int guessing
cea2e8a9 2265s |char* |force_word |char *start|int token|int check_keyword \
2266 |int allow_pack|int allow_tick
2267s |SV* |tokeq |SV *sv
8eceec63 2268s |int |pending_ident
cea2e8a9 2269s |char* |scan_const |char *start
2270s |char* |scan_formline |char *s
2271s |char* |scan_heredoc |char *s
2272s |char* |scan_ident |char *s|char *send|char *dest \
2273 |STRLEN destlen|I32 ck_uni
2274s |char* |scan_inputsymbol|char *start
2275s |char* |scan_pat |char *start|I32 type
09bef843 2276s |char* |scan_str |char *start|int keep_quoted|int keep_delims
cea2e8a9 2277s |char* |scan_subst |char *start
2278s |char* |scan_trans |char *start
2279s |char* |scan_word |char *s|char *dest|STRLEN destlen \
2280 |int allow_package|STRLEN *slp
2281s |char* |skipspace |char *s
78ae23f5 2282s |char* |swallow_bom |U8 *s
cea2e8a9 2283s |void |checkcomma |char *s|char *name|char *what
2284s |void |force_ident |char *s|int kind
2285s |void |incline |char *s
2286s |int |intuit_method |char *s|GV *gv
2287s |int |intuit_more |char *s
1d7c1841 2288s |I32 |lop |I32 f|int x|char *s
cea2e8a9 2289s |void |missingterm |char *s
2290s |void |no_op |char *what|char *s
2291s |void |set_csh
2292s |I32 |sublex_done
2293s |I32 |sublex_push
2294s |I32 |sublex_start
2295s |char * |filter_gets |SV *sv|PerlIO *fp|STRLEN append
def3634b 2296s |HV * |find_in_my_stash|char *pkgname|I32 len
1d7c1841 2297s |SV* |new_constant |char *s|STRLEN len|const char *key|SV *sv \
2298 |SV *pv|const char *type
8fa7f367 2299# if defined(DEBUGGING)
998054bd 2300s |void |tokereport |char *thing|char *s|I32 rv
8fa7f367 2301# endif
cea2e8a9 2302s |int |ao |int toketype
2303s |void |depcom
2304s |char* |incl_perldb
155aba94 2305#if 0
cea2e8a9 2306s |I32 |utf16_textfilter|int idx|SV *sv|int maxlen
2307s |I32 |utf16rev_textfilter|int idx|SV *sv|int maxlen
155aba94 2308#endif
cea2e8a9 2309# if defined(CRIPPLED_CC)
2310s |int |uni |I32 f|char *s
2311# endif
c39cd008 2312# if defined(PERL_CR_FILTER)
2313s |I32 |cr_textfilter |int idx|SV *sv|int maxlen
cea2e8a9 2314# endif
2315#endif
2316
0cb96387 2317#if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
cea2e8a9 2318s |SV*|isa_lookup |HV *stash|const char *name|int len|int level
2319#endif
2320
2d31dd6a 2321#if defined(PERL_IN_LOCALE_C) || defined(PERL_DECL_PROT)
ff4fed7c 2322s |char* |stdize_locale |char* locs
2d31dd6a 2323#endif
2324
2325#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
ae7d165c 2326s |COP* |closest_cop |COP *cop|OP *o
cea2e8a9 2327s |SV* |mess_alloc
cea2e8a9 2328# if defined(LEAKTEST)
2329s |void |xstat |int
2330# endif
2331#endif
1d7c1841 2332
902f5b58 2333START_EXTERN_C
2334
8d6d96c1 2335Apd |void |sv_setsv_flags |SV* dsv|SV* ssv|I32 flags
2336Apd |void |sv_catpvn_flags|SV* sv|const char* ptr|STRLEN len|I32 flags
2337Apd |void |sv_catsv_flags |SV* dsv|SV* ssv|I32 flags
2338Apd |STRLEN |sv_utf8_upgrade_flags|SV *sv|I32 flags
2339Apd |char* |sv_pvn_force_flags|SV* sv|STRLEN* lp|I32 flags
645c22ef 2340Apd |char* |sv_2pv_flags |SV* sv|STRLEN* lp|I32 flags
1f727ac0 2341Ap |char* |my_atof2 |const char *s|NV* value
902f5b58 2342
2343END_EXTERN_C
2344