(retracted by #12485)
[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
a2a2844f 1356Ap |U32 |to_uni_upper |U32 c|U8 *p|STRLEN *lenp
1357Ap |U32 |to_uni_title |U32 c|U8 *p|STRLEN *lenp
1358Ap |U32 |to_uni_lower |U32 c|U8 *p|STRLEN *lenp
954c1994 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
eebe1485 1373Apd |STRLEN |is_utf8_char |U8 *p
1374Apd |bool |is_utf8_string |U8 *s|STRLEN len
954c1994 1375Ap |bool |is_utf8_alnum |U8 *p
1376Ap |bool |is_utf8_alnumc |U8 *p
1377Ap |bool |is_utf8_idfirst|U8 *p
1378Ap |bool |is_utf8_alpha |U8 *p
1379Ap |bool |is_utf8_ascii |U8 *p
1380Ap |bool |is_utf8_space |U8 *p
1381Ap |bool |is_utf8_cntrl |U8 *p
1382Ap |bool |is_utf8_digit |U8 *p
1383Ap |bool |is_utf8_graph |U8 *p
1384Ap |bool |is_utf8_upper |U8 *p
1385Ap |bool |is_utf8_lower |U8 *p
1386Ap |bool |is_utf8_print |U8 *p
1387Ap |bool |is_utf8_punct |U8 *p
1388Ap |bool |is_utf8_xdigit |U8 *p
1389Ap |bool |is_utf8_mark |U8 *p
cea2e8a9 1390p |OP* |jmaybe |OP* arg
1391p |I32 |keyword |char* d|I32 len
1be9d9c6 1392Ap |void |leave_scope |I32 base
cea2e8a9 1393p |void |lex_end
1394p |void |lex_start |SV* line
1cadc447 1395Ap |void |op_null |OP* o
93c66552 1396p |void |op_clear |OP* o
cea2e8a9 1397p |OP* |linklist |OP* o
1398p |OP* |list |OP* o
1399p |OP* |listkids |OP* o
7d3fb230 1400Apd |void |load_module|U32 flags|SV* name|SV* ver|...
e4783991 1401Ap |void |vload_module|U32 flags|SV* name|SV* ver|va_list* args
cea2e8a9 1402p |OP* |localize |OP* arg|I32 lexical
954c1994 1403Apd |I32 |looks_like_number|SV* sv
53305cf1 1404Apd |UV |grok_bin |char* start|STRLEN* len|I32* flags|NV *result
1405Apd |UV |grok_hex |char* start|STRLEN* len|I32* flags|NV *result
dd5dc04f 1406Apd |int |grok_number |const char *pv|STRLEN len|UV *valuep
1407Apd |bool |grok_numeric_radix|const char **sp|const char *send
53305cf1 1408Apd |UV |grok_oct |char* start|STRLEN* len|I32* flags|NV *result
cea2e8a9 1409p |int |magic_clearenv |SV* sv|MAGIC* mg
1410p |int |magic_clear_all_env|SV* sv|MAGIC* mg
1411p |int |magic_clearpack|SV* sv|MAGIC* mg
1412p |int |magic_clearsig |SV* sv|MAGIC* mg
1413p |int |magic_existspack|SV* sv|MAGIC* mg
1414p |int |magic_freeregexp|SV* sv|MAGIC* mg
d460ef45 1415p |int |magic_freeovrld|SV* sv|MAGIC* mg
cea2e8a9 1416p |int |magic_get |SV* sv|MAGIC* mg
1417p |int |magic_getarylen|SV* sv|MAGIC* mg
1418p |int |magic_getdefelem|SV* sv|MAGIC* mg
1419p |int |magic_getglob |SV* sv|MAGIC* mg
1420p |int |magic_getnkeys |SV* sv|MAGIC* mg
1421p |int |magic_getpack |SV* sv|MAGIC* mg
1422p |int |magic_getpos |SV* sv|MAGIC* mg
1423p |int |magic_getsig |SV* sv|MAGIC* mg
1424p |int |magic_getsubstr|SV* sv|MAGIC* mg
1425p |int |magic_gettaint |SV* sv|MAGIC* mg
1426p |int |magic_getuvar |SV* sv|MAGIC* mg
1427p |int |magic_getvec |SV* sv|MAGIC* mg
1428p |U32 |magic_len |SV* sv|MAGIC* mg
4d1ff10f 1429#if defined(USE_5005THREADS)
cea2e8a9 1430p |int |magic_mutexfree|SV* sv|MAGIC* mg
1431#endif
1432p |int |magic_nextpack |SV* sv|MAGIC* mg|SV* key
1433p |U32 |magic_regdata_cnt|SV* sv|MAGIC* mg
1434p |int |magic_regdatum_get|SV* sv|MAGIC* mg
e4b89193 1435p |int |magic_regdatum_set|SV* sv|MAGIC* mg
cea2e8a9 1436p |int |magic_set |SV* sv|MAGIC* mg
1437p |int |magic_setamagic|SV* sv|MAGIC* mg
1438p |int |magic_setarylen|SV* sv|MAGIC* mg
1439p |int |magic_setbm |SV* sv|MAGIC* mg
1440p |int |magic_setdbline|SV* sv|MAGIC* mg
1441#if defined(USE_LOCALE_COLLATE)
1442p |int |magic_setcollxfrm|SV* sv|MAGIC* mg
1443#endif
1444p |int |magic_setdefelem|SV* sv|MAGIC* mg
1445p |int |magic_setenv |SV* sv|MAGIC* mg
1446p |int |magic_setfm |SV* sv|MAGIC* mg
1447p |int |magic_setisa |SV* sv|MAGIC* mg
1448p |int |magic_setglob |SV* sv|MAGIC* mg
1449p |int |magic_setmglob |SV* sv|MAGIC* mg
1450p |int |magic_setnkeys |SV* sv|MAGIC* mg
1451p |int |magic_setpack |SV* sv|MAGIC* mg
1452p |int |magic_setpos |SV* sv|MAGIC* mg
1453p |int |magic_setsig |SV* sv|MAGIC* mg
1454p |int |magic_setsubstr|SV* sv|MAGIC* mg
1455p |int |magic_settaint |SV* sv|MAGIC* mg
1456p |int |magic_setuvar |SV* sv|MAGIC* mg
1457p |int |magic_setvec |SV* sv|MAGIC* mg
1458p |int |magic_set_all_env|SV* sv|MAGIC* mg
1459p |U32 |magic_sizepack |SV* sv|MAGIC* mg
1460p |int |magic_wipepack |SV* sv|MAGIC* mg
1461p |void |magicname |char* sym|char* name|I32 namlen
954c1994 1462Ap |void |markstack_grow
cea2e8a9 1463#if defined(USE_LOCALE_COLLATE)
1464p |char* |mem_collxfrm |const char* s|STRLEN len|STRLEN* xlen
1465#endif
954c1994 1466Afp |SV* |mess |const char* pat|...
1467Ap |SV* |vmess |const char* pat|va_list* args
5a844595 1468p |void |qerror |SV* err
8d344e3e 1469Apd |void |sortsv |SV ** array|size_t num_elts|SVCOMPARE_t f
954c1994 1470Apd |int |mg_clear |SV* sv
1471Apd |int |mg_copy |SV* sv|SV* nsv|const char* key|I32 klen
1472Apd |MAGIC* |mg_find |SV* sv|int type
1473Apd |int |mg_free |SV* sv
1474Apd |int |mg_get |SV* sv
1475Apd |U32 |mg_length |SV* sv
1476Apd |void |mg_magical |SV* sv
1477Apd |int |mg_set |SV* sv
8fb26106 1478Ap |I32 |mg_size |SV* sv
b93ec261 1479Ap |void |mini_mktime |struct tm *pm
cea2e8a9 1480p |OP* |mod |OP* o|I32 type
16fe6d59 1481p |int |mode_from_discipline|SV* discp
1be9d9c6 1482Ap |char* |moreswitches |char* s
cea2e8a9 1483p |OP* |my |OP* o
954c1994 1484Ap |NV |my_atof |const char *s
2253333f 1485#if (!defined(HAS_MEMCPY) && !defined(HAS_BCOPY)) || (!defined(HAS_MEMMOVE) && !defined(HAS_SAFE_MEMCPY) && !defined(HAS_SAFE_BCOPY))
954c1994 1486Anp |char* |my_bcopy |const char* from|char* to|I32 len
cea2e8a9 1487#endif
1488#if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
954c1994 1489Anp |char* |my_bzero |char* loc|I32 len
cea2e8a9 1490#endif
954c1994 1491Apr |void |my_exit |U32 status
1492Apr |void |my_failure_exit
1493Ap |I32 |my_fflush_all
52e18b1f 1494Anp |Pid_t |my_fork
1495Anp |void |atfork_lock
1496Anp |void |atfork_unlock
954c1994 1497Ap |I32 |my_lstat
cea2e8a9 1498#if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP)
954c1994 1499Anp |I32 |my_memcmp |const char* s1|const char* s2|I32 len
cea2e8a9 1500#endif
1501#if !defined(HAS_MEMSET)
954c1994 1502Anp |void* |my_memset |char* loc|I32 ch|I32 len
cea2e8a9 1503#endif
954c1994 1504Ap |I32 |my_pclose |PerlIO* ptr
1505Ap |PerlIO*|my_popen |char* cmd|char* mode
4a7d1889 1506Ap |PerlIO*|my_popen_list |char* mode|int n|SV ** args
954c1994 1507Ap |void |my_setenv |char* nam|char* val
1508Ap |I32 |my_stat
b93ec261 1509Ap |char * |my_strftime |char *fmt|int sec|int min|int hour|int mday|int mon|int year|int wday|int yday|int isdst
cea2e8a9 1510#if defined(MYSWAP)
954c1994 1511Ap |short |my_swap |short s
1512Ap |long |my_htonl |long l
1513Ap |long |my_ntohl |long l
cea2e8a9 1514#endif
1515p |void |my_unexec
954c1994 1516Ap |OP* |newANONLIST |OP* o
1517Ap |OP* |newANONHASH |OP* o
1518Ap |OP* |newANONSUB |I32 floor|OP* proto|OP* block
1519Ap |OP* |newASSIGNOP |I32 flags|OP* left|I32 optype|OP* right
1520Ap |OP* |newCONDOP |I32 flags|OP* expr|OP* trueop|OP* falseop
beab0874 1521Apd |CV* |newCONSTSUB |HV* stash|char* name|SV* sv
954c1994 1522Ap |void |newFORM |I32 floor|OP* o|OP* block
1523Ap |OP* |newFOROP |I32 flags|char* label|line_t forline \
cea2e8a9 1524 |OP* sclr|OP* expr|OP*block|OP*cont
954c1994 1525Ap |OP* |newLOGOP |I32 optype|I32 flags|OP* left|OP* right
1526Ap |OP* |newLOOPEX |I32 type|OP* label
1527Ap |OP* |newLOOPOP |I32 flags|I32 debuggable|OP* expr|OP* block
1528Ap |OP* |newNULLLIST
1529Ap |OP* |newOP |I32 optype|I32 flags
1530Ap |void |newPROG |OP* o
1531Ap |OP* |newRANGE |I32 flags|OP* left|OP* right
1532Ap |OP* |newSLICEOP |I32 flags|OP* subscript|OP* listop
1533Ap |OP* |newSTATEOP |I32 flags|char* label|OP* o
1534Ap |CV* |newSUB |I32 floor|OP* o|OP* proto|OP* block
1535Apd |CV* |newXS |char* name|XSUBADDR_t f|char* filename
1536Apd |AV* |newAV
1537Ap |OP* |newAVREF |OP* o
1538Ap |OP* |newBINOP |I32 type|I32 flags|OP* first|OP* last
1539Ap |OP* |newCVREF |I32 flags|OP* o
1540Ap |OP* |newGVOP |I32 type|I32 flags|GV* gv
1541Ap |GV* |newGVgen |char* pack
1542Ap |OP* |newGVREF |I32 type|OP* o
1543Ap |OP* |newHVREF |OP* o
1544Apd |HV* |newHV
1545Ap |HV* |newHVhv |HV* hv
1546Ap |IO* |newIO
1547Ap |OP* |newLISTOP |I32 type|I32 flags|OP* first|OP* last
1548Ap |OP* |newPADOP |I32 type|I32 flags|SV* sv
1549Ap |OP* |newPMOP |I32 type|I32 flags
1550Ap |OP* |newPVOP |I32 type|I32 flags|char* pv
1551Ap |SV* |newRV |SV* pref
1552Apd |SV* |newRV_noinc |SV *sv
451be7b1 1553Apd |SV* |newSV |STRLEN len
954c1994 1554Ap |OP* |newSVREF |OP* o
1555Ap |OP* |newSVOP |I32 type|I32 flags|SV* sv
1556Apd |SV* |newSViv |IV i
1a3327fb 1557Apd |SV* |newSVuv |UV u
954c1994 1558Apd |SV* |newSVnv |NV n
1559Apd |SV* |newSVpv |const char* s|STRLEN len
1560Apd |SV* |newSVpvn |const char* s|STRLEN len
c3654f1a 1561Apd |SV* |newSVpvn_share |const char* s|I32 len|U32 hash
954c1994 1562Afpd |SV* |newSVpvf |const char* pat|...
1563Ap |SV* |vnewSVpvf |const char* pat|va_list* args
1564Apd |SV* |newSVrv |SV* rv|const char* classname
1565Apd |SV* |newSVsv |SV* old
1566Ap |OP* |newUNOP |I32 type|I32 flags|OP* first
1567Ap |OP* |newWHILEOP |I32 flags|I32 debuggable|LOOP* loop \
cea2e8a9 1568 |I32 whileline|OP* expr|OP* block|OP* cont
c5be433b 1569
1be9d9c6 1570Ap |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems
cea2e8a9 1571p |PerlIO*|nextargv |GV* gv
954c1994 1572Ap |char* |ninstr |const char* big|const char* bigend \
cea2e8a9 1573 |const char* little|const char* lend
1574p |OP* |oopsCV |OP* o
1be9d9c6 1575Ap |void |op_free |OP* arg
cea2e8a9 1576p |void |package |OP* o
1577p |PADOFFSET|pad_alloc |I32 optype|U32 tmptype
1578p |PADOFFSET|pad_allocmy |char* name
1579p |PADOFFSET|pad_findmy |char* name
1580p |OP* |oopsAV |OP* o
1581p |OP* |oopsHV |OP* o
1582p |void |pad_leavemy |I32 fill
1be9d9c6 1583Ap |SV* |pad_sv |PADOFFSET po
cea2e8a9 1584p |void |pad_free |PADOFFSET po
1585p |void |pad_reset
1586p |void |pad_swipe |PADOFFSET po
1587p |void |peep |OP* o
ae154d6d 1588dopM |PerlIO*|start_glob |SV* pattern|IO *io
4d1ff10f 1589#if defined(USE_5005THREADS)
954c1994 1590Ap |struct perl_thread* |new_struct_thread|struct perl_thread *t
c5be433b 1591#endif
954c1994 1592Ap |void |call_atexit |ATEXIT_t fn|void *ptr
1593Apd |I32 |call_argv |const char* sub_name|I32 flags|char** argv
1594Apd |I32 |call_method |const char* methname|I32 flags
1595Apd |I32 |call_pv |const char* sub_name|I32 flags
1596Apd |I32 |call_sv |SV* sv|I32 flags
ce08f86c 1597p |void |despatch_signals
954c1994 1598Apd |SV* |eval_pv |const char* p|I32 croak_on_error
1599Apd |I32 |eval_sv |SV* sv|I32 flags
1600Apd |SV* |get_sv |const char* name|I32 create
1601Apd |AV* |get_av |const char* name|I32 create
1602Apd |HV* |get_hv |const char* name|I32 create
1603Apd |CV* |get_cv |const char* name|I32 create
1be9d9c6 1604Ap |int |init_i18nl10n |int printwarn
1605Ap |int |init_i18nl14n |int printwarn
ff4fed7c 1606Ap |void |new_collate |char* newcoll
1607Ap |void |new_ctype |char* newctype
1608Ap |void |new_numeric |char* newcoll
954c1994 1609Ap |void |set_numeric_local
1610Ap |void |set_numeric_radix
1611Ap |void |set_numeric_standard
1612Apd |void |require_pv |const char* pv
d8a83dd3 1613p |void |pidgone |Pid_t pid|int status
1be9d9c6 1614Ap |void |pmflag |U16* pmfl|int ch
cea2e8a9 1615p |OP* |pmruntime |OP* pm|OP* expr|OP* repl
1616p |OP* |pmtrans |OP* o|OP* expr|OP* repl
1617p |OP* |pop_return
954c1994 1618Ap |void |pop_scope
cea2e8a9 1619p |OP* |prepend_elem |I32 optype|OP* head|OP* tail
1620p |void |push_return |OP* o
954c1994 1621Ap |void |push_scope
cea2e8a9 1622p |OP* |ref |OP* o|I32 type
1623p |OP* |refkids |OP* o|I32 type
954c1994 1624Ap |void |regdump |regexp* r
7ea3cd40 1625Ap |SV* |regclass_swash |struct regnode *n|bool doinit|SV **initsvp
a86f0dc9 1626Ap |I32 |pregexec |regexp* prog|char* stringarg \
cea2e8a9 1627 |char* strend|char* strbeg|I32 minend \
1628 |SV* screamer|U32 nosave
1be9d9c6 1629Ap |void |pregfree |struct regexp* r
1630Ap |regexp*|pregcomp |char* exp|char* xend|PMOP* pm
1631Ap |char* |re_intuit_start|regexp* prog|SV* sv|char* strpos \
cad2e5aa 1632 |char* strend|U32 flags \
1633 |struct re_scream_pos_data_s *data
1be9d9c6 1634Ap |SV* |re_intuit_string|regexp* prog
1635Ap |I32 |regexec_flags |regexp* prog|char* stringarg \
cea2e8a9 1636 |char* strend|char* strbeg|I32 minend \
1637 |SV* screamer|void* data|U32 flags
1be9d9c6 1638Ap |regnode*|regnext |regnode* p
cea2e8a9 1639p |void |regprop |SV* sv|regnode* o
1be9d9c6 1640Ap |void |repeatcpy |char* to|const char* from|I32 len|I32 count
954c1994 1641Ap |char* |rninstr |const char* big|const char* bigend \
cea2e8a9 1642 |const char* little|const char* lend
412d7f2a 1643Ap |Sighandler_t|rsignal |int i|Sighandler_t t
cea2e8a9 1644p |int |rsignal_restore|int i|Sigsave_t* t
1645p |int |rsignal_save |int i|Sighandler_t t1|Sigsave_t* t2
76d48558 1646Ap |Sighandler_t|rsignal_state|int i
cea2e8a9 1647p |void |rxres_free |void** rsp
1648p |void |rxres_restore |void** rsp|REGEXP* prx
1649p |void |rxres_save |void** rsp|REGEXP* prx
1650#if !defined(HAS_RENAME)
1651p |I32 |same_dirent |char* a|char* b
1652#endif
954c1994 1653Apd |char* |savepv |const char* sv
1654Apd |char* |savepvn |const char* sv|I32 len
1655Ap |void |savestack_grow
1656Ap |void |save_aelem |AV* av|I32 idx|SV **sptr
1657Ap |I32 |save_alloc |I32 size|I32 pad
1658Ap |void |save_aptr |AV** aptr
1659Ap |AV* |save_ary |GV* gv
1660Ap |void |save_clearsv |SV** svp
1661Ap |void |save_delete |HV* hv|char* key|I32 klen
1662Ap |void |save_destructor|DESTRUCTORFUNC_NOCONTEXT_t f|void* p
1663Ap |void |save_destructor_x|DESTRUCTORFUNC_t f|void* p
1664Ap |void |save_freesv |SV* sv
cea2e8a9 1665p |void |save_freeop |OP* o
954c1994 1666Ap |void |save_freepv |char* pv
1667Ap |void |save_generic_svref|SV** sptr
f4dd75d9 1668Ap |void |save_generic_pvref|char** str
954c1994 1669Ap |void |save_gp |GV* gv|I32 empty
1670Ap |HV* |save_hash |GV* gv
1671Ap |void |save_helem |HV* hv|SV *key|SV **sptr
1672Ap |void |save_hints
1673Ap |void |save_hptr |HV** hptr
1674Ap |void |save_I16 |I16* intp
1675Ap |void |save_I32 |I32* intp
1676Ap |void |save_I8 |I8* bytep
1677Ap |void |save_int |int* intp
1678Ap |void |save_item |SV* item
1679Ap |void |save_iv |IV* iv
1680Ap |void |save_list |SV** sarg|I32 maxsarg
1681Ap |void |save_long |long* longp
26d9b02f 1682Ap |void |save_mortalizesv|SV* sv
954c1994 1683Ap |void |save_nogv |GV* gv
cea2e8a9 1684p |void |save_op
954c1994 1685Ap |SV* |save_scalar |GV* gv
1686Ap |void |save_pptr |char** pptr
1687Ap |void |save_vptr |void* pptr
1688Ap |void |save_re_context
c3564e5c 1689Ap |void |save_padsv |PADOFFSET off
954c1994 1690Ap |void |save_sptr |SV** sptr
1691Ap |SV* |save_svref |SV** sptr
1692Ap |SV** |save_threadsv |PADOFFSET i
cea2e8a9 1693p |OP* |sawparens |OP* o
1694p |OP* |scalar |OP* o
1695p |OP* |scalarkids |OP* o
1696p |OP* |scalarseq |OP* o
1697p |OP* |scalarvoid |OP* o
53305cf1 1698Apd |NV |scan_bin |char* start|STRLEN len|STRLEN* retlen
1699Apd |NV |scan_hex |char* start|STRLEN len|STRLEN* retlen
b73d6f50 1700Ap |char* |scan_num |char* s|YYSTYPE *lvalp
53305cf1 1701Apd |NV |scan_oct |char* start|STRLEN len|STRLEN* retlen
cea2e8a9 1702p |OP* |scope |OP* o
1be9d9c6 1703Ap |char* |screaminstr |SV* bigsv|SV* littlesv|I32 start_shift \
cea2e8a9 1704 |I32 end_shift|I32 *state|I32 last
1705#if !defined(VMS)
1706p |I32 |setenv_getix |char* nam
1707#endif
1708p |void |setdefout |GV* gv
1be9d9c6 1709Ap |char* |sharepvn |const char* sv|I32 len|U32 hash
cea2e8a9 1710p |HEK* |share_hek |const char* sv|I32 len|U32 hash
1711np |Signal_t |sighandler |int sig
954c1994 1712Ap |SV** |stack_grow |SV** sp|SV**p|int n
1713Ap |I32 |start_subparse |I32 is_format|U32 flags
cea2e8a9 1714p |void |sub_crush_depth|CV* cv
645c22ef 1715Apd |bool |sv_2bool |SV* sv
1716Apd |CV* |sv_2cv |SV* sv|HV** st|GV** gvp|I32 lref
1717Apd |IO* |sv_2io |SV* sv
1718Apd |IV |sv_2iv |SV* sv
954c1994 1719Apd |SV* |sv_2mortal |SV* sv
645c22ef 1720Apd |NV |sv_2nv |SV* sv
5e26c890 1721Ap |char* |sv_2pv |SV* sv|STRLEN* lp
451be7b1 1722Apd |char* |sv_2pvutf8 |SV* sv|STRLEN* lp
1723Apd |char* |sv_2pvbyte |SV* sv|STRLEN* lp
5e26c890 1724Ap |char* |sv_pvn_nomg |SV* sv|STRLEN* lp
645c22ef 1725Apd |UV |sv_2uv |SV* sv
1726Apd |IV |sv_iv |SV* sv
1727Apd |UV |sv_uv |SV* sv
1728Apd |NV |sv_nv |SV* sv
451be7b1 1729Apd |char* |sv_pvn |SV *sv|STRLEN *len
645c22ef 1730Apd |char* |sv_pvutf8n |SV *sv|STRLEN *len
1731Apd |char* |sv_pvbyten |SV *sv|STRLEN *len
c461cf8f 1732Apd |I32 |sv_true |SV *sv
645c22ef 1733pd |void |sv_add_arena |char* ptr|U32 size|U32 flags
1734Apd |int |sv_backoff |SV* sv
954c1994 1735Apd |SV* |sv_bless |SV* sv|HV* stash
1736Afpd |void |sv_catpvf |SV* sv|const char* pat|...
1737Ap |void |sv_vcatpvf |SV* sv|const char* pat|va_list* args
1738Apd |void |sv_catpv |SV* sv|const char* ptr
5e26c890 1739Apd |void |sv_catpvn |SV* sv|const char* ptr|STRLEN len
1740Apd |void |sv_catsv |SV* dsv|SV* ssv
954c1994 1741Apd |void |sv_chop |SV* sv|char* ptr
645c22ef 1742pd |I32 |sv_clean_all
1743pd |void |sv_clean_objs
c461cf8f 1744Apd |void |sv_clear |SV* sv
954c1994 1745Apd |I32 |sv_cmp |SV* sv1|SV* sv2
c461cf8f 1746Apd |I32 |sv_cmp_locale |SV* sv1|SV* sv2
cea2e8a9 1747#if defined(USE_LOCALE_COLLATE)
645c22ef 1748Apd |char* |sv_collxfrm |SV* sv|STRLEN* nxp
cea2e8a9 1749#endif
1be9d9c6 1750Ap |OP* |sv_compile_2op |SV* sv|OP** startp|char* code|AV** avp
89423764 1751Apd |int |getcwd_sv |SV* sv
954c1994 1752Apd |void |sv_dec |SV* sv
1753Ap |void |sv_dump |SV* sv
1754Apd |bool |sv_derived_from|SV* sv|const char* name
1755Apd |I32 |sv_eq |SV* sv1|SV* sv2
c461cf8f 1756Apd |void |sv_free |SV* sv
645c22ef 1757pd |void |sv_free_arenas
c461cf8f 1758Apd |char* |sv_gets |SV* sv|PerlIO* fp|I32 append
954c1994 1759Apd |char* |sv_grow |SV* sv|STRLEN newlen
1760Apd |void |sv_inc |SV* sv
1761Apd |void |sv_insert |SV* bigsv|STRLEN offset|STRLEN len \
cea2e8a9 1762 |char* little|STRLEN littlelen
954c1994 1763Apd |int |sv_isa |SV* sv|const char* name
1764Apd |int |sv_isobject |SV* sv
1765Apd |STRLEN |sv_len |SV* sv
c461cf8f 1766Apd |STRLEN |sv_len_utf8 |SV* sv
954c1994 1767Apd |void |sv_magic |SV* sv|SV* obj|int how|const char* name \
cea2e8a9 1768 |I32 namlen
954c1994 1769Apd |SV* |sv_mortalcopy |SV* oldsv
1770Apd |SV* |sv_newmortal
645c22ef 1771Apd |SV* |sv_newref |SV* sv
954c1994 1772Ap |char* |sv_peek |SV* sv
645c22ef 1773Apd |void |sv_pos_u2b |SV* sv|I32* offsetp|I32* lenp
1774Apd |void |sv_pos_b2u |SV* sv|I32* offsetp
5e26c890 1775Apd |char* |sv_pvn_force |SV* sv|STRLEN* lp
c461cf8f 1776Apd |char* |sv_pvutf8n_force|SV* sv|STRLEN* lp
645c22ef 1777Apd |char* |sv_pvbyten_force|SV* sv|STRLEN* lp
c461cf8f 1778Apd |char* |sv_reftype |SV* sv|int ob
1779Apd |void |sv_replace |SV* sv|SV* nsv
645c22ef 1780Apd |void |sv_report_used
451be7b1 1781Apd |void |sv_reset |char* s|HV* stash
954c1994 1782Afpd |void |sv_setpvf |SV* sv|const char* pat|...
1783Ap |void |sv_vsetpvf |SV* sv|const char* pat|va_list* args
1784Apd |void |sv_setiv |SV* sv|IV num
1785Apd |void |sv_setpviv |SV* sv|IV num
1786Apd |void |sv_setuv |SV* sv|UV num
1787Apd |void |sv_setnv |SV* sv|NV num
1788Apd |SV* |sv_setref_iv |SV* rv|const char* classname|IV iv
e1c57cef 1789Apd |SV* |sv_setref_uv |SV* rv|const char* classname|UV uv
954c1994 1790Apd |SV* |sv_setref_nv |SV* rv|const char* classname|NV nv
1791Apd |SV* |sv_setref_pv |SV* rv|const char* classname|void* pv
1792Apd |SV* |sv_setref_pvn |SV* rv|const char* classname|char* pv \
cea2e8a9 1793 |STRLEN n
954c1994 1794Apd |void |sv_setpv |SV* sv|const char* ptr
1795Apd |void |sv_setpvn |SV* sv|const char* ptr|STRLEN len
5e26c890 1796Apd |void |sv_setsv |SV* dsv|SV* ssv
645c22ef 1797Apd |void |sv_taint |SV* sv
451be7b1 1798Apd |bool |sv_tainted |SV* sv
c461cf8f 1799Apd |int |sv_unmagic |SV* sv|int type
954c1994 1800Apd |void |sv_unref |SV* sv
840a7b70 1801Apd |void |sv_unref_flags |SV* sv|U32 flags
451be7b1 1802Apd |void |sv_untaint |SV* sv
954c1994 1803Apd |bool |sv_upgrade |SV* sv|U32 mt
1804Apd |void |sv_usepvn |SV* sv|char* ptr|STRLEN len
1805Apd |void |sv_vcatpvfn |SV* sv|const char* pat|STRLEN patlen \
cea2e8a9 1806 |va_list* args|SV** svargs|I32 svmax \
5bc28da9 1807 |bool *maybe_tainted
954c1994 1808Apd |void |sv_vsetpvfn |SV* sv|const char* pat|STRLEN patlen \
cea2e8a9 1809 |va_list* args|SV** svargs|I32 svmax \
5bc28da9 1810 |bool *maybe_tainted
1571675a 1811Ap |NV |str_to_version |SV *sv
1be9d9c6 1812Ap |SV* |swash_init |char* pkg|char* name|SV* listsv \
cea2e8a9 1813 |I32 minbits|I32 none
3568d838 1814Ap |UV |swash_fetch |SV *sv|U8 *ptr|bool do_utf8
954c1994 1815Ap |void |taint_env
1816Ap |void |taint_proper |const char* f|const char* s
a2a2844f 1817Ap |UV |to_utf8_lower |U8 *p|U8* ustrp|STRLEN *lenp
1818Ap |UV |to_utf8_upper |U8 *p|U8* ustrp|STRLEN *lenp
1819Ap |UV |to_utf8_title |U8 *p|U8* ustrp|STRLEN *lenp
cea2e8a9 1820#if defined(UNLINK_ALL_VERSIONS)
954c1994 1821Ap |I32 |unlnk |char* f
cea2e8a9 1822#endif
4d1ff10f 1823#if defined(USE_5005THREADS)
1be9d9c6 1824Ap |void |unlock_condpair|void* svv
cea2e8a9 1825#endif
1be9d9c6 1826Ap |void |unsharepvn |const char* sv|I32 len|U32 hash
cea2e8a9 1827p |void |unshare_hek |HEK* hek
1828p |void |utilize |int aver|I32 floor|OP* version|OP* id|OP* arg
dea0fc0b 1829Ap |U8* |utf16_to_utf8 |U8* p|U8 *d|I32 bytelen|I32 *newlen
1830Ap |U8* |utf16_to_utf8_reversed|U8* p|U8 *d|I32 bytelen|I32 *newlen
eebe1485 1831Adp |STRLEN |utf8_length |U8* s|U8 *e
1832Apd |IV |utf8_distance |U8 *a|U8 *b
1833Apd |U8* |utf8_hop |U8 *s|I32 off
1834ApMd |U8* |utf8_to_bytes |U8 *s|STRLEN *len
f9a63242 1835ApMd |U8* |bytes_from_utf8|U8 *s|STRLEN *len|bool *is_utf8
eebe1485 1836ApMd |U8* |bytes_to_utf8 |U8 *s|STRLEN *len
9041c2e3 1837Apd |UV |utf8_to_uvchr |U8 *s|STRLEN* retlen
1838Apd |UV |utf8_to_uvuni |U8 *s|STRLEN* retlen
1839Adp |UV |utf8n_to_uvchr |U8 *s|STRLEN curlen|STRLEN* retlen|U32 flags
1840Adp |UV |utf8n_to_uvuni |U8 *s|STRLEN curlen|STRLEN* retlen|U32 flags
1841Apd |U8* |uvchr_to_utf8 |U8 *d|UV uv
1842Apd |U8* |uvuni_to_utf8 |U8 *d|UV uv
cea2e8a9 1843p |void |vivify_defelem |SV* sv
1844p |void |vivify_ref |SV* sv|U32 to_what
d8a83dd3 1845p |I32 |wait4pid |Pid_t pid|int* statusp|int flags
bc37a18f 1846p |void |report_evil_fh |GV *gv|IO *io|I32 op
645c22ef 1847pd |void |report_uninit
954c1994 1848Afpd |void |warn |const char* pat|...
1849Ap |void |vwarn |const char* pat|va_list* args
1850Afp |void |warner |U32 err|const char* pat|...
1851Ap |void |vwarner |U32 err|const char* pat|va_list* args
cea2e8a9 1852p |void |watch |char** addr
412d7f2a 1853Ap |I32 |whichsig |char* sig
cea2e8a9 1854p |int |yyerror |char* s
dba4d153 1855#ifdef USE_PURE_BISON
1856p |int |yylex_r |YYSTYPE *lvalp|int *lcharp
cea2e8a9 1857#endif
48cf72c8 1858p |int |yylex
cea2e8a9 1859p |int |yyparse
1860p |int |yywarn |char* s
1861#if defined(MYMALLOC)
954c1994 1862Ap |void |dump_mstats |char* s
827e134a 1863Ap |int |get_mstats |perl_mstats_t *buf|int buflen|int level
cea2e8a9 1864#endif
954c1994 1865Anp |Malloc_t|safesysmalloc |MEM_SIZE nbytes
1866Anp |Malloc_t|safesyscalloc |MEM_SIZE elements|MEM_SIZE size
1867Anp |Malloc_t|safesysrealloc|Malloc_t where|MEM_SIZE nbytes
1868Anp |Free_t |safesysfree |Malloc_t where
cea2e8a9 1869#if defined(LEAKTEST)
954c1994 1870Anp |Malloc_t|safexmalloc |I32 x|MEM_SIZE size
1871Anp |Malloc_t|safexcalloc |I32 x|MEM_SIZE elements|MEM_SIZE size
1872Anp |Malloc_t|safexrealloc |Malloc_t where|MEM_SIZE size
1873Anp |void |safexfree |Malloc_t where
cea2e8a9 1874#endif
1875#if defined(PERL_GLOBAL_STRUCT)
954c1994 1876Ap |struct perl_vars *|GetVars
cea2e8a9 1877#endif
954c1994 1878Ap |int |runops_standard
1879Ap |int |runops_debug
4d1ff10f 1880#if defined(USE_5005THREADS)
4755096e 1881Ap |SV* |sv_lock |SV *sv
1882#endif
954c1994 1883Afpd |void |sv_catpvf_mg |SV *sv|const char* pat|...
1884Ap |void |sv_vcatpvf_mg |SV* sv|const char* pat|va_list* args
1885Apd |void |sv_catpv_mg |SV *sv|const char *ptr
1886Apd |void |sv_catpvn_mg |SV *sv|const char *ptr|STRLEN len
1887Apd |void |sv_catsv_mg |SV *dstr|SV *sstr
1888Afpd |void |sv_setpvf_mg |SV *sv|const char* pat|...
1889Ap |void |sv_vsetpvf_mg |SV* sv|const char* pat|va_list* args
1890Apd |void |sv_setiv_mg |SV *sv|IV i
1891Apd |void |sv_setpviv_mg |SV *sv|IV iv
1892Apd |void |sv_setuv_mg |SV *sv|UV u
1893Apd |void |sv_setnv_mg |SV *sv|NV num
1894Apd |void |sv_setpv_mg |SV *sv|const char *ptr
1895Apd |void |sv_setpvn_mg |SV *sv|const char *ptr|STRLEN len
1896Apd |void |sv_setsv_mg |SV *dstr|SV *sstr
1897Apd |void |sv_usepvn_mg |SV *sv|char *ptr|STRLEN len
1898Ap |MGVTBL*|get_vtbl |int vtbl_id
e6abe6d8 1899p |char* |pv_display |SV *dsv|char *pv|STRLEN cur|STRLEN len \
cea2e8a9 1900 |STRLEN pvlim
e6abe6d8 1901p |char* |sv_uni_display |SV *dsv|SV *ssv|STRLEN pvlim
954c1994 1902Afp |void |dump_indent |I32 level|PerlIO *file|const char* pat|...
1903Ap |void |dump_vindent |I32 level|PerlIO *file|const char* pat \
c5be433b 1904 |va_list *args
954c1994 1905Ap |void |do_gv_dump |I32 level|PerlIO *file|char *name|GV *sv
1906Ap |void |do_gvgv_dump |I32 level|PerlIO *file|char *name|GV *sv
1907Ap |void |do_hv_dump |I32 level|PerlIO *file|char *name|HV *sv
1908Ap |void |do_magic_dump |I32 level|PerlIO *file|MAGIC *mg|I32 nest \
cea2e8a9 1909 |I32 maxnest|bool dumpops|STRLEN pvlim
954c1994 1910Ap |void |do_op_dump |I32 level|PerlIO *file|OP *o
1911Ap |void |do_pmop_dump |I32 level|PerlIO *file|PMOP *pm
1912Ap |void |do_sv_dump |I32 level|PerlIO *file|SV *sv|I32 nest \
cea2e8a9 1913 |I32 maxnest|bool dumpops|STRLEN pvlim
954c1994 1914Ap |void |magic_dump |MAGIC *mg
14dd3ad8 1915#if defined(PERL_FLEXIBLE_EXCEPTIONS)
954c1994 1916Ap |void* |default_protect|volatile JMPENV *je|int *excpt \
db36c5a1 1917 |protect_body_t body|...
954c1994 1918Ap |void* |vdefault_protect|volatile JMPENV *je|int *excpt \
db36c5a1 1919 |protect_body_t body|va_list *args
14dd3ad8 1920#endif
954c1994 1921Ap |void |reginitcolors
645c22ef 1922Apd |char* |sv_2pv_nolen |SV* sv
1923Apd |char* |sv_2pvutf8_nolen|SV* sv
1924Apd |char* |sv_2pvbyte_nolen|SV* sv
451be7b1 1925Apd |char* |sv_pv |SV *sv
645c22ef 1926Apd |char* |sv_pvutf8 |SV *sv
1927Apd |char* |sv_pvbyte |SV *sv
5e26c890 1928Apd |STRLEN |sv_utf8_upgrade|SV *sv
4411f3b6 1929ApdM |bool |sv_utf8_downgrade|SV *sv|bool fail_ok
1930Apd |void |sv_utf8_encode |SV *sv
1931ApdM |bool |sv_utf8_decode |SV *sv
645c22ef 1932Apd |void |sv_force_normal|SV *sv
1933Apd |void |sv_force_normal_flags|SV *sv|U32 flags
954c1994 1934Ap |void |tmps_grow |I32 n
c461cf8f 1935Apd |SV* |sv_rvweaken |SV *sv
cea2e8a9 1936p |int |magic_killbackrefs|SV *sv|MAGIC *mg
954c1994 1937Ap |OP* |newANONATTRSUB |I32 floor|OP *proto|OP *attrs|OP *block
1938Ap |CV* |newATTRSUB |I32 floor|OP *o|OP *proto|OP *attrs|OP *block
1939Ap |void |newMYSUB |I32 floor|OP *o|OP *proto|OP *attrs|OP *block
09bef843 1940p |OP * |my_attrs |OP *o|OP *attrs
1941p |void |boot_core_xsutils
1d7c1841 1942#if defined(USE_ITHREADS)
8cf8f3d1 1943Ap |PERL_CONTEXT*|cx_dup |PERL_CONTEXT* cx|I32 ix|I32 max|CLONE_PARAMS* param
1944Ap |PERL_SI*|si_dup |PERL_SI* si|CLONE_PARAMS* param
1945Ap |ANY* |ss_dup |PerlInterpreter* proto_perl|CLONE_PARAMS* param
954c1994 1946Ap |void* |any_dup |void* v|PerlInterpreter* proto_perl
8cf8f3d1 1947Ap |HE* |he_dup |HE* e|bool shared|CLONE_PARAMS* param
1948Ap |REGEXP*|re_dup |REGEXP* r|CLONE_PARAMS* param
1949Ap |PerlIO*|fp_dup |PerlIO* fp|char type|CLONE_PARAMS* param
954c1994 1950Ap |DIR* |dirp_dup |DIR* dp
8cf8f3d1 1951Ap |GP* |gp_dup |GP* gp|CLONE_PARAMS* param
1952Ap |MAGIC* |mg_dup |MAGIC* mg|CLONE_PARAMS* param
1953Ap |SV* |sv_dup |SV* sstr|CLONE_PARAMS* param
1d7c1841 1954#if defined(HAVE_INTERP_INTERN)
954c1994 1955Ap |void |sys_intern_dup |struct interp_intern* src \
1d7c1841 1956 |struct interp_intern* dst
1957#endif
954c1994 1958Ap |PTR_TBL_t*|ptr_table_new
1959Ap |void* |ptr_table_fetch|PTR_TBL_t *tbl|void *sv
1960Ap |void |ptr_table_store|PTR_TBL_t *tbl|void *oldsv|void *newsv
1961Ap |void |ptr_table_split|PTR_TBL_t *tbl
a0739874 1962Ap |void |ptr_table_clear|PTR_TBL_t *tbl
1963Ap |void |ptr_table_free|PTR_TBL_t *tbl
1d7c1841 1964#endif
3dbbd0f5 1965#if defined(HAVE_INTERP_INTERN)
1966Ap |void |sys_intern_clear
1967Ap |void |sys_intern_init
1968#endif
19e8ce8e 1969
53e06cf0 1970Ap |char * |custom_op_name|OP* op
1971Ap |char * |custom_op_desc|OP* op
19e8ce8e 1972
cea2e8a9 1973
1d7c1841 1974END_EXTERN_C
1d7c1841 1975
0cb96387 1976#if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
cea2e8a9 1977s |I32 |avhv_index_sv |SV* sv
10c8fecd 1978s |I32 |avhv_index |AV* av|SV* sv|U32 hash
cea2e8a9 1979#endif
1980
0cb96387 1981#if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT)
036b4402 1982s |I32 |do_trans_simple |SV *sv
1983s |I32 |do_trans_count |SV *sv
1984s |I32 |do_trans_complex |SV *sv
1985s |I32 |do_trans_simple_utf8 |SV *sv
1986s |I32 |do_trans_count_utf8 |SV *sv
1987s |I32 |do_trans_complex_utf8 |SV *sv
cea2e8a9 1988#endif
1989
0cb96387 1990#if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT)
cea2e8a9 1991s |void |gv_init_sv |GV *gv|I32 sv_type
d2c93421 1992s |void |require_errno |GV *gv
cea2e8a9 1993#endif
1994
0cb96387 1995#if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
cea2e8a9 1996s |void |hsplit |HV *hv
1997s |void |hfreeentries |HV *hv
1998s |void |more_he
1999s |HE* |new_he
2000s |void |del_he |HE *p
2001s |HEK* |save_hek |const char *str|I32 len|U32 hash
2002s |void |hv_magic_check |HV *hv|bool *needs_copy|bool *needs_store
2003#endif
2004
0cb96387 2005#if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT)
8fb26106 2006s |void |save_magic |I32 mgs_ix|SV *sv
cea2e8a9 2007s |int |magic_methpack |SV *sv|MAGIC *mg|char *meth
2008s |int |magic_methcall |SV *sv|MAGIC *mg|char *meth|I32 f \
2009 |int n|SV *val
cea2e8a9 2010#endif
2011
0cb96387 2012#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
cea2e8a9 2013s |I32 |list_assignment|OP *o
2014s |void |bad_type |I32 n|char *t|char *name|OP *kid
3eb57f73 2015s |void |cop_free |COP *cop
cea2e8a9 2016s |OP* |modkids |OP *o|I32 type
2017s |void |no_bareword_allowed|OP *o
2018s |OP* |no_fh_allowed |OP *o
2019s |OP* |scalarboolean |OP *o
2020s |OP* |too_few_arguments|OP *o|char* name
2021s |OP* |too_many_arguments|OP *o|char* name
94f23f41 2022s |PADOFFSET|pad_addlex |SV* name
cea2e8a9 2023s |PADOFFSET|pad_findlex |char* name|PADOFFSET newoff|U32 seq \
2024 |CV* startcv|I32 cx_ix|I32 saweval|U32 flags
2025s |OP* |newDEFSVOP
2026s |OP* |new_logop |I32 type|I32 flags|OP **firstp|OP **otherp
2027s |void |simplify_sort |OP *o
2028s |bool |is_handle_constructor |OP *o|I32 argnum
2029s |char* |gv_ename |GV *gv
9cbac4c7 2030# if defined(DEBUG_CLOSURES)
1d7c1841 2031s |void |cv_dump |CV *cv
9cbac4c7 2032# endif
cea2e8a9 2033s |CV* |cv_clone2 |CV *proto|CV *outside
2034s |bool |scalar_mod_type|OP *o|I32 type
09bef843 2035s |OP * |my_kid |OP *o|OP *attrs
2036s |OP * |dup_attrlist |OP *o
2037s |void |apply_attrs |HV *stash|SV *target|OP *attrs
cea2e8a9 2038# if defined(PL_OP_SLAB_ALLOC)
2039s |void* |Slab_Alloc |int m|size_t sz
2040# endif
2041#endif
2042
0cb96387 2043#if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
cea2e8a9 2044s |void |find_beginning
2045s |void |forbid_setid |char *
9c8a64f0 2046s |void |incpush |char *|int|int
cea2e8a9 2047s |void |init_interp
2048s |void |init_ids
cea2e8a9 2049s |void |init_lexer
2050s |void |init_main_stash
2051s |void |init_perllib
2052s |void |init_postdump_symbols|int|char **|char **
2053s |void |init_predump_symbols
2054rs |void |my_exit_jump
2055s |void |nuke_stacks
2056s |void |open_script |char *|bool|SV *|int *fd
2057s |void |usage |char *
2058s |void |validate_suid |char *|char*|int
cea2e8a9 2059# if defined(IAMSUID)
2060s |int |fd_on_nosuid_fs|int fd
2061# endif
14dd3ad8 2062s |void* |parse_body |char **env|XSINIT_t xsinit
2063s |void* |run_body |I32 oldscope
2064s |void |call_body |OP *myop|int is_eval
2065s |void* |call_list_body |CV *cv
2066#if defined(PERL_FLEXIBLE_EXCEPTIONS)
2067s |void* |vparse_body |va_list args
2068s |void* |vrun_body |va_list args
2069s |void* |vcall_body |va_list args
2070s |void* |vcall_list_body|va_list args
2071#endif
4d1ff10f 2072# if defined(USE_5005THREADS)
cea2e8a9 2073s |struct perl_thread * |init_main_thread
2074# endif
2075#endif
2076
0cb96387 2077#if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
cea2e8a9 2078s |SV* |refto |SV* sv
2079s |U32 |seed
a6ec74c1 2080#endif
2081
2082#if defined(PERL_IN_PP_PACK_C) || defined(PERL_DECL_PROT)
2083s |void |doencodes |SV* sv|char* s|I32 len
cea2e8a9 2084s |SV* |mul128 |SV *sv|U8 m
2085s |SV* |is_an_int |char *s|STRLEN l
2086s |int |div128 |SV *pnum|bool *done
2087#endif
2088
0cb96387 2089#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
cea2e8a9 2090s |OP* |docatch |OP *o
14dd3ad8 2091s |void* |docatch_body
2092#if defined(PERL_FLEXIBLE_EXCEPTIONS)
2093s |void* |vdocatch_body |va_list args
2094#endif
cea2e8a9 2095s |OP* |dofindlabel |OP *o|char *label|OP **opstack|OP **oplimit
2096s |void |doparseform |SV *sv
2097s |I32 |dopoptoeval |I32 startingblock
2098s |I32 |dopoptolabel |char *label
2099s |I32 |dopoptoloop |I32 startingblock
2100s |I32 |dopoptosub |I32 startingblock
2101s |I32 |dopoptosub_at |PERL_CONTEXT* cxstk|I32 startingblock
cea2e8a9 2102s |void |save_lines |AV *array|SV *sv
2103s |OP* |doeval |int gimme|OP** startop
2104s |PerlIO *|doopen_pmc |const char *name|const char *mode
cea2e8a9 2105#endif
2106
0cb96387 2107#if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
10c8fecd 2108s |int |do_maybe_phash |AV *ary|SV **lelem|SV **firstlelem \
2109 |SV **relem|SV **lastrelem
2110s |void |do_oddball |HV *hash|SV **relem|SV **firstrelem
cea2e8a9 2111s |CV* |get_db_sub |SV **svp|CV *cv
f5d5a27c 2112s |SV* |method_common |SV* meth|U32* hashp
cea2e8a9 2113#endif
2114
0cb96387 2115#if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
cea2e8a9 2116s |OP* |doform |CV *cv|GV *gv|OP *retop
7f4774ae 2117s |int |emulate_eaccess|const char* path|Mode_t mode
cea2e8a9 2118# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
2119s |int |dooneliner |char *cmd|char *filename
2120# endif
2121#endif
2122
0cb96387 2123#if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT)
830247a4 2124s |regnode*|reg |struct RExC_state_t*|I32|I32 *
2125s |regnode*|reganode |struct RExC_state_t*|U8|U32
2126s |regnode*|regatom |struct RExC_state_t*|I32 *
2127s |regnode*|regbranch |struct RExC_state_t*|I32 *|I32
2128s |void |reguni |struct RExC_state_t*|UV|char *|STRLEN*
2129s |regnode*|regclass |struct RExC_state_t*
cea2e8a9 2130s |I32 |regcurly |char *
830247a4 2131s |regnode*|reg_node |struct RExC_state_t*|U8
2132s |regnode*|regpiece |struct RExC_state_t*|I32 *
2133s |void |reginsert |struct RExC_state_t*|U8|regnode *
2134s |void |regoptail |struct RExC_state_t*|regnode *|regnode *
2135s |void |regtail |struct RExC_state_t*|regnode *|regnode *
cea2e8a9 2136s |char*|regwhite |char *|char *
830247a4 2137s |char*|nextchar |struct RExC_state_t*
8fa7f367 2138# ifdef DEBUGGING
cea2e8a9 2139s |regnode*|dumpuntil |regnode *start|regnode *node \
2140 |regnode *last|SV* sv|I32 l
1d7c1841 2141s |void |put_byte |SV* sv|int c
8fa7f367 2142# endif
830247a4 2143s |void |scan_commit |struct RExC_state_t*|struct scan_data_t *data
2144s |void |cl_anything |struct RExC_state_t*|struct regnode_charclass_class *cl
1d7c1841 2145s |int |cl_is_anything |struct regnode_charclass_class *cl
830247a4 2146s |void |cl_init |struct RExC_state_t*|struct regnode_charclass_class *cl
2147s |void |cl_init_zero |struct RExC_state_t*|struct regnode_charclass_class *cl
1d7c1841 2148s |void |cl_and |struct regnode_charclass_class *cl \
2149 |struct regnode_charclass_class *and_with
830247a4 2150s |void |cl_or |struct RExC_state_t*|struct regnode_charclass_class *cl \
1d7c1841 2151 |struct regnode_charclass_class *or_with
830247a4 2152s |I32 |study_chunk |struct RExC_state_t*|regnode **scanp|I32 *deltap \
82ba1be6 2153 |regnode *last|struct scan_data_t *data \
2154 |U32 flags
830247a4 2155s |I32 |add_data |struct RExC_state_t*|I32 n|char *s
cea2e8a9 2156rs |void|re_croak2 |const char* pat1|const char* pat2|...
830247a4 2157s |I32 |regpposixcc |struct RExC_state_t*|I32 value
2158s |void |checkposixcc |struct RExC_state_t*
cea2e8a9 2159#endif
2160
0cb96387 2161#if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT)
cea2e8a9 2162s |I32 |regmatch |regnode *prog
2163s |I32 |regrepeat |regnode *p|I32 max
2164s |I32 |regrepeat_hard |regnode *p|I32 max|I32 *lp
2165s |I32 |regtry |regexp *prog|char *startpos
7ea3cd40 2166s |bool |reginclass |regnode *n|U8 *p|bool do_utf8sv_is_utf8
cea2e8a9 2167s |CHECKPOINT|regcppush |I32 parenfloor
2168s |char*|regcppop
2169s |char*|regcp_set_to |I32 ss
2170s |void |cache_re |regexp *prog
cea2e8a9 2171s |U8* |reghop |U8 *pos|I32 off
60aeb6fd 2172s |U8* |reghop3 |U8 *pos|I32 off|U8 *lim
cea2e8a9 2173s |U8* |reghopmaybe |U8 *pos|I32 off
60aeb6fd 2174s |U8* |reghopmaybe3 |U8 *pos|I32 off|U8 *lim
1d7c1841 2175s |char* |find_byclass |regexp * prog|regnode *c|char *s|char *strend|char *startpos|I32 norun
cea2e8a9 2176#endif
2177
0cb96387 2178#if defined(PERL_IN_RUN_C) || defined(PERL_DECL_PROT)
8fa7f367 2179# ifdef DEBUGGING
53a2efa2 2180s |CV* |deb_curcv |I32 ix
cea2e8a9 2181s |void |debprof |OP *o
8fa7f367 2182# endif
cea2e8a9 2183#endif
2184
0cb96387 2185#if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
cea2e8a9 2186s |SV* |save_scalar_at |SV **sptr
2187#endif
2188
5961b034 2189#if defined(USE_ITHREADS)
cd1ee231 2190Adp |void |sharedsv_init
0776ebf0 2191Adp |shared_sv* |sharedsv_new
2192Adp |shared_sv* |sharedsv_find |SV* sv
2193Adp |void |sharedsv_lock |shared_sv* ssv
2194Adp |void |sharedsv_unlock |shared_sv* ssv
2195p |void |sharedsv_unlock_scope |shared_sv* ssv
cd1ee231 2196Adp |void |sharedsv_thrcnt_inc |shared_sv* ssv
2197Adp |void |sharedsv_thrcnt_dec |shared_sv* ssv
2198#endif
2199
0cb96387 2200#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
cea2e8a9 2201s |IV |asIV |SV* sv
2202s |UV |asUV |SV* sv
2203s |SV* |more_sv
2204s |void |more_xiv
2205s |void |more_xnv
2206s |void |more_xpv
932e9ff9 2207s |void |more_xpviv
2208s |void |more_xpvnv
2209s |void |more_xpvcv
2210s |void |more_xpvav
2211s |void |more_xpvhv
2212s |void |more_xpvmg
2213s |void |more_xpvlv
2214s |void |more_xpvbm
cea2e8a9 2215s |void |more_xrv
2216s |XPVIV* |new_xiv
2217s |XPVNV* |new_xnv
2218s |XPV* |new_xpv
932e9ff9 2219s |XPVIV* |new_xpviv
2220s |XPVNV* |new_xpvnv
2221s |XPVCV* |new_xpvcv
2222s |XPVAV* |new_xpvav
2223s |XPVHV* |new_xpvhv
2224s |XPVMG* |new_xpvmg
2225s |XPVLV* |new_xpvlv
2226s |XPVBM* |new_xpvbm
cea2e8a9 2227s |XRV* |new_xrv
2228s |void |del_xiv |XPVIV* p
2229s |void |del_xnv |XPVNV* p
2230s |void |del_xpv |XPV* p
932e9ff9 2231s |void |del_xpviv |XPVIV* p
2232s |void |del_xpvnv |XPVNV* p
2233s |void |del_xpvcv |XPVCV* p
2234s |void |del_xpvav |XPVAV* p
2235s |void |del_xpvhv |XPVHV* p
2236s |void |del_xpvmg |XPVMG* p
2237s |void |del_xpvlv |XPVLV* p
2238s |void |del_xpvbm |XPVBM* p
cea2e8a9 2239s |void |del_xrv |XRV* p
2240s |void |sv_unglob |SV* sv
cea2e8a9 2241s |void |not_a_number |SV *sv
5226ed68 2242s |I32 |visit |SVFUNC_t f
cea2e8a9 2243s |void |sv_add_backref |SV *tsv|SV *sv
2244s |void |sv_del_backref |SV *sv
8fa7f367 2245# ifdef DEBUGGING
cea2e8a9 2246s |void |del_sv |SV *p
2247# endif
28e5dec8 2248# if !defined(NV_PRESERVES_UV)
28e5dec8 2249s |int |sv_2iuv_non_preserve |SV *sv|I32 numtype
2250# endif
6b1bfb71 2251s |I32 |expect_number |char** pattern
9cbac4c7 2252#
2253# if defined(USE_ITHREADS)
2254s |SV* |gv_share |SV *sv
2255# endif
cea2e8a9 2256#endif
2257
0cb96387 2258#if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
cea2e8a9 2259s |void |check_uni
2260s |void |force_next |I32 type
e759cc13 2261s |char* |force_version |char *start|int guessing
cea2e8a9 2262s |char* |force_word |char *start|int token|int check_keyword \
2263 |int allow_pack|int allow_tick
2264s |SV* |tokeq |SV *sv
8eceec63 2265s |int |pending_ident
cea2e8a9 2266s |char* |scan_const |char *start
2267s |char* |scan_formline |char *s
2268s |char* |scan_heredoc |char *s
2269s |char* |scan_ident |char *s|char *send|char *dest \
2270 |STRLEN destlen|I32 ck_uni
2271s |char* |scan_inputsymbol|char *start
2272s |char* |scan_pat |char *start|I32 type
09bef843 2273s |char* |scan_str |char *start|int keep_quoted|int keep_delims
cea2e8a9 2274s |char* |scan_subst |char *start
2275s |char* |scan_trans |char *start
2276s |char* |scan_word |char *s|char *dest|STRLEN destlen \
2277 |int allow_package|STRLEN *slp
2278s |char* |skipspace |char *s
78ae23f5 2279s |char* |swallow_bom |U8 *s
cea2e8a9 2280s |void |checkcomma |char *s|char *name|char *what
2281s |void |force_ident |char *s|int kind
2282s |void |incline |char *s
2283s |int |intuit_method |char *s|GV *gv
2284s |int |intuit_more |char *s
1d7c1841 2285s |I32 |lop |I32 f|int x|char *s
cea2e8a9 2286s |void |missingterm |char *s
2287s |void |no_op |char *what|char *s
2288s |void |set_csh
2289s |I32 |sublex_done
2290s |I32 |sublex_push
2291s |I32 |sublex_start
2292s |char * |filter_gets |SV *sv|PerlIO *fp|STRLEN append
def3634b 2293s |HV * |find_in_my_stash|char *pkgname|I32 len
1d7c1841 2294s |SV* |new_constant |char *s|STRLEN len|const char *key|SV *sv \
2295 |SV *pv|const char *type
8fa7f367 2296# if defined(DEBUGGING)
998054bd 2297s |void |tokereport |char *thing|char *s|I32 rv
8fa7f367 2298# endif
cea2e8a9 2299s |int |ao |int toketype
2300s |void |depcom
2301s |char* |incl_perldb
155aba94 2302#if 0
cea2e8a9 2303s |I32 |utf16_textfilter|int idx|SV *sv|int maxlen
2304s |I32 |utf16rev_textfilter|int idx|SV *sv|int maxlen
155aba94 2305#endif
cea2e8a9 2306# if defined(CRIPPLED_CC)
2307s |int |uni |I32 f|char *s
2308# endif
c39cd008 2309# if defined(PERL_CR_FILTER)
2310s |I32 |cr_textfilter |int idx|SV *sv|int maxlen
cea2e8a9 2311# endif
2312#endif
2313
0cb96387 2314#if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
cea2e8a9 2315s |SV*|isa_lookup |HV *stash|const char *name|int len|int level
2316#endif
2317
2d31dd6a 2318#if defined(PERL_IN_LOCALE_C) || defined(PERL_DECL_PROT)
ff4fed7c 2319s |char* |stdize_locale |char* locs
2d31dd6a 2320#endif
2321
2322#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
ae7d165c 2323s |COP* |closest_cop |COP *cop|OP *o
cea2e8a9 2324s |SV* |mess_alloc
cea2e8a9 2325# if defined(LEAKTEST)
2326s |void |xstat |int
2327# endif
2328#endif
1d7c1841 2329
902f5b58 2330START_EXTERN_C
2331
8d6d96c1 2332Apd |void |sv_setsv_flags |SV* dsv|SV* ssv|I32 flags
2333Apd |void |sv_catpvn_flags|SV* sv|const char* ptr|STRLEN len|I32 flags
2334Apd |void |sv_catsv_flags |SV* dsv|SV* ssv|I32 flags
2335Apd |STRLEN |sv_utf8_upgrade_flags|SV *sv|I32 flags
2336Apd |char* |sv_pvn_force_flags|SV* sv|STRLEN* lp|I32 flags
645c22ef 2337Apd |char* |sv_2pv_flags |SV* sv|STRLEN* lp|I32 flags
1f727ac0 2338Ap |char* |my_atof2 |const char *s|NV* value
902f5b58 2339
2340END_EXTERN_C
2341