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