This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Changes.
[perl5.git] / embed.pl
CommitLineData
5f05dabc 1#!/usr/bin/perl -w
e50aee73 2
954c1994
GS
3require 5.003; # keep this compatible, an old perl is all we may have before
4 # we build the new one
5f05dabc 5
cea2e8a9
GS
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
GS
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
GS
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
PP
48 my @outs = &{$function}(@args);
49 print $F @outs; # $function->(@args) is not 5.003
cea2e8a9
GS
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
GS
107my $wrote_protected = 0;
108
cea2e8a9
GS
109sub write_protos {
110 my $ret = "";
111 if (@_ == 1) {
112 my $arg = shift;
1d7c1841 113 $ret .= "$arg\n";
cea2e8a9
GS
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
GS
123 if ($flags =~ /p/) {
124 $func = "Perl_$func";
125 }
cea2e8a9
GS
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
GS
146 $ret .= "\n#endif\n";
147 }
cea2e8a9
GS
148 $ret .= ";\n";
149 }
150 $ret;
151}
152
954c1994 153# generates global.sym (API export list), and populates %global with global symbols
cea2e8a9
GS
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
GS
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
GS
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
GS
196 defgv
197 errgv
3070f6ec
GS
198 rsfp_filters
199 perldb
709f4e38
GS
200 diehook
201 dirty
202 perl_destruct_level
ac634a9a 203 ppaddr
84fee439
NIS
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
GS
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
GS
223# Perl_pp_* and Perl_ck_* are in pp.sym
224readsyms my %ppsym, 'pp.sym';
5f05dabc 225
c6af7a1a
GS
226sub readvars(\%$$@) {
227 my ($syms, $file,$pre,$keep_pre) = @_;
d4cce5f1
NIS
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
GS
236 warn "duplicate symbol $sym while processing $file\n"
237 if exists $$syms{$sym};
51371543 238 $$syms{$sym} = $pre || 1;
d4cce5f1
NIS
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
PP
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
GS
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
GS
271}
272
d4cce5f1
NIS
273sub multon ($$$) {
274 my ($sym,$pre,$ptr) = @_;
3280af22 275 hide("PL_$sym", "($ptr$pre$sym)");
5f05dabc 276}
54aff467 277
d4cce5f1
NIS
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
AD
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
AD
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
GS
296/* provide binary compatible (but inconsistent) names */
297#if defined(PERL_BINCOMPAT_5005)
c0e79ee6
GS
298# define Perl_call_atexit perl_atexit
299# define Perl_eval_sv perl_eval_sv
300# define Perl_eval_pv perl_eval_pv
538feb02
GS
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
GS
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
GS
330#endif
331
22c35a8c 332/* Hide global symbols */
5f05dabc 333
cea2e8a9 334#if !defined(PERL_IMPLICIT_CONTEXT)
e50aee73 335
e50aee73
AD
336END
337
cea2e8a9
GS
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
GS
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
GS
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
AD
422}
423
e50aee73
AD
424print EM <<'END';
425
cea2e8a9 426#endif /* PERL_IMPLICIT_CONTEXT */
22c35a8c
GS
427
428END
429
22c35a8c
GS
430print EM <<'END';
431
cea2e8a9
GS
432/* Compatibility stubs. Compile extensions with -DPERL_NOCOMPAT to
433 disable them.
434 */
435
538feb02 436#if !defined(PERL_CORE)
5bc28da9
NIS
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
GS
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
GS
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
GS
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
GS
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
GS
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
GS
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
GS
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
GS
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
NIS
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
NIS
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
GS
525 and PERL_IMPLICIT_CONTEXT are supported:
526 1) none
527 2) MULTIPLICITY # supported for compatibility
528 3) MULTIPLICITY && PERL_IMPLICIT_CONTEXT
4d1ff10f
AB
529 4) USE_5005THREADS && PERL_IMPLICIT_CONTEXT
530 5) MULTIPLICITY && USE_5005THREADS && PERL_IMPLICIT_CONTEXT
54aff467
GS
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
GS
538#if defined(MULTIPLICITY)
539/* cases 2, 3 and 5 above */
cea2e8a9 540
54aff467
GS
541# if defined(PERL_IMPLICIT_CONTEXT)
542# define vTHX aTHX
543# else
544# define vTHX PERL_GET_INTERP
545# endif
cea2e8a9 546
e50aee73
AD
547END
548
d4cce5f1 549for $sym (sort keys %thread) {
54aff467 550 print EM multon($sym,'T','vTHX->');
d4cce5f1
NIS
551}
552
553print EM <<'END';
554
4d1ff10f 555# if defined(USE_5005THREADS)
54aff467 556/* case 5 above */
d4cce5f1
NIS
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
NIS
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
NIS
587}
588
589print EM <<'END';
590
acfe0abc 591# if defined(USE_5005THREADS)
54aff467 592/* case 4 above */
d4cce5f1
NIS
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
NIS
604
605END
606
607for $sym (sort keys %thread) {
54aff467 608 print EM multoff($sym,'T');
d4cce5f1
NIS
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
NIS
617
618END
619
620for $sym (sort keys %globvar) {
533c011a 621 print EM multon($sym,'G','PL_Vars.');
22239a37
NIS
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
NIS
636#endif /* PERL_GLOBAL_STRUCT */
637
85add8c2 638#ifdef PERL_POLLUTE /* disabled by default in 5.6.0 */
84fee439
NIS
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
NIS
649END
650
3fe35a81 651close(EM);
c6af7a1a 652
51371543
GS
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
GS
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
GS
665#ifndef __perlapi_h__
666#define __perlapi_h__
51371543 667
acfe0abc 668#if defined (MULTIPLICITY)
c5be433b 669
51371543
GS
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
GS
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
GS
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
GS
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
GS
729
730#endif /* PERL_NO_FORCE_LINK */
731
732#else /* !PERL_CORE */
51371543
GS
733
734EOT
735
4543f4c0 736foreach $sym (sort keys %intrp) {
6f4183fe
GS
737 print CAPIH bincompat_var('I',$sym);
738}
739
4543f4c0 740foreach $sym (sort keys %thread) {
6f4183fe
GS
741 print CAPIH bincompat_var('T',$sym);
742}
743
4543f4c0 744foreach $sym (sort keys %globvar) {
6f4183fe
GS
745 print CAPIH bincompat_var('G',$sym);
746}
747
748print CAPIH <<'EOT';
749
750#endif /* !PERL_CORE */
acfe0abc 751#endif /* MULTIPLICITY */
6f4183fe
GS
752
753#endif /* __perlapi_h__ */
754
755EOT
d98f61e7 756close CAPIH;
51371543
GS
757
758print CAPI <<'EOT';
1c846c1f 759/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
51371543
GS
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
GS
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
GS
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
GS
785
786#include "thrdvar.h"
787#include "intrpvar.h"
c5be433b
GS
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
GS
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
GS
808EOT
809
acfe0abc
GS
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
GS
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
GS
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
GS
833# autogenerate documentation from comments in source files
834
835my %apidocs;
836my %gutsdocs;
837my %docfuncs;
838
60ed1d8c
GS
839sub autodoc ($$) { # parse a file and extract documentation info
840 my($fh,$file) = @_;
497711e7 841 my($in, $doc, $line);
954c1994
GS
842FUNC:
843 while (defined($in = <$fh>)) {
497711e7 844 $line++;
954c1994
GS
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
GS
854 if ($doc =~ m:^\*/$:) {
855 warn "=cut missing? $file:$line:$doc";;
856 last DOC;
857 }
954c1994
GS
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
GS
864 }
865 else {
60ed1d8c 866 $gutsdocs{$name} = [$flags, $docs, $ret, $file, @args];
954c1994
GS
867 }
868 }
869 else {
60ed1d8c 870 $docfuncs{$name} = [$flags, $docs, $ret, $file, @args];
954c1994 871 }
497711e7
GS
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
GS
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
JH
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
GS
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
GS
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
GS
913 close F or die "Error closing $file: $!\n";
914}
915
916unlink "pod/perlapi.pod";
1c846c1f 917open (DOC, ">pod/perlapi.pod") or
954c1994
GS
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
GS
930 $apidocs{$func} = [$docref->[0] . 'A', $docref->[1], $retval,
931 $docref->[3], @args];
954c1994
GS
932 } else {
933 my $docref = delete $docfuncs{$func};
60ed1d8c
GS
934 $gutsdocs{$func} = [$docref->[0], $docref->[1], $retval,
935 $docref->[3], @args];
954c1994
GS
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
GS
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
NIS
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
GS
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
NIS
1002unlink "pod/perlintern.pod";
1003
1c846c1f 1004open(GUTS, ">pod/perlintern.pod") or
954c1994
GS
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
GS
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
GS
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
NIS
1032The autodocumentation system was originally added to the Perl core by
1033Benjamin Stuhl. Documentation is by whoever was kind enough to
954c1994
GS
1034document their functions.
1035
1036=head1 SEE ALSO
1037
1038perlguts(1), perlapi(1)
1039
1040END
1041
1042close GUTS;
1043
1044
cea2e8a9
GS
1045__END__
1046
1d7c1841
GS
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
GS
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
GS
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
GS
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
GS
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
GS
1070
1071START_EXTERN_C
1072
1073#if defined(PERL_IMPLICIT_SYS)
acfe0abc 1074Ano |PerlInterpreter* |perl_alloc_using \
1d7c1841
GS
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
GS
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
GS
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
GS
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
GS
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
GS
1108Anp |void* |get_context
1109Anp |void |set_context |void *thx
ba869deb 1110
1d7c1841
GS
1111END_EXTERN_C
1112
1113/* functions with flag 'n' should come before here */
1d7c1841 1114START_EXTERN_C
1d7c1841 1115# include "pp_proto.h"
954c1994
GS
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
GS
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
GS
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
GS
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
SC
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
GS
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
GS
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
GS
1146p |OP* |bind_match |I32 type|OP* left|OP* pat
1147p |OP* |block_end |I32 floor|OP* seq
954c1994 1148Ap |I32 |block_gimme
cea2e8a9
GS
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
GS
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
GS
1163#endif
1164p |OP* |convert |I32 optype|I32 flags|OP* o
954c1994
GS
1165Afprd |void |croak |const char* pat|...
1166Apr |void |vcroak |const char* pat|va_list* args
cea2e8a9 1167#if defined(PERL_IMPLICIT_CONTEXT)
954c1994
GS
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
GS
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
GS
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
GS
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
GS
1195p |char* |get_no_modify
1196p |U32* |get_opargs
954c1994 1197Ap |PPADDR_t*|get_ppaddr
cea2e8a9 1198p |I32 |cxinc
954c1994
GS
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
GS
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
GS
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
IZ
1236 |int rawmode|int rawperm|PerlIO *supplied_fp \
1237 |SV *svs|I32 num
a567e93b
NIS
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
GS
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
GS
1251p |void |do_vecset |SV* sv
1252p |void |do_vop |I32 optype|SV* sv|SV* left|SV* right
1253p |OP* |dofile |OP* term
954c1994
GS
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
GS
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
GS
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
GS
1272p |PADOFFSET|find_threadsv|const char *name
1273#endif
1274p |OP* |force_list |OP* arg
1275p |OP* |fold_constants |OP* arg
954c1994
GS
1276Afp |char* |form |const char* pat|...
1277Ap |char* |vform |const char* pat|va_list* args
1278Ap |void |free_tmps
cea2e8a9
GS
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
GS
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
GS
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
GS
1294Ap |GV* |gv_fetchfile |const char* name
1295Apd |GV* |gv_fetchmeth |HV* stash|const char* name|STRLEN len \
cea2e8a9 1296 |I32 level
954c1994
GS
1297Apd |GV* |gv_fetchmethod |HV* stash|const char* name
1298Apd |GV* |gv_fetchmethod_autoload|HV* stash|const char* name \
cea2e8a9 1299 |I32 autoload
954c1994
GS
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
GS
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
GS
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
GS
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
GS
1342Ap |bool |is_uni_alnum |U32 c
1343Ap |bool |is_uni_alnumc |U32 c
1344Ap |bool |is_uni_idfirst |U32 c
1345Ap |bool |is_uni_alpha |U32 c
1346Ap |bool |is_uni_ascii |U32 c
1347Ap |bool |is_uni_space |U32 c
1348Ap |bool |is_uni_cntrl |U32 c
1349Ap |bool |is_uni_graph |U32 c
1350Ap |bool |is_uni_digit |U32 c
1351Ap |bool |is_uni_upper |U32 c
1352Ap |bool |is_uni_lower |U32 c
1353Ap |bool |is_uni_print |U32 c
1354Ap |bool |is_uni_punct |U32 c
1355Ap |bool |is_uni_xdigit |U32 c
1356Ap |U32 |to_uni_upper |U32 c
1357Ap |U32 |to_uni_title |U32 c
1358Ap |U32 |to_uni_lower |U32 c
1359Ap |bool |is_uni_alnum_lc|U32 c
1360Ap |bool |is_uni_alnumc_lc|U32 c
1361Ap |bool |is_uni_idfirst_lc|U32 c
1362Ap |bool |is_uni_alpha_lc|U32 c
1363Ap |bool |is_uni_ascii_lc|U32 c
1364Ap |bool |is_uni_space_lc|U32 c
1365Ap |bool |is_uni_cntrl_lc|U32 c
1366Ap |bool |is_uni_graph_lc|U32 c
1367Ap |bool |is_uni_digit_lc|U32 c
1368Ap |bool |is_uni_upper_lc|U32 c
1369Ap |bool |is_uni_lower_lc|U32 c
1370Ap |bool |is_uni_print_lc|U32 c
1371Ap |bool |is_uni_punct_lc|U32 c
1372Ap |bool |is_uni_xdigit_lc|U32 c
1373Ap |U32 |to_uni_upper_lc|U32 c
1374Ap |U32 |to_uni_title_lc|U32 c
1375Ap |U32 |to_uni_lower_lc|U32 c
eebe1485
SC
1376Apd |STRLEN |is_utf8_char |U8 *p
1377Apd |bool |is_utf8_string |U8 *s|STRLEN len
954c1994
GS
1378Ap |bool |is_utf8_alnum |U8 *p
1379Ap |bool |is_utf8_alnumc |U8 *p
1380Ap |bool |is_utf8_idfirst|U8 *p
1381Ap |bool |is_utf8_alpha |U8 *p
1382Ap |bool |is_utf8_ascii |U8 *p
1383Ap |bool |is_utf8_space |U8 *p
1384Ap |bool |is_utf8_cntrl |U8 *p
1385Ap |bool |is_utf8_digit |U8 *p
1386Ap |bool |is_utf8_graph |U8 *p
1387Ap |bool |is_utf8_upper |U8 *p
1388Ap |bool |is_utf8_lower |U8 *p
1389Ap |bool |is_utf8_print |U8 *p
1390Ap |bool |is_utf8_punct |U8 *p
1391Ap |bool |is_utf8_xdigit |U8 *p
1392Ap |bool |is_utf8_mark |U8 *p
cea2e8a9
GS
1393p |OP* |jmaybe |OP* arg
1394p |I32 |keyword |char* d|I32 len
1be9d9c6 1395Ap |void |leave_scope |I32 base
cea2e8a9
GS
1396p |void |lex_end
1397p |void |lex_start |SV* line
1cadc447 1398Ap |void |op_null |OP* o
93c66552 1399p |void |op_clear |OP* o
cea2e8a9
GS
1400p |OP* |linklist |OP* o
1401p |OP* |list |OP* o
1402p |OP* |listkids |OP* o
7d3fb230 1403Apd |void |load_module|U32 flags|SV* name|SV* ver|...
e4783991 1404Ap |void |vload_module|U32 flags|SV* name|SV* ver|va_list* args
cea2e8a9 1405p |OP* |localize |OP* arg|I32 lexical
954c1994 1406Apd |I32 |looks_like_number|SV* sv
53305cf1
NC
1407Apd |UV |grok_bin |char* start|STRLEN* len|I32* flags|NV *result
1408Apd |UV |grok_hex |char* start|STRLEN* len|I32* flags|NV *result
dd5dc04f
JH
1409Apd |int |grok_number |const char *pv|STRLEN len|UV *valuep
1410Apd |bool |grok_numeric_radix|const char **sp|const char *send
53305cf1 1411Apd |UV |grok_oct |char* start|STRLEN* len|I32* flags|NV *result
cea2e8a9
GS
1412p |int |magic_clearenv |SV* sv|MAGIC* mg
1413p |int |magic_clear_all_env|SV* sv|MAGIC* mg
1414p |int |magic_clearpack|SV* sv|MAGIC* mg
1415p |int |magic_clearsig |SV* sv|MAGIC* mg
1416p |int |magic_existspack|SV* sv|MAGIC* mg
1417p |int |magic_freeregexp|SV* sv|MAGIC* mg
d460ef45 1418p |int |magic_freeovrld|SV* sv|MAGIC* mg
cea2e8a9
GS
1419p |int |magic_get |SV* sv|MAGIC* mg
1420p |int |magic_getarylen|SV* sv|MAGIC* mg
1421p |int |magic_getdefelem|SV* sv|MAGIC* mg
1422p |int |magic_getglob |SV* sv|MAGIC* mg
1423p |int |magic_getnkeys |SV* sv|MAGIC* mg
1424p |int |magic_getpack |SV* sv|MAGIC* mg
1425p |int |magic_getpos |SV* sv|MAGIC* mg
1426p |int |magic_getsig |SV* sv|MAGIC* mg
1427p |int |magic_getsubstr|SV* sv|MAGIC* mg
1428p |int |magic_gettaint |SV* sv|MAGIC* mg
1429p |int |magic_getuvar |SV* sv|MAGIC* mg
1430p |int |magic_getvec |SV* sv|MAGIC* mg
1431p |U32 |magic_len |SV* sv|MAGIC* mg
4d1ff10f 1432#if defined(USE_5005THREADS)
cea2e8a9
GS
1433p |int |magic_mutexfree|SV* sv|MAGIC* mg
1434#endif
1435p |int |magic_nextpack |SV* sv|MAGIC* mg|SV* key
1436p |U32 |magic_regdata_cnt|SV* sv|MAGIC* mg
1437p |int |magic_regdatum_get|SV* sv|MAGIC* mg
e4b89193 1438p |int |magic_regdatum_set|SV* sv|MAGIC* mg
cea2e8a9
GS
1439p |int |magic_set |SV* sv|MAGIC* mg
1440p |int |magic_setamagic|SV* sv|MAGIC* mg
1441p |int |magic_setarylen|SV* sv|MAGIC* mg
1442p |int |magic_setbm |SV* sv|MAGIC* mg
1443p |int |magic_setdbline|SV* sv|MAGIC* mg
1444#if defined(USE_LOCALE_COLLATE)
1445p |int |magic_setcollxfrm|SV* sv|MAGIC* mg
1446#endif
1447p |int |magic_setdefelem|SV* sv|MAGIC* mg
1448p |int |magic_setenv |SV* sv|MAGIC* mg
1449p |int |magic_setfm |SV* sv|MAGIC* mg
1450p |int |magic_setisa |SV* sv|MAGIC* mg
1451p |int |magic_setglob |SV* sv|MAGIC* mg
1452p |int |magic_setmglob |SV* sv|MAGIC* mg
1453p |int |magic_setnkeys |SV* sv|MAGIC* mg
1454p |int |magic_setpack |SV* sv|MAGIC* mg
1455p |int |magic_setpos |SV* sv|MAGIC* mg
1456p |int |magic_setsig |SV* sv|MAGIC* mg
1457p |int |magic_setsubstr|SV* sv|MAGIC* mg
1458p |int |magic_settaint |SV* sv|MAGIC* mg
1459p |int |magic_setuvar |SV* sv|MAGIC* mg
1460p |int |magic_setvec |SV* sv|MAGIC* mg
1461p |int |magic_set_all_env|SV* sv|MAGIC* mg
1462p |U32 |magic_sizepack |SV* sv|MAGIC* mg
1463p |int |magic_wipepack |SV* sv|MAGIC* mg
1464p |void |magicname |char* sym|char* name|I32 namlen
954c1994 1465Ap |void |markstack_grow
cea2e8a9
GS
1466#if defined(USE_LOCALE_COLLATE)
1467p |char* |mem_collxfrm |const char* s|STRLEN len|STRLEN* xlen
1468#endif
954c1994
GS
1469Afp |SV* |mess |const char* pat|...
1470Ap |SV* |vmess |const char* pat|va_list* args
5a844595 1471p |void |qerror |SV* err
954c1994
GS
1472Apd |int |mg_clear |SV* sv
1473Apd |int |mg_copy |SV* sv|SV* nsv|const char* key|I32 klen
1474Apd |MAGIC* |mg_find |SV* sv|int type
1475Apd |int |mg_free |SV* sv
1476Apd |int |mg_get |SV* sv
1477Apd |U32 |mg_length |SV* sv
1478Apd |void |mg_magical |SV* sv
1479Apd |int |mg_set |SV* sv
8fb26106 1480Ap |I32 |mg_size |SV* sv
b93ec261 1481Ap |void |mini_mktime |struct tm *pm
cea2e8a9 1482p |OP* |mod |OP* o|I32 type
16fe6d59 1483p |int |mode_from_discipline|SV* discp
1be9d9c6 1484Ap |char* |moreswitches |char* s
cea2e8a9 1485p |OP* |my |OP* o
954c1994 1486Ap |NV |my_atof |const char *s
2253333f 1487#if (!defined(HAS_MEMCPY) && !defined(HAS_BCOPY)) || (!defined(HAS_MEMMOVE) && !defined(HAS_SAFE_MEMCPY) && !defined(HAS_SAFE_BCOPY))
954c1994 1488Anp |char* |my_bcopy |const char* from|char* to|I32 len
cea2e8a9
GS
1489#endif
1490#if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
954c1994 1491Anp |char* |my_bzero |char* loc|I32 len
cea2e8a9 1492#endif
954c1994
GS
1493Apr |void |my_exit |U32 status
1494Apr |void |my_failure_exit
1495Ap |I32 |my_fflush_all
52e18b1f
GS
1496Anp |Pid_t |my_fork
1497Anp |void |atfork_lock
1498Anp |void |atfork_unlock
954c1994 1499Ap |I32 |my_lstat
cea2e8a9 1500#if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP)
954c1994 1501Anp |I32 |my_memcmp |const char* s1|const char* s2|I32 len
cea2e8a9
GS
1502#endif
1503#if !defined(HAS_MEMSET)
954c1994 1504Anp |void* |my_memset |char* loc|I32 ch|I32 len
cea2e8a9 1505#endif
954c1994
GS
1506Ap |I32 |my_pclose |PerlIO* ptr
1507Ap |PerlIO*|my_popen |char* cmd|char* mode
4a7d1889 1508Ap |PerlIO*|my_popen_list |char* mode|int n|SV ** args
954c1994
GS
1509Ap |void |my_setenv |char* nam|char* val
1510Ap |I32 |my_stat
b93ec261 1511Ap |char * |my_strftime |char *fmt|int sec|int min|int hour|int mday|int mon|int year|int wday|int yday|int isdst
cea2e8a9 1512#if defined(MYSWAP)
954c1994
GS
1513Ap |short |my_swap |short s
1514Ap |long |my_htonl |long l
1515Ap |long |my_ntohl |long l
cea2e8a9
GS
1516#endif
1517p |void |my_unexec
954c1994
GS
1518Ap |OP* |newANONLIST |OP* o
1519Ap |OP* |newANONHASH |OP* o
1520Ap |OP* |newANONSUB |I32 floor|OP* proto|OP* block
1521Ap |OP* |newASSIGNOP |I32 flags|OP* left|I32 optype|OP* right
1522Ap |OP* |newCONDOP |I32 flags|OP* expr|OP* trueop|OP* falseop
beab0874 1523Apd |CV* |newCONSTSUB |HV* stash|char* name|SV* sv
954c1994
GS
1524Ap |void |newFORM |I32 floor|OP* o|OP* block
1525Ap |OP* |newFOROP |I32 flags|char* label|line_t forline \
cea2e8a9 1526 |OP* sclr|OP* expr|OP*block|OP*cont
954c1994
GS
1527Ap |OP* |newLOGOP |I32 optype|I32 flags|OP* left|OP* right
1528Ap |OP* |newLOOPEX |I32 type|OP* label
1529Ap |OP* |newLOOPOP |I32 flags|I32 debuggable|OP* expr|OP* block
1530Ap |OP* |newNULLLIST
1531Ap |OP* |newOP |I32 optype|I32 flags
1532Ap |void |newPROG |OP* o
1533Ap |OP* |newRANGE |I32 flags|OP* left|OP* right
1534Ap |OP* |newSLICEOP |I32 flags|OP* subscript|OP* listop
1535Ap |OP* |newSTATEOP |I32 flags|char* label|OP* o
1536Ap |CV* |newSUB |I32 floor|OP* o|OP* proto|OP* block
1537Apd |CV* |newXS |char* name|XSUBADDR_t f|char* filename
1538Apd |AV* |newAV
1539Ap |OP* |newAVREF |OP* o
1540Ap |OP* |newBINOP |I32 type|I32 flags|OP* first|OP* last
1541Ap |OP* |newCVREF |I32 flags|OP* o
1542Ap |OP* |newGVOP |I32 type|I32 flags|GV* gv
1543Ap |GV* |newGVgen |char* pack
1544Ap |OP* |newGVREF |I32 type|OP* o
1545Ap |OP* |newHVREF |OP* o
1546Apd |HV* |newHV
1547Ap |HV* |newHVhv |HV* hv
1548Ap |IO* |newIO
1549Ap |OP* |newLISTOP |I32 type|I32 flags|OP* first|OP* last
1550Ap |OP* |newPADOP |I32 type|I32 flags|SV* sv
1551Ap |OP* |newPMOP |I32 type|I32 flags
1552Ap |OP* |newPVOP |I32 type|I32 flags|char* pv
1553Ap |SV* |newRV |SV* pref
1554Apd |SV* |newRV_noinc |SV *sv
451be7b1 1555Apd |SV* |newSV |STRLEN len
954c1994
GS
1556Ap |OP* |newSVREF |OP* o
1557Ap |OP* |newSVOP |I32 type|I32 flags|SV* sv
1558Apd |SV* |newSViv |IV i
1a3327fb 1559Apd |SV* |newSVuv |UV u
954c1994
GS
1560Apd |SV* |newSVnv |NV n
1561Apd |SV* |newSVpv |const char* s|STRLEN len
1562Apd |SV* |newSVpvn |const char* s|STRLEN len
c3654f1a 1563Apd |SV* |newSVpvn_share |const char* s|I32 len|U32 hash
954c1994
GS
1564Afpd |SV* |newSVpvf |const char* pat|...
1565Ap |SV* |vnewSVpvf |const char* pat|va_list* args
1566Apd |SV* |newSVrv |SV* rv|const char* classname
1567Apd |SV* |newSVsv |SV* old
1568Ap |OP* |newUNOP |I32 type|I32 flags|OP* first
1569Ap |OP* |newWHILEOP |I32 flags|I32 debuggable|LOOP* loop \
cea2e8a9 1570 |I32 whileline|OP* expr|OP* block|OP* cont
c5be433b 1571
1be9d9c6 1572Ap |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems
cea2e8a9 1573p |PerlIO*|nextargv |GV* gv
954c1994 1574Ap |char* |ninstr |const char* big|const char* bigend \
cea2e8a9
GS
1575 |const char* little|const char* lend
1576p |OP* |oopsCV |OP* o
1be9d9c6 1577Ap |void |op_free |OP* arg
cea2e8a9
GS
1578p |void |package |OP* o
1579p |PADOFFSET|pad_alloc |I32 optype|U32 tmptype
1580p |PADOFFSET|pad_allocmy |char* name
1581p |PADOFFSET|pad_findmy |char* name
1582p |OP* |oopsAV |OP* o
1583p |OP* |oopsHV |OP* o
1584p |void |pad_leavemy |I32 fill
1be9d9c6 1585Ap |SV* |pad_sv |PADOFFSET po
cea2e8a9
GS
1586p |void |pad_free |PADOFFSET po
1587p |void |pad_reset
1588p |void |pad_swipe |PADOFFSET po
1589p |void |peep |OP* o
ae154d6d 1590dopM |PerlIO*|start_glob |SV* pattern|IO *io
4d1ff10f 1591#if defined(USE_5005THREADS)
954c1994 1592Ap |struct perl_thread* |new_struct_thread|struct perl_thread *t
c5be433b 1593#endif
954c1994
GS
1594Ap |void |call_atexit |ATEXIT_t fn|void *ptr
1595Apd |I32 |call_argv |const char* sub_name|I32 flags|char** argv
1596Apd |I32 |call_method |const char* methname|I32 flags
1597Apd |I32 |call_pv |const char* sub_name|I32 flags
1598Apd |I32 |call_sv |SV* sv|I32 flags
ce08f86c 1599p |void |despatch_signals
954c1994
GS
1600Apd |SV* |eval_pv |const char* p|I32 croak_on_error
1601Apd |I32 |eval_sv |SV* sv|I32 flags
1602Apd |SV* |get_sv |const char* name|I32 create
1603Apd |AV* |get_av |const char* name|I32 create
1604Apd |HV* |get_hv |const char* name|I32 create
1605Apd |CV* |get_cv |const char* name|I32 create
1be9d9c6
GS
1606Ap |int |init_i18nl10n |int printwarn
1607Ap |int |init_i18nl14n |int printwarn
ff4fed7c
VK
1608Ap |void |new_collate |char* newcoll
1609Ap |void |new_ctype |char* newctype
1610Ap |void |new_numeric |char* newcoll
954c1994
GS
1611Ap |void |set_numeric_local
1612Ap |void |set_numeric_radix
1613Ap |void |set_numeric_standard
1614Apd |void |require_pv |const char* pv
d8a83dd3 1615p |void |pidgone |Pid_t pid|int status
1be9d9c6 1616Ap |void |pmflag |U16* pmfl|int ch
cea2e8a9
GS
1617p |OP* |pmruntime |OP* pm|OP* expr|OP* repl
1618p |OP* |pmtrans |OP* o|OP* expr|OP* repl
1619p |OP* |pop_return
954c1994 1620Ap |void |pop_scope
cea2e8a9
GS
1621p |OP* |prepend_elem |I32 optype|OP* head|OP* tail
1622p |void |push_return |OP* o
954c1994 1623Ap |void |push_scope
cea2e8a9
GS
1624p |OP* |ref |OP* o|I32 type
1625p |OP* |refkids |OP* o|I32 type
954c1994 1626Ap |void |regdump |regexp* r
7ea3cd40 1627Ap |SV* |regclass_swash |struct regnode *n|bool doinit|SV **initsvp
a86f0dc9 1628Ap |I32 |pregexec |regexp* prog|char* stringarg \
cea2e8a9
GS
1629 |char* strend|char* strbeg|I32 minend \
1630 |SV* screamer|U32 nosave
1be9d9c6
GS
1631Ap |void |pregfree |struct regexp* r
1632Ap |regexp*|pregcomp |char* exp|char* xend|PMOP* pm
1633Ap |char* |re_intuit_start|regexp* prog|SV* sv|char* strpos \
cad2e5aa
JH
1634 |char* strend|U32 flags \
1635 |struct re_scream_pos_data_s *data
1be9d9c6
GS
1636Ap |SV* |re_intuit_string|regexp* prog
1637Ap |I32 |regexec_flags |regexp* prog|char* stringarg \
cea2e8a9
GS
1638 |char* strend|char* strbeg|I32 minend \
1639 |SV* screamer|void* data|U32 flags
1be9d9c6 1640Ap |regnode*|regnext |regnode* p
cea2e8a9 1641p |void |regprop |SV* sv|regnode* o
1be9d9c6 1642Ap |void |repeatcpy |char* to|const char* from|I32 len|I32 count
954c1994 1643Ap |char* |rninstr |const char* big|const char* bigend \
cea2e8a9 1644 |const char* little|const char* lend
412d7f2a 1645Ap |Sighandler_t|rsignal |int i|Sighandler_t t
cea2e8a9
GS
1646p |int |rsignal_restore|int i|Sigsave_t* t
1647p |int |rsignal_save |int i|Sighandler_t t1|Sigsave_t* t2
76d48558 1648Ap |Sighandler_t|rsignal_state|int i
cea2e8a9
GS
1649p |void |rxres_free |void** rsp
1650p |void |rxres_restore |void** rsp|REGEXP* prx
1651p |void |rxres_save |void** rsp|REGEXP* prx
1652#if !defined(HAS_RENAME)
1653p |I32 |same_dirent |char* a|char* b
1654#endif
954c1994
GS
1655Apd |char* |savepv |const char* sv
1656Apd |char* |savepvn |const char* sv|I32 len
1657Ap |void |savestack_grow
1658Ap |void |save_aelem |AV* av|I32 idx|SV **sptr
1659Ap |I32 |save_alloc |I32 size|I32 pad
1660Ap |void |save_aptr |AV** aptr
1661Ap |AV* |save_ary |GV* gv
1662Ap |void |save_clearsv |SV** svp
1663Ap |void |save_delete |HV* hv|char* key|I32 klen
1664Ap |void |save_destructor|DESTRUCTORFUNC_NOCONTEXT_t f|void* p
1665Ap |void |save_destructor_x|DESTRUCTORFUNC_t f|void* p
1666Ap |void |save_freesv |SV* sv
cea2e8a9 1667p |void |save_freeop |OP* o
954c1994
GS
1668Ap |void |save_freepv |char* pv
1669Ap |void |save_generic_svref|SV** sptr
f4dd75d9 1670Ap |void |save_generic_pvref|char** str
954c1994
GS
1671Ap |void |save_gp |GV* gv|I32 empty
1672Ap |HV* |save_hash |GV* gv
1673Ap |void |save_helem |HV* hv|SV *key|SV **sptr
1674Ap |void |save_hints
1675Ap |void |save_hptr |HV** hptr
1676Ap |void |save_I16 |I16* intp
1677Ap |void |save_I32 |I32* intp
1678Ap |void |save_I8 |I8* bytep
1679Ap |void |save_int |int* intp
1680Ap |void |save_item |SV* item
1681Ap |void |save_iv |IV* iv
1682Ap |void |save_list |SV** sarg|I32 maxsarg
1683Ap |void |save_long |long* longp
26d9b02f 1684Ap |void |save_mortalizesv|SV* sv
954c1994 1685Ap |void |save_nogv |GV* gv
cea2e8a9 1686p |void |save_op
954c1994
GS
1687Ap |SV* |save_scalar |GV* gv
1688Ap |void |save_pptr |char** pptr
1689Ap |void |save_vptr |void* pptr
1690Ap |void |save_re_context
c3564e5c 1691Ap |void |save_padsv |PADOFFSET off
954c1994
GS
1692Ap |void |save_sptr |SV** sptr
1693Ap |SV* |save_svref |SV** sptr
1694Ap |SV** |save_threadsv |PADOFFSET i
cea2e8a9
GS
1695p |OP* |sawparens |OP* o
1696p |OP* |scalar |OP* o
1697p |OP* |scalarkids |OP* o
1698p |OP* |scalarseq |OP* o
1699p |OP* |scalarvoid |OP* o
53305cf1
NC
1700Apd |NV |scan_bin |char* start|STRLEN len|STRLEN* retlen
1701Apd |NV |scan_hex |char* start|STRLEN len|STRLEN* retlen
b73d6f50 1702Ap |char* |scan_num |char* s|YYSTYPE *lvalp
53305cf1 1703Apd |NV |scan_oct |char* start|STRLEN len|STRLEN* retlen
cea2e8a9 1704p |OP* |scope |OP* o
1be9d9c6 1705Ap |char* |screaminstr |SV* bigsv|SV* littlesv|I32 start_shift \
cea2e8a9
GS
1706 |I32 end_shift|I32 *state|I32 last
1707#if !defined(VMS)
1708p |I32 |setenv_getix |char* nam
1709#endif
1710p |void |setdefout |GV* gv
1be9d9c6 1711Ap |char* |sharepvn |const char* sv|I32 len|U32 hash
cea2e8a9
GS
1712p |HEK* |share_hek |const char* sv|I32 len|U32 hash
1713np |Signal_t |sighandler |int sig
954c1994
GS
1714Ap |SV** |stack_grow |SV** sp|SV**p|int n
1715Ap |I32 |start_subparse |I32 is_format|U32 flags
cea2e8a9 1716p |void |sub_crush_depth|CV* cv
645c22ef
DM
1717Apd |bool |sv_2bool |SV* sv
1718Apd |CV* |sv_2cv |SV* sv|HV** st|GV** gvp|I32 lref
1719Apd |IO* |sv_2io |SV* sv
1720Apd |IV |sv_2iv |SV* sv
954c1994 1721Apd |SV* |sv_2mortal |SV* sv
645c22ef 1722Apd |NV |sv_2nv |SV* sv
f3be10e5 1723Ap |char* |sv_2pv |SV* sv|STRLEN* lp
451be7b1
DM
1724Apd |char* |sv_2pvutf8 |SV* sv|STRLEN* lp
1725Apd |char* |sv_2pvbyte |SV* sv|STRLEN* lp
f3be10e5 1726Ap |char* |sv_pvn_nomg |SV* sv|STRLEN* lp
645c22ef
DM
1727Apd |UV |sv_2uv |SV* sv
1728Apd |IV |sv_iv |SV* sv
1729Apd |UV |sv_uv |SV* sv
1730Apd |NV |sv_nv |SV* sv
451be7b1 1731Apd |char* |sv_pvn |SV *sv|STRLEN *len
645c22ef
DM
1732Apd |char* |sv_pvutf8n |SV *sv|STRLEN *len
1733Apd |char* |sv_pvbyten |SV *sv|STRLEN *len
c461cf8f 1734Apd |I32 |sv_true |SV *sv
645c22ef
DM
1735pd |void |sv_add_arena |char* ptr|U32 size|U32 flags
1736Apd |int |sv_backoff |SV* sv
954c1994
GS
1737Apd |SV* |sv_bless |SV* sv|HV* stash
1738Afpd |void |sv_catpvf |SV* sv|const char* pat|...
1739Ap |void |sv_vcatpvf |SV* sv|const char* pat|va_list* args
1740Apd |void |sv_catpv |SV* sv|const char* ptr
f3be10e5
JH
1741Apd |void |sv_catpvn |SV* sv|const char* ptr|STRLEN len
1742Apd |void |sv_catsv |SV* dsv|SV* ssv
954c1994 1743Apd |void |sv_chop |SV* sv|char* ptr
645c22ef
DM
1744pd |I32 |sv_clean_all
1745pd |void |sv_clean_objs
c461cf8f 1746Apd |void |sv_clear |SV* sv
954c1994 1747Apd |I32 |sv_cmp |SV* sv1|SV* sv2
c461cf8f 1748Apd |I32 |sv_cmp_locale |SV* sv1|SV* sv2
cea2e8a9 1749#if defined(USE_LOCALE_COLLATE)
645c22ef 1750Apd |char* |sv_collxfrm |SV* sv|STRLEN* nxp
cea2e8a9 1751#endif
1be9d9c6 1752Ap |OP* |sv_compile_2op |SV* sv|OP** startp|char* code|AV** avp
89423764 1753Apd |int |getcwd_sv |SV* sv
954c1994
GS
1754Apd |void |sv_dec |SV* sv
1755Ap |void |sv_dump |SV* sv
1756Apd |bool |sv_derived_from|SV* sv|const char* name
1757Apd |I32 |sv_eq |SV* sv1|SV* sv2
c461cf8f 1758Apd |void |sv_free |SV* sv
645c22ef 1759pd |void |sv_free_arenas
c461cf8f 1760Apd |char* |sv_gets |SV* sv|PerlIO* fp|I32 append
954c1994
GS
1761Apd |char* |sv_grow |SV* sv|STRLEN newlen
1762Apd |void |sv_inc |SV* sv
1763Apd |void |sv_insert |SV* bigsv|STRLEN offset|STRLEN len \
cea2e8a9 1764 |char* little|STRLEN littlelen
954c1994
GS
1765Apd |int |sv_isa |SV* sv|const char* name
1766Apd |int |sv_isobject |SV* sv
1767Apd |STRLEN |sv_len |SV* sv
c461cf8f 1768Apd |STRLEN |sv_len_utf8 |SV* sv
954c1994 1769Apd |void |sv_magic |SV* sv|SV* obj|int how|const char* name \
cea2e8a9 1770 |I32 namlen
954c1994
GS
1771Apd |SV* |sv_mortalcopy |SV* oldsv
1772Apd |SV* |sv_newmortal
645c22ef 1773Apd |SV* |sv_newref |SV* sv
954c1994 1774Ap |char* |sv_peek |SV* sv
645c22ef
DM
1775Apd |void |sv_pos_u2b |SV* sv|I32* offsetp|I32* lenp
1776Apd |void |sv_pos_b2u |SV* sv|I32* offsetp
f3be10e5 1777Apd |char* |sv_pvn_force |SV* sv|STRLEN* lp
c461cf8f 1778Apd |char* |sv_pvutf8n_force|SV* sv|STRLEN* lp
645c22ef 1779Apd |char* |sv_pvbyten_force|SV* sv|STRLEN* lp
c461cf8f
JH
1780Apd |char* |sv_reftype |SV* sv|int ob
1781Apd |void |sv_replace |SV* sv|SV* nsv
645c22ef 1782Apd |void |sv_report_used
451be7b1 1783Apd |void |sv_reset |char* s|HV* stash
954c1994
GS
1784Afpd |void |sv_setpvf |SV* sv|const char* pat|...
1785Ap |void |sv_vsetpvf |SV* sv|const char* pat|va_list* args
1786Apd |void |sv_setiv |SV* sv|IV num
1787Apd |void |sv_setpviv |SV* sv|IV num
1788Apd |void |sv_setuv |SV* sv|UV num
1789Apd |void |sv_setnv |SV* sv|NV num
1790Apd |SV* |sv_setref_iv |SV* rv|const char* classname|IV iv
e1c57cef 1791Apd |SV* |sv_setref_uv |SV* rv|const char* classname|UV uv
954c1994
GS
1792Apd |SV* |sv_setref_nv |SV* rv|const char* classname|NV nv
1793Apd |SV* |sv_setref_pv |SV* rv|const char* classname|void* pv
1794Apd |SV* |sv_setref_pvn |SV* rv|const char* classname|char* pv \
cea2e8a9 1795 |STRLEN n
954c1994
GS
1796Apd |void |sv_setpv |SV* sv|const char* ptr
1797Apd |void |sv_setpvn |SV* sv|const char* ptr|STRLEN len
f3be10e5 1798Apd |void |sv_setsv |SV* dsv|SV* ssv
645c22ef 1799Apd |void |sv_taint |SV* sv
451be7b1 1800Apd |bool |sv_tainted |SV* sv
c461cf8f 1801Apd |int |sv_unmagic |SV* sv|int type
954c1994 1802Apd |void |sv_unref |SV* sv
840a7b70 1803Apd |void |sv_unref_flags |SV* sv|U32 flags
451be7b1 1804Apd |void |sv_untaint |SV* sv
954c1994
GS
1805Apd |bool |sv_upgrade |SV* sv|U32 mt
1806Apd |void |sv_usepvn |SV* sv|char* ptr|STRLEN len
1807Apd |void |sv_vcatpvfn |SV* sv|const char* pat|STRLEN patlen \
cea2e8a9 1808 |va_list* args|SV** svargs|I32 svmax \
5bc28da9 1809 |bool *maybe_tainted
954c1994 1810Apd |void |sv_vsetpvfn |SV* sv|const char* pat|STRLEN patlen \
cea2e8a9 1811 |va_list* args|SV** svargs|I32 svmax \
5bc28da9 1812 |bool *maybe_tainted
1571675a 1813Ap |NV |str_to_version |SV *sv
1be9d9c6 1814Ap |SV* |swash_init |char* pkg|char* name|SV* listsv \
cea2e8a9 1815 |I32 minbits|I32 none
3568d838 1816Ap |UV |swash_fetch |SV *sv|U8 *ptr|bool do_utf8
954c1994
GS
1817Ap |void |taint_env
1818Ap |void |taint_proper |const char* f|const char* s
1819Ap |UV |to_utf8_lower |U8 *p
1820Ap |UV |to_utf8_upper |U8 *p
1821Ap |UV |to_utf8_title |U8 *p
cea2e8a9 1822#if defined(UNLINK_ALL_VERSIONS)
954c1994 1823Ap |I32 |unlnk |char* f
cea2e8a9 1824#endif
4d1ff10f 1825#if defined(USE_5005THREADS)
1be9d9c6 1826Ap |void |unlock_condpair|void* svv
cea2e8a9 1827#endif
1be9d9c6 1828Ap |void |unsharepvn |const char* sv|I32 len|U32 hash
cea2e8a9
GS
1829p |void |unshare_hek |HEK* hek
1830p |void |utilize |int aver|I32 floor|OP* version|OP* id|OP* arg
dea0fc0b
JH
1831Ap |U8* |utf16_to_utf8 |U8* p|U8 *d|I32 bytelen|I32 *newlen
1832Ap |U8* |utf16_to_utf8_reversed|U8* p|U8 *d|I32 bytelen|I32 *newlen
eebe1485
SC
1833Adp |STRLEN |utf8_length |U8* s|U8 *e
1834Apd |IV |utf8_distance |U8 *a|U8 *b
1835Apd |U8* |utf8_hop |U8 *s|I32 off
1836ApMd |U8* |utf8_to_bytes |U8 *s|STRLEN *len
f9a63242 1837ApMd |U8* |bytes_from_utf8|U8 *s|STRLEN *len|bool *is_utf8
eebe1485 1838ApMd |U8* |bytes_to_utf8 |U8 *s|STRLEN *len
9041c2e3
NIS
1839Apd |UV |utf8_to_uvchr |U8 *s|STRLEN* retlen
1840Apd |UV |utf8_to_uvuni |U8 *s|STRLEN* retlen
1841Adp |UV |utf8n_to_uvchr |U8 *s|STRLEN curlen|STRLEN* retlen|U32 flags
1842Adp |UV |utf8n_to_uvuni |U8 *s|STRLEN curlen|STRLEN* retlen|U32 flags
1843Apd |U8* |uvchr_to_utf8 |U8 *d|UV uv
1844Apd |U8* |uvuni_to_utf8 |U8 *d|UV uv
cea2e8a9
GS
1845p |void |vivify_defelem |SV* sv
1846p |void |vivify_ref |SV* sv|U32 to_what
d8a83dd3 1847p |I32 |wait4pid |Pid_t pid|int* statusp|int flags
bc37a18f 1848p |void |report_evil_fh |GV *gv|IO *io|I32 op
645c22ef 1849pd |void |report_uninit
954c1994
GS
1850Afpd |void |warn |const char* pat|...
1851Ap |void |vwarn |const char* pat|va_list* args
1852Afp |void |warner |U32 err|const char* pat|...
1853Ap |void |vwarner |U32 err|const char* pat|va_list* args
cea2e8a9 1854p |void |watch |char** addr
412d7f2a 1855Ap |I32 |whichsig |char* sig
cea2e8a9 1856p |int |yyerror |char* s
dba4d153
JH
1857#ifdef USE_PURE_BISON
1858p |int |yylex_r |YYSTYPE *lvalp|int *lcharp
cea2e8a9 1859#endif
48cf72c8 1860p |int |yylex
cea2e8a9
GS
1861p |int |yyparse
1862p |int |yywarn |char* s
1863#if defined(MYMALLOC)
954c1994 1864Ap |void |dump_mstats |char* s
827e134a 1865Ap |int |get_mstats |perl_mstats_t *buf|int buflen|int level
cea2e8a9 1866#endif
954c1994
GS
1867Anp |Malloc_t|safesysmalloc |MEM_SIZE nbytes
1868Anp |Malloc_t|safesyscalloc |MEM_SIZE elements|MEM_SIZE size
1869Anp |Malloc_t|safesysrealloc|Malloc_t where|MEM_SIZE nbytes
1870Anp |Free_t |safesysfree |Malloc_t where
cea2e8a9 1871#if defined(LEAKTEST)
954c1994
GS
1872Anp |Malloc_t|safexmalloc |I32 x|MEM_SIZE size
1873Anp |Malloc_t|safexcalloc |I32 x|MEM_SIZE elements|MEM_SIZE size
1874Anp |Malloc_t|safexrealloc |Malloc_t where|MEM_SIZE size
1875Anp |void |safexfree |Malloc_t where
cea2e8a9
GS
1876#endif
1877#if defined(PERL_GLOBAL_STRUCT)
954c1994 1878Ap |struct perl_vars *|GetVars
cea2e8a9 1879#endif
954c1994
GS
1880Ap |int |runops_standard
1881Ap |int |runops_debug
4d1ff10f 1882#if defined(USE_5005THREADS)
4755096e
GS
1883Ap |SV* |sv_lock |SV *sv
1884#endif
954c1994
GS
1885Afpd |void |sv_catpvf_mg |SV *sv|const char* pat|...
1886Ap |void |sv_vcatpvf_mg |SV* sv|const char* pat|va_list* args
1887Apd |void |sv_catpv_mg |SV *sv|const char *ptr
1888Apd |void |sv_catpvn_mg |SV *sv|const char *ptr|STRLEN len
1889Apd |void |sv_catsv_mg |SV *dstr|SV *sstr
1890Afpd |void |sv_setpvf_mg |SV *sv|const char* pat|...
1891Ap |void |sv_vsetpvf_mg |SV* sv|const char* pat|va_list* args
1892Apd |void |sv_setiv_mg |SV *sv|IV i
1893Apd |void |sv_setpviv_mg |SV *sv|IV iv
1894Apd |void |sv_setuv_mg |SV *sv|UV u
1895Apd |void |sv_setnv_mg |SV *sv|NV num
1896Apd |void |sv_setpv_mg |SV *sv|const char *ptr
1897Apd |void |sv_setpvn_mg |SV *sv|const char *ptr|STRLEN len
1898Apd |void |sv_setsv_mg |SV *dstr|SV *sstr
1899Apd |void |sv_usepvn_mg |SV *sv|char *ptr|STRLEN len
1900Ap |MGVTBL*|get_vtbl |int vtbl_id
cea2e8a9
GS
1901p |char* |pv_display |SV *sv|char *pv|STRLEN cur|STRLEN len \
1902 |STRLEN pvlim
954c1994
GS
1903Afp |void |dump_indent |I32 level|PerlIO *file|const char* pat|...
1904Ap |void |dump_vindent |I32 level|PerlIO *file|const char* pat \
c5be433b 1905 |va_list *args
954c1994
GS
1906Ap |void |do_gv_dump |I32 level|PerlIO *file|char *name|GV *sv
1907Ap |void |do_gvgv_dump |I32 level|PerlIO *file|char *name|GV *sv
1908Ap |void |do_hv_dump |I32 level|PerlIO *file|char *name|HV *sv
1909Ap |void |do_magic_dump |I32 level|PerlIO *file|MAGIC *mg|I32 nest \
cea2e8a9 1910 |I32 maxnest|bool dumpops|STRLEN pvlim
954c1994
GS
1911Ap |void |do_op_dump |I32 level|PerlIO *file|OP *o
1912Ap |void |do_pmop_dump |I32 level|PerlIO *file|PMOP *pm
1913Ap |void |do_sv_dump |I32 level|PerlIO *file|SV *sv|I32 nest \
cea2e8a9 1914 |I32 maxnest|bool dumpops|STRLEN pvlim
954c1994 1915Ap |void |magic_dump |MAGIC *mg
14dd3ad8 1916#if defined(PERL_FLEXIBLE_EXCEPTIONS)
954c1994 1917Ap |void* |default_protect|volatile JMPENV *je|int *excpt \
db36c5a1 1918 |protect_body_t body|...
954c1994 1919Ap |void* |vdefault_protect|volatile JMPENV *je|int *excpt \
db36c5a1 1920 |protect_body_t body|va_list *args
14dd3ad8 1921#endif
954c1994 1922Ap |void |reginitcolors
645c22ef
DM
1923Apd |char* |sv_2pv_nolen |SV* sv
1924Apd |char* |sv_2pvutf8_nolen|SV* sv
1925Apd |char* |sv_2pvbyte_nolen|SV* sv
451be7b1 1926Apd |char* |sv_pv |SV *sv
645c22ef
DM
1927Apd |char* |sv_pvutf8 |SV *sv
1928Apd |char* |sv_pvbyte |SV *sv
f3be10e5 1929Apd |STRLEN |sv_utf8_upgrade|SV *sv
4411f3b6
NIS
1930ApdM |bool |sv_utf8_downgrade|SV *sv|bool fail_ok
1931Apd |void |sv_utf8_encode |SV *sv
1932ApdM |bool |sv_utf8_decode |SV *sv
645c22ef
DM
1933Apd |void |sv_force_normal|SV *sv
1934Apd |void |sv_force_normal_flags|SV *sv|U32 flags
954c1994 1935Ap |void |tmps_grow |I32 n
c461cf8f 1936Apd |SV* |sv_rvweaken |SV *sv
cea2e8a9 1937p |int |magic_killbackrefs|SV *sv|MAGIC *mg
954c1994
GS
1938Ap |OP* |newANONATTRSUB |I32 floor|OP *proto|OP *attrs|OP *block
1939Ap |CV* |newATTRSUB |I32 floor|OP *o|OP *proto|OP *attrs|OP *block
1940Ap |void |newMYSUB |I32 floor|OP *o|OP *proto|OP *attrs|OP *block
09bef843
SB
1941p |OP * |my_attrs |OP *o|OP *attrs
1942p |void |boot_core_xsutils
1d7c1841 1943#if defined(USE_ITHREADS)
d2d73c3e
AB
1944Ap |PERL_CONTEXT*|cx_dup |PERL_CONTEXT* cx|I32 ix|I32 max|clone_params* param
1945Ap |PERL_SI*|si_dup |PERL_SI* si|clone_params* param
1946Ap |ANY* |ss_dup |PerlInterpreter* proto_perl|clone_params* param
954c1994 1947Ap |void* |any_dup |void* v|PerlInterpreter* proto_perl
d2d73c3e 1948Ap |HE* |he_dup |HE* e|bool shared|clone_params* param
d2f185dc 1949Ap |REGEXP*|re_dup |REGEXP* r|clone_params* param
954c1994
GS
1950Ap |PerlIO*|fp_dup |PerlIO* fp|char type
1951Ap |DIR* |dirp_dup |DIR* dp
d2d73c3e
AB
1952Ap |GP* |gp_dup |GP* gp|clone_params* param
1953Ap |MAGIC* |mg_dup |MAGIC* mg|clone_params* param
1954Ap |SV* |sv_dup |SV* sstr|clone_params* param
1d7c1841 1955#if defined(HAVE_INTERP_INTERN)
954c1994 1956Ap |void |sys_intern_dup |struct interp_intern* src \
1d7c1841
GS
1957 |struct interp_intern* dst
1958#endif
954c1994
GS
1959Ap |PTR_TBL_t*|ptr_table_new
1960Ap |void* |ptr_table_fetch|PTR_TBL_t *tbl|void *sv
1961Ap |void |ptr_table_store|PTR_TBL_t *tbl|void *oldsv|void *newsv
1962Ap |void |ptr_table_split|PTR_TBL_t *tbl
a0739874
DM
1963Ap |void |ptr_table_clear|PTR_TBL_t *tbl
1964Ap |void |ptr_table_free|PTR_TBL_t *tbl
1d7c1841 1965#endif
3dbbd0f5
GS
1966#if defined(HAVE_INTERP_INTERN)
1967Ap |void |sys_intern_clear
1968Ap |void |sys_intern_init
1969#endif
19e8ce8e 1970
53e06cf0
SC
1971Ap |char * |custom_op_name|OP* op
1972Ap |char * |custom_op_desc|OP* op
19e8ce8e 1973
cea2e8a9 1974
1d7c1841 1975END_EXTERN_C
1d7c1841 1976
0cb96387 1977#if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
cea2e8a9 1978s |I32 |avhv_index_sv |SV* sv
10c8fecd 1979s |I32 |avhv_index |AV* av|SV* sv|U32 hash
cea2e8a9
GS
1980#endif
1981
0cb96387 1982#if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT)
036b4402
GS
1983s |I32 |do_trans_simple |SV *sv
1984s |I32 |do_trans_count |SV *sv
1985s |I32 |do_trans_complex |SV *sv
1986s |I32 |do_trans_simple_utf8 |SV *sv
1987s |I32 |do_trans_count_utf8 |SV *sv
1988s |I32 |do_trans_complex_utf8 |SV *sv
cea2e8a9
GS
1989#endif
1990
0cb96387 1991#if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT)
cea2e8a9 1992s |void |gv_init_sv |GV *gv|I32 sv_type
d2c93421 1993s |void |require_errno |GV *gv
cea2e8a9
GS
1994#endif
1995
0cb96387 1996#if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
cea2e8a9
GS
1997s |void |hsplit |HV *hv
1998s |void |hfreeentries |HV *hv
1999s |void |more_he
2000s |HE* |new_he
2001s |void |del_he |HE *p
2002s |HEK* |save_hek |const char *str|I32 len|U32 hash
2003s |void |hv_magic_check |HV *hv|bool *needs_copy|bool *needs_store
2004#endif
2005
0cb96387 2006#if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT)
8fb26106 2007s |void |save_magic |I32 mgs_ix|SV *sv
cea2e8a9
GS
2008s |int |magic_methpack |SV *sv|MAGIC *mg|char *meth
2009s |int |magic_methcall |SV *sv|MAGIC *mg|char *meth|I32 f \
2010 |int n|SV *val
cea2e8a9
GS
2011#endif
2012
0cb96387 2013#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
cea2e8a9
GS
2014s |I32 |list_assignment|OP *o
2015s |void |bad_type |I32 n|char *t|char *name|OP *kid
3eb57f73 2016s |void |cop_free |COP *cop
cea2e8a9
GS
2017s |OP* |modkids |OP *o|I32 type
2018s |void |no_bareword_allowed|OP *o
2019s |OP* |no_fh_allowed |OP *o
2020s |OP* |scalarboolean |OP *o
2021s |OP* |too_few_arguments|OP *o|char* name
2022s |OP* |too_many_arguments|OP *o|char* name
94f23f41 2023s |PADOFFSET|pad_addlex |SV* name
cea2e8a9
GS
2024s |PADOFFSET|pad_findlex |char* name|PADOFFSET newoff|U32 seq \
2025 |CV* startcv|I32 cx_ix|I32 saweval|U32 flags
2026s |OP* |newDEFSVOP
2027s |OP* |new_logop |I32 type|I32 flags|OP **firstp|OP **otherp
2028s |void |simplify_sort |OP *o
2029s |bool |is_handle_constructor |OP *o|I32 argnum
2030s |char* |gv_ename |GV *gv
9cbac4c7 2031# if defined(DEBUG_CLOSURES)
1d7c1841 2032s |void |cv_dump |CV *cv
9cbac4c7 2033# endif
cea2e8a9
GS
2034s |CV* |cv_clone2 |CV *proto|CV *outside
2035s |bool |scalar_mod_type|OP *o|I32 type
09bef843
SB
2036s |OP * |my_kid |OP *o|OP *attrs
2037s |OP * |dup_attrlist |OP *o
2038s |void |apply_attrs |HV *stash|SV *target|OP *attrs
cea2e8a9
GS
2039# if defined(PL_OP_SLAB_ALLOC)
2040s |void* |Slab_Alloc |int m|size_t sz
2041# endif
2042#endif
2043
0cb96387 2044#if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
cea2e8a9
GS
2045s |void |find_beginning
2046s |void |forbid_setid |char *
9c8a64f0 2047s |void |incpush |char *|int|int
cea2e8a9
GS
2048s |void |init_interp
2049s |void |init_ids
cea2e8a9
GS
2050s |void |init_lexer
2051s |void |init_main_stash
2052s |void |init_perllib
2053s |void |init_postdump_symbols|int|char **|char **
2054s |void |init_predump_symbols
2055rs |void |my_exit_jump
2056s |void |nuke_stacks
2057s |void |open_script |char *|bool|SV *|int *fd
2058s |void |usage |char *
2059s |void |validate_suid |char *|char*|int
cea2e8a9
GS
2060# if defined(IAMSUID)
2061s |int |fd_on_nosuid_fs|int fd
2062# endif
14dd3ad8
GS
2063s |void* |parse_body |char **env|XSINIT_t xsinit
2064s |void* |run_body |I32 oldscope
2065s |void |call_body |OP *myop|int is_eval
2066s |void* |call_list_body |CV *cv
2067#if defined(PERL_FLEXIBLE_EXCEPTIONS)
2068s |void* |vparse_body |va_list args
2069s |void* |vrun_body |va_list args
2070s |void* |vcall_body |va_list args
2071s |void* |vcall_list_body|va_list args
2072#endif
4d1ff10f 2073# if defined(USE_5005THREADS)
cea2e8a9
GS
2074s |struct perl_thread * |init_main_thread
2075# endif
2076#endif
2077
0cb96387 2078#if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
cea2e8a9
GS
2079s |SV* |refto |SV* sv
2080s |U32 |seed
a6ec74c1
JH
2081#endif
2082
2083#if defined(PERL_IN_PP_PACK_C) || defined(PERL_DECL_PROT)
2084s |void |doencodes |SV* sv|char* s|I32 len
cea2e8a9
GS
2085s |SV* |mul128 |SV *sv|U8 m
2086s |SV* |is_an_int |char *s|STRLEN l
2087s |int |div128 |SV *pnum|bool *done
2088#endif
2089
0cb96387 2090#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
cea2e8a9 2091s |OP* |docatch |OP *o
14dd3ad8
GS
2092s |void* |docatch_body
2093#if defined(PERL_FLEXIBLE_EXCEPTIONS)
2094s |void* |vdocatch_body |va_list args
2095#endif
cea2e8a9
GS
2096s |OP* |dofindlabel |OP *o|char *label|OP **opstack|OP **oplimit
2097s |void |doparseform |SV *sv
2098s |I32 |dopoptoeval |I32 startingblock
2099s |I32 |dopoptolabel |char *label
2100s |I32 |dopoptoloop |I32 startingblock
2101s |I32 |dopoptosub |I32 startingblock
2102s |I32 |dopoptosub_at |PERL_CONTEXT* cxstk|I32 startingblock
cea2e8a9
GS
2103s |void |save_lines |AV *array|SV *sv
2104s |OP* |doeval |int gimme|OP** startop
2105s |PerlIO *|doopen_pmc |const char *name|const char *mode
2106s |void |qsortsv |SV ** array|size_t num_elts|SVCOMPARE_t f
cea2e8a9
GS
2107#endif
2108
0cb96387 2109#if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
10c8fecd
GS
2110s |int |do_maybe_phash |AV *ary|SV **lelem|SV **firstlelem \
2111 |SV **relem|SV **lastrelem
2112s |void |do_oddball |HV *hash|SV **relem|SV **firstrelem
cea2e8a9 2113s |CV* |get_db_sub |SV **svp|CV *cv
f5d5a27c 2114s |SV* |method_common |SV* meth|U32* hashp
cea2e8a9
GS
2115#endif
2116
0cb96387 2117#if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
cea2e8a9 2118s |OP* |doform |CV *cv|GV *gv|OP *retop
7f4774ae 2119s |int |emulate_eaccess|const char* path|Mode_t mode
cea2e8a9
GS
2120# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
2121s |int |dooneliner |char *cmd|char *filename
2122# endif
2123#endif
2124
0cb96387 2125#if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT)
830247a4
IZ
2126s |regnode*|reg |struct RExC_state_t*|I32|I32 *
2127s |regnode*|reganode |struct RExC_state_t*|U8|U32
2128s |regnode*|regatom |struct RExC_state_t*|I32 *
2129s |regnode*|regbranch |struct RExC_state_t*|I32 *|I32
2130s |void |reguni |struct RExC_state_t*|UV|char *|STRLEN*
2131s |regnode*|regclass |struct RExC_state_t*
cea2e8a9 2132s |I32 |regcurly |char *
830247a4
IZ
2133s |regnode*|reg_node |struct RExC_state_t*|U8
2134s |regnode*|regpiece |struct RExC_state_t*|I32 *
2135s |void |reginsert |struct RExC_state_t*|U8|regnode *
2136s |void |regoptail |struct RExC_state_t*|regnode *|regnode *
2137s |void |regtail |struct RExC_state_t*|regnode *|regnode *
cea2e8a9 2138s |char*|regwhite |char *|char *
830247a4 2139s |char*|nextchar |struct RExC_state_t*
8fa7f367 2140# ifdef DEBUGGING
cea2e8a9
GS
2141s |regnode*|dumpuntil |regnode *start|regnode *node \
2142 |regnode *last|SV* sv|I32 l
1d7c1841 2143s |void |put_byte |SV* sv|int c
8fa7f367 2144# endif
830247a4
IZ
2145s |void |scan_commit |struct RExC_state_t*|struct scan_data_t *data
2146s |void |cl_anything |struct RExC_state_t*|struct regnode_charclass_class *cl
1d7c1841 2147s |int |cl_is_anything |struct regnode_charclass_class *cl
830247a4
IZ
2148s |void |cl_init |struct RExC_state_t*|struct regnode_charclass_class *cl
2149s |void |cl_init_zero |struct RExC_state_t*|struct regnode_charclass_class *cl
1d7c1841
GS
2150s |void |cl_and |struct regnode_charclass_class *cl \
2151 |struct regnode_charclass_class *and_with
830247a4 2152s |void |cl_or |struct RExC_state_t*|struct regnode_charclass_class *cl \
1d7c1841 2153 |struct regnode_charclass_class *or_with
830247a4 2154s |I32 |study_chunk |struct RExC_state_t*|regnode **scanp|I32 *deltap \
82ba1be6
IZ
2155 |regnode *last|struct scan_data_t *data \
2156 |U32 flags
830247a4 2157s |I32 |add_data |struct RExC_state_t*|I32 n|char *s
cea2e8a9 2158rs |void|re_croak2 |const char* pat1|const char* pat2|...
830247a4
IZ
2159s |I32 |regpposixcc |struct RExC_state_t*|I32 value
2160s |void |checkposixcc |struct RExC_state_t*
cea2e8a9
GS
2161#endif
2162
0cb96387 2163#if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT)
cea2e8a9
GS
2164s |I32 |regmatch |regnode *prog
2165s |I32 |regrepeat |regnode *p|I32 max
2166s |I32 |regrepeat_hard |regnode *p|I32 max|I32 *lp
2167s |I32 |regtry |regexp *prog|char *startpos
7ea3cd40 2168s |bool |reginclass |regnode *n|U8 *p|bool do_utf8sv_is_utf8
cea2e8a9
GS
2169s |CHECKPOINT|regcppush |I32 parenfloor
2170s |char*|regcppop
2171s |char*|regcp_set_to |I32 ss
2172s |void |cache_re |regexp *prog
cea2e8a9 2173s |U8* |reghop |U8 *pos|I32 off
60aeb6fd 2174s |U8* |reghop3 |U8 *pos|I32 off|U8 *lim
cea2e8a9 2175s |U8* |reghopmaybe |U8 *pos|I32 off
60aeb6fd 2176s |U8* |reghopmaybe3 |U8 *pos|I32 off|U8 *lim
1d7c1841 2177s |char* |find_byclass |regexp * prog|regnode *c|char *s|char *strend|char *startpos|I32 norun
cea2e8a9
GS
2178#endif
2179
0cb96387 2180#if defined(PERL_IN_RUN_C) || defined(PERL_DECL_PROT)
8fa7f367 2181# ifdef DEBUGGING
53a2efa2 2182s |CV* |deb_curcv |I32 ix
cea2e8a9 2183s |void |debprof |OP *o
8fa7f367 2184# endif
cea2e8a9
GS
2185#endif
2186
0cb96387 2187#if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
cea2e8a9
GS
2188s |SV* |save_scalar_at |SV **sptr
2189#endif
2190
cd1ee231
JH
2191#if defined(USE_ITHREADS) && (defined(PERL_IN_SHAREDSV_C) || defined(PERL_DECL_PROT))
2192Adp |void |sharedsv_init
2193Adp |shared_sv* |sharedsv_new
2194Adp |shared_sv* |sharedsv_find |SV* sv
2195Adp |void |sharedsv_lock |shared_sv* ssv
2196Adp |void |sharedsv_unlock |shared_sv* ssv
2197p |void |sharedsv_unlock_scope |shared_sv* ssv
2198Adp |void |sharedsv_thrcnt_inc |shared_sv* ssv
2199Adp |void |sharedsv_thrcnt_dec |shared_sv* ssv
2200#endif
2201
0cb96387 2202#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
cea2e8a9
GS
2203s |IV |asIV |SV* sv
2204s |UV |asUV |SV* sv
2205s |SV* |more_sv
2206s |void |more_xiv
2207s |void |more_xnv
2208s |void |more_xpv
932e9ff9
VB
2209s |void |more_xpviv
2210s |void |more_xpvnv
2211s |void |more_xpvcv
2212s |void |more_xpvav
2213s |void |more_xpvhv
2214s |void |more_xpvmg
2215s |void |more_xpvlv
2216s |void |more_xpvbm
cea2e8a9
GS
2217s |void |more_xrv
2218s |XPVIV* |new_xiv
2219s |XPVNV* |new_xnv
2220s |XPV* |new_xpv
932e9ff9
VB
2221s |XPVIV* |new_xpviv
2222s |XPVNV* |new_xpvnv
2223s |XPVCV* |new_xpvcv
2224s |XPVAV* |new_xpvav
2225s |XPVHV* |new_xpvhv
2226s |XPVMG* |new_xpvmg
2227s |XPVLV* |new_xpvlv
2228s |XPVBM* |new_xpvbm
cea2e8a9
GS
2229s |XRV* |new_xrv
2230s |void |del_xiv |XPVIV* p
2231s |void |del_xnv |XPVNV* p
2232s |void |del_xpv |XPV* p
932e9ff9
VB
2233s |void |del_xpviv |XPVIV* p
2234s |void |del_xpvnv |XPVNV* p
2235s |void |del_xpvcv |XPVCV* p
2236s |void |del_xpvav |XPVAV* p
2237s |void |del_xpvhv |XPVHV* p
2238s |void |del_xpvmg |XPVMG* p
2239s |void |del_xpvlv |XPVLV* p
2240s |void |del_xpvbm |XPVBM* p
cea2e8a9
GS
2241s |void |del_xrv |XRV* p
2242s |void |sv_unglob |SV* sv
cea2e8a9 2243s |void |not_a_number |SV *sv
5226ed68 2244s |I32 |visit |SVFUNC_t f
cea2e8a9
GS
2245s |void |sv_add_backref |SV *tsv|SV *sv
2246s |void |sv_del_backref |SV *sv
8fa7f367 2247# ifdef DEBUGGING
cea2e8a9
GS
2248s |void |del_sv |SV *p
2249# endif
28e5dec8 2250# if !defined(NV_PRESERVES_UV)
28e5dec8
JH
2251s |int |sv_2iuv_non_preserve |SV *sv|I32 numtype
2252# endif
6b1bfb71 2253s |I32 |expect_number |char** pattern
9cbac4c7
DM
2254#
2255# if defined(USE_ITHREADS)
2256s |SV* |gv_share |SV *sv
2257# endif
cea2e8a9
GS
2258#endif
2259
0cb96387 2260#if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
cea2e8a9
GS
2261s |void |check_uni
2262s |void |force_next |I32 type
e759cc13 2263s |char* |force_version |char *start|int guessing
cea2e8a9
GS
2264s |char* |force_word |char *start|int token|int check_keyword \
2265 |int allow_pack|int allow_tick
2266s |SV* |tokeq |SV *sv
8eceec63 2267s |int |pending_ident
cea2e8a9
GS
2268s |char* |scan_const |char *start
2269s |char* |scan_formline |char *s
2270s |char* |scan_heredoc |char *s
2271s |char* |scan_ident |char *s|char *send|char *dest \
2272 |STRLEN destlen|I32 ck_uni
2273s |char* |scan_inputsymbol|char *start
2274s |char* |scan_pat |char *start|I32 type
09bef843 2275s |char* |scan_str |char *start|int keep_quoted|int keep_delims
cea2e8a9
GS
2276s |char* |scan_subst |char *start
2277s |char* |scan_trans |char *start
2278s |char* |scan_word |char *s|char *dest|STRLEN destlen \
2279 |int allow_package|STRLEN *slp
2280s |char* |skipspace |char *s
78ae23f5 2281s |char* |swallow_bom |U8 *s
cea2e8a9
GS
2282s |void |checkcomma |char *s|char *name|char *what
2283s |void |force_ident |char *s|int kind
2284s |void |incline |char *s
2285s |int |intuit_method |char *s|GV *gv
2286s |int |intuit_more |char *s
1d7c1841 2287s |I32 |lop |I32 f|int x|char *s
cea2e8a9
GS
2288s |void |missingterm |char *s
2289s |void |no_op |char *what|char *s
2290s |void |set_csh
2291s |I32 |sublex_done
2292s |I32 |sublex_push
2293s |I32 |sublex_start
2294s |char * |filter_gets |SV *sv|PerlIO *fp|STRLEN append
def3634b 2295s |HV * |find_in_my_stash|char *pkgname|I32 len
1d7c1841
GS
2296s |SV* |new_constant |char *s|STRLEN len|const char *key|SV *sv \
2297 |SV *pv|const char *type
8fa7f367 2298# if defined(DEBUGGING)
998054bd 2299s |void |tokereport |char *thing|char *s|I32 rv
8fa7f367 2300# endif
cea2e8a9
GS
2301s |int |ao |int toketype
2302s |void |depcom
2303s |char* |incl_perldb
155aba94 2304#if 0
cea2e8a9
GS
2305s |I32 |utf16_textfilter|int idx|SV *sv|int maxlen
2306s |I32 |utf16rev_textfilter|int idx|SV *sv|int maxlen
155aba94 2307#endif
cea2e8a9
GS
2308# if defined(CRIPPLED_CC)
2309s |int |uni |I32 f|char *s
2310# endif
c39cd008
GS
2311# if defined(PERL_CR_FILTER)
2312s |I32 |cr_textfilter |int idx|SV *sv|int maxlen
cea2e8a9
GS
2313# endif
2314#endif
2315
0cb96387 2316#if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
cea2e8a9
GS
2317s |SV*|isa_lookup |HV *stash|const char *name|int len|int level
2318#endif
2319
2d31dd6a 2320#if defined(PERL_IN_LOCALE_C) || defined(PERL_DECL_PROT)
ff4fed7c 2321s |char* |stdize_locale |char* locs
2d31dd6a
NIS
2322#endif
2323
2324#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
ae7d165c 2325s |COP* |closest_cop |COP *cop|OP *o
cea2e8a9 2326s |SV* |mess_alloc
cea2e8a9
GS
2327# if defined(LEAKTEST)
2328s |void |xstat |int
2329# endif
2330#endif
1d7c1841 2331
902f5b58
JH
2332START_EXTERN_C
2333
8d6d96c1
HS
2334Apd |void |sv_setsv_flags |SV* dsv|SV* ssv|I32 flags
2335Apd |void |sv_catpvn_flags|SV* sv|const char* ptr|STRLEN len|I32 flags
2336Apd |void |sv_catsv_flags |SV* dsv|SV* ssv|I32 flags
2337Apd |STRLEN |sv_utf8_upgrade_flags|SV *sv|I32 flags
2338Apd |char* |sv_pvn_force_flags|SV* sv|STRLEN* lp|I32 flags
645c22ef 2339Apd |char* |sv_2pv_flags |SV* sv|STRLEN* lp|I32 flags
1f727ac0 2340Ap |char* |my_atof2 |const char *s|NV* value
902f5b58
JH
2341
2342END_EXTERN_C
2343