various little tweaks; most globals are now in intrpvar.h, ninterps
[p5sagit/p5-mst-13.2.git] / embed.pl
CommitLineData
5f05dabc 1#!/usr/bin/perl -w
e50aee73 2
5f05dabc 3require 5.003;
4
cea2e8a9 5#
6# See database of global and static function prototypes at the __END__.
7# This is used to generate prototype headers under various configurations,
8# export symbols lists for different platforms, and macros to provide an
9# implicit interpreter context argument.
10#
11
12my $END = tell DATA;
13
14# walk table providing an array of components in each line to
15# subroutine, printing the result
16sub walk_table (&@) {
17 my $function = shift;
18 my $filename = shift || '-';
19 my $leader = shift;
20 my $trailer = shift;
21 my $F;
22 local *F;
23 if (ref $filename) { # filehandle
24 $F = $filename;
25 }
26 else {
27 open F, ">$filename" or die "Can't open $filename: $!";
28 $F = \*F;
29 }
30 print $F $leader if $leader;
31 seek DATA, $END, 0; # so we may restart
32 while (<DATA>) {
33 chomp;
34 while (s|\\$||) {
35 $_ .= <DATA>;
36 chomp;
37 }
38 my @args;
39 if (/^\s*(#|$)/) {
40 @args = $_;
41 }
42 else {
43 @args = split /\s*\|\s*/, $_;
44 }
45 print $F $function->(@args);
46 }
47 print $F $trailer if $trailer;
48 close $F unless ref $filename;
49}
50
51sub munge_c_files () {
52 my $functions = {};
53 unless (@ARGV) {
54 warn "\@ARGV empty, nothing to do\n";
55 return;
56 }
57 walk_table {
58 if (@_ > 1) {
59 $functions->{$_[2]} = \@_ if $_[@_-1] =~ /\.\.\./;
60 }
61 } '/dev/null';
62 local $^I = '.bak';
63 while (<>) {
64# if (/^#\s*include\s+"perl.h"/) {
65# my $file = uc $ARGV;
66# $file =~ s/\./_/g;
67# print "#define PERL_IN_$file\n";
68# }
69# s{^(\w+)\s*\(}
70# {
71# my $f = $1;
72# my $repl = "$f(";
73# if (exists $functions->{$f}) {
74# my $flags = $functions->{$f}[0];
75# $repl = "Perl_$repl" if $flags =~ /p/;
76# unless ($flags =~ /n/) {
77# $repl .= "pTHX";
78# $repl .= "_ " if @{$functions->{$f}} > 3;
79# }
80# warn("$ARGV:$.:$repl\n");
81# }
82# $repl;
83# }e;
84 s{(\b(\w+)[ \t]*\([ \t]*(?!aTHX))}
85 {
86 my $repl = $1;
87 my $f = $2;
88 if (exists $functions->{$f}) {
89 $repl .= "aTHX_ ";
90 warn("$ARGV:$.:$`#$repl#$'");
91 }
92 $repl;
93 }eg;
94 print;
95 close ARGV if eof; # restart $.
96 }
97 exit;
98}
99
100#munge_c_files();
101
102# generate proto.h
103sub write_protos {
104 my $ret = "";
105 if (@_ == 1) {
106 my $arg = shift;
107 $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifdef|else|endif)\b/;
108 }
109 else {
110 my ($flags,$retval,$func,@args) = @_;
111 if ($flags =~ /s/) {
112 $retval = "STATIC $retval";
113 $func = "S_$func";
114 }
115 elsif ($flags =~ /p/) {
116 $func = "Perl_$func";
117 }
118 $ret .= "$retval\t$func(";
119 unless ($flags =~ /n/) {
120 $ret .= "pTHX";
121 $ret .= "_ " if @args;
122 }
123 if (@args) {
124 $ret .= join ", ", @args;
125 }
126 else {
127 $ret .= "void" if $flags =~ /n/;
128 }
129 $ret .= ")";
130 $ret .= " __attribute__((noreturn))" if $flags =~ /r/;
131 $ret .= ";\n";
132 }
133 $ret;
134}
135
136# generates global.sym, and populates %global with global symbols
137sub write_global_sym {
138 my $ret = "";
139 if (@_ > 1) {
140 my ($flags,$retval,$func,@args) = @_;
141 unless ($flags =~ /s/) {
142 $func = "Perl_$func" if $flags =~ /p/;
143 $ret = "$func\n";
144 }
145 }
146 $ret;
147}
148
149
150walk_table(\&write_protos, 'proto.h', <<'EOT');
151/*
152 * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
153 * This file is autogenerated from data in embed.pl. Edit that file
154 * and run 'make regen_headers' to effect changes.
155 */
156
157EOT
158
159walk_table(\&write_global_sym, 'global.sym', <<'EOT');
160#
161# !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
162# This file is autogenerated from data in embed.pl. Edit that file
163# and run 'make regen_headers' to effect changes.
164#
165
166EOT
167
709f4e38 168# XXX others that may need adding
169# warnhook
170# hints
171# copline
84fee439 172my @extvars = qw(sv_undef sv_yes sv_no na dowarn
173 curcop compiling
174 tainting tainted stack_base stack_sp sv_arenaroot
256a4781 175 no_modify
84fee439 176 curstash DBsub DBsingle debstash
177 rsfp
178 stdingv
6b88bc9c 179 defgv
180 errgv
3070f6ec 181 rsfp_filters
182 perldb
709f4e38 183 diehook
184 dirty
185 perl_destruct_level
84fee439 186 );
187
5f05dabc 188sub readsyms (\%$) {
189 my ($syms, $file) = @_;
5f05dabc 190 local (*FILE, $_);
191 open(FILE, "< $file")
192 or die "embed.pl: Can't open $file: $!\n";
193 while (<FILE>) {
194 s/[ \t]*#.*//; # Delete comments.
195 if (/^\s*(\S+)\s*$/) {
22c35a8c 196 my $sym = $1;
197 warn "duplicate symbol $sym while processing $file\n"
198 if exists $$syms{$sym};
199 $$syms{$sym} = 1;
5f05dabc 200 }
201 }
202 close(FILE);
203}
204
cea2e8a9 205# Perl_pp_* and Perl_ck_* are in pp.sym
206readsyms my %ppsym, 'pp.sym';
5f05dabc 207
c6af7a1a 208sub readvars(\%$$@) {
209 my ($syms, $file,$pre,$keep_pre) = @_;
d4cce5f1 210 local (*FILE, $_);
211 open(FILE, "< $file")
212 or die "embed.pl: Can't open $file: $!\n";
213 while (<FILE>) {
214 s/[ \t]*#.*//; # Delete comments.
3fe35a81 215 if (/PERLVARI?C?\($pre(\w+)/) {
22c35a8c 216 my $sym = $1;
c6af7a1a 217 $sym = $pre . $sym if $keep_pre;
22c35a8c 218 warn "duplicate symbol $sym while processing $file\n"
219 if exists $$syms{$sym};
220 $$syms{$sym} = 1;
d4cce5f1 221 }
222 }
223 close(FILE);
224}
225
226my %intrp;
227my %thread;
228
229readvars %intrp, 'intrpvar.h','I';
230readvars %thread, 'thrdvar.h','T';
22239a37 231readvars %globvar, 'perlvars.h','G';
c6af7a1a 232readvars %objvar, 'intrpvar.h','pi', 1;
d4cce5f1 233
d4cce5f1 234foreach my $sym (sort keys %thread)
235 {
34b58025 236 warn "$sym in intrpvar.h as well as thrdvar.h\n" if exists $intrp{$sym};
d4cce5f1 237 }
238
c6af7a1a 239sub undefine ($) {
240 my ($sym) = @_;
241 "#undef $sym\n";
242}
243
5f05dabc 244sub hide ($$) {
245 my ($from, $to) = @_;
246 my $t = int(length($from) / 8);
247 "#define $from" . "\t" x ($t < 3 ? 3 - $t : 1) . "$to\n";
248}
c6af7a1a 249
c6af7a1a 250sub objxsub_var ($) {
251 my ($sym) = @_;
252 undefine("PL_$sym") . hide("PL_$sym", "pPerl->PL_$sym");
253}
254
3280af22 255sub embedvar ($) {
256 my ($sym) = @_;
257# hide($sym, "Perl_$sym");
258 return '';
259}
260
d4cce5f1 261sub multon ($$$) {
262 my ($sym,$pre,$ptr) = @_;
3280af22 263 hide("PL_$sym", "($ptr$pre$sym)");
5f05dabc 264}
d4cce5f1 265sub multoff ($$) {
266 my ($sym,$pre) = @_;
533c011a 267 return hide("PL_$pre$sym", "PL_$sym");
5f05dabc 268}
269
270unlink 'embed.h';
cea2e8a9 271open(EM, '> embed.h') or die "Can't create embed.h: $!\n";
e50aee73 272
273print EM <<'END';
76b72cf1 274/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
cea2e8a9 275 This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h,
c6af7a1a 276 perlvars.h and thrdvar.h. Any changes made here will be lost!
76b72cf1 277*/
e50aee73 278
279/* (Doing namespace management portably in C is really gross.) */
280
22c35a8c 281/* NO_EMBED is no longer supported. i.e. EMBED is always active. */
820c3be9 282
22c35a8c 283/* Hide global symbols */
5f05dabc 284
22c35a8c 285#if !defined(PERL_OBJECT)
cea2e8a9 286#if !defined(PERL_IMPLICIT_CONTEXT)
e50aee73 287
e50aee73 288END
289
cea2e8a9 290walk_table {
291 my $ret = "";
292 if (@_ == 1) {
293 my $arg = shift;
294 $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifdef|else|endif)\b/;
295 }
296 else {
297 my ($flags,$retval,$func,@args) = @_;
298 unless ($flags =~ /o/) {
299 if ($flags =~ /s/) {
300 $ret .= hide($func,"S_$func");
301 }
302 elsif ($flags =~ /p/) {
303 $ret .= hide($func,"Perl_$func");
304 }
305 }
306 }
307 $ret;
308} \*EM;
309
310for $sym (sort keys %ppsym) {
311 $sym =~ s/^Perl_//;
312 print EM hide($sym, "Perl_$sym");
313}
314
315print EM <<'END';
316
317#else /* PERL_IMPLICIT_CONTEXT */
318
319END
320
321my @az = ('a'..'z');
322
323walk_table {
324 my $ret = "";
325 if (@_ == 1) {
326 my $arg = shift;
327 $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifdef|else|endif)\b/;
328 }
329 else {
330 my ($flags,$retval,$func,@args) = @_;
331 unless ($flags =~ /o/) {
332 my $args = scalar @args;
333 if ($args and $args[$args-1] =~ /\.\.\./) {
334 # we're out of luck for varargs functions under CPP
335 }
336 elsif ($flags =~ /n/) {
337 if ($flags =~ /s/) {
338 $ret .= hide($func,"S_$func");
339 }
340 elsif ($flags =~ /p/) {
341 $ret .= hide($func,"Perl_$func");
342 }
343 }
344 else {
345 my $alist = join(",", @az[0..$args-1]);
346 $ret = "#define $func($alist)";
347 my $t = int(length($ret) / 8);
348 $ret .= "\t" x ($t < 4 ? 4 - $t : 1);
349 if ($flags =~ /s/) {
350 $ret .= "S_$func(aTHX";
351 }
352 elsif ($flags =~ /p/) {
353 $ret .= "Perl_$func(aTHX";
354 }
355 $ret .= "_ " if $alist;
356 $ret .= $alist . ")\n";
357 }
358 }
359 }
360 $ret;
361} \*EM;
362
363for $sym (sort keys %ppsym) {
364 $sym =~ s/^Perl_//;
365 if ($sym =~ /^ck_/) {
366 print EM hide("$sym(a)", "Perl_$sym(aTHX_ a)");
367 }
368 elsif ($sym =~ /^pp_/) {
369 print EM hide("$sym()", "Perl_$sym(aTHX)");
370 }
371 else {
372 warn "Illegal symbol '$sym' in pp.sym";
373 }
e50aee73 374}
375
e50aee73 376print EM <<'END';
377
cea2e8a9 378#endif /* PERL_IMPLICIT_CONTEXT */
22c35a8c 379#else /* PERL_OBJECT */
380
381END
382
cea2e8a9 383walk_table {
384 my $ret = "";
385 if (@_ == 1) {
386 my $arg = shift;
387 $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifdef|else|endif)\b/;
388 }
389 else {
390 my ($flags,$retval,$func,@args) = @_;
391 unless ($flags =~ /o/) {
392 if ($flags =~ /s/) {
393 $ret .= hide("S_$func","CPerlObj::$func");
394 }
395 elsif ($flags =~ /p/) {
396 $ret .= hide("Perl_$func","CPerlObj::$func");
397 }
398 }
399 }
400 $ret;
401} \*EM;
402
403for $sym (sort keys %ppsym) {
404 $sym =~ s/^Perl_//;
405 print EM hide("Perl_$sym", "CPerlObj::$sym");
22c35a8c 406}
407
408print EM <<'END';
409
410#endif /* PERL_OBJECT */
e50aee73 411
cea2e8a9 412/* Compatibility stubs. Compile extensions with -DPERL_NOCOMPAT to
413 disable them.
414 */
415
416#if !defined(PERL_CORE) && !defined(PERL_NOCOMPAT)
417
418# define sv_setptrobj(rv,ptr,name) sv_setref_iv(rv,name,(IV)ptr)
419# define sv_setptrref(rv,ptr) sv_setref_iv(rv,Nullch,(IV)ptr)
420
421
422/* Compatibility for various misnamed functions. All functions
423 in the API that begin with "perl_" (not "Perl_") take an explicit
424 interpreter context pointer.
425 The following are not like that, but since they had a "perl_"
426 prefix in previous versions, we provide compatibility macros.
427 */
428# define perl_atexit call_atexit
429# define perl_call_argv call_argv
430# define perl_call_pv call_pv
431# define perl_call_method call_method
432# define perl_call_sv call_sv
433# define perl_eval_sv eval_sv
434# define perl_eval_pv eval_pv
435# define perl_require_pv require_pv
436# define perl_get_sv get_sv
437# define perl_get_av get_av
438# define perl_get_hv get_hv
439# define perl_get_cv get_cv
440# define perl_init_i18nl10n init_i18nl10n
441# define perl_init_i18nl14n init_i18nl14n
442# define perl_new_ctype new_ctype
443# define perl_new_collate new_collate
444# define perl_new_numeric new_numeric
445
446/* varargs functions can't be handled with CPP macros. :-(
447 This provides a set of compatibility functions that don't take
448 an extra argument but grab the context pointer using the macro
449 dTHX.
450 */
451#if defined(PERL_IMPLICIT_CONTEXT)
452# define croak Perl_croak_nocontext
453# define die Perl_die_nocontext
454# define form Perl_form_nocontext
455# define newSVpvf Perl_newSVpvf_nocontext
456# define sv_catpvf Perl_sv_catpvf_nocontext
457# define sv_setpvf Perl_sv_setpvf_nocontext
458# define warn Perl_warn_nocontext
459# define sv_catpvf_mg Perl_sv_catpvf_mg_nocontext
460# define sv_setpvf_mg Perl_sv_setpvf_mg_nocontext
461#endif
462
463#endif /* !defined(PERL_CORE) && !defined(PERL_NOCOMPAT) */
464
465#if !defined(PERL_IMPLICIT_CONTEXT)
466/* undefined symbols, point them back at the usual ones */
467# define Perl_croak_nocontext Perl_croak
468# define Perl_die_nocontext Perl_die
469# define Perl_form_nocontext Perl_form
470# define Perl_newSVpvf_nocontext Perl_newSVpvf
471# define Perl_sv_catpvf_nocontext Perl_sv_catpvf
472# define Perl_sv_setpvf_nocontext Perl_sv_setpvf
473# define Perl_warn_nocontext Perl_warn
474# define Perl_sv_catpvf_mg_nocontext Perl_sv_catpvf_mg
475# define Perl_sv_setpvf_mg_nocontext Perl_sv_setpvf_mg
476#endif
db5cf5a9 477
d4cce5f1 478END
479
480close(EM);
481
482unlink 'embedvar.h';
483open(EM, '> embedvar.h')
484 or die "Can't create embedvar.h: $!\n";
485
486print EM <<'END';
487/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
cea2e8a9 488 This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h,
c6af7a1a 489 perlvars.h and thrdvar.h. Any changes made here will be lost!
d4cce5f1 490*/
491
492/* (Doing namespace management portably in C is really gross.) */
493
5f05dabc 494/* Put interpreter-specific symbols into a struct? */
e50aee73 495
496#ifdef MULTIPLICITY
497
d4cce5f1 498#ifndef USE_THREADS
499/* If we do not have threads then per-thread vars are per-interpreter */
500
cea2e8a9 501#ifdef PERL_IMPLICIT_CONTEXT
502
503/* everything has an implicit context pointer */
504
505END
506
507for $sym (sort keys %thread) {
508 print EM multon($sym,'T','my_perl->');
509}
510
511print EM <<'END';
512
513#else /* !PERL_IMPLICIT_CONTEXT */
514
515/* traditional MULTIPLICITY (intepreter is in a global) */
516
e50aee73 517END
518
cea2e8a9 519
d4cce5f1 520for $sym (sort keys %thread) {
8f872242 521 print EM multon($sym,'T','PL_curinterp->');
d4cce5f1 522}
523
524print EM <<'END';
525
cea2e8a9 526#endif /* !PERL_IMPLICIT_CONTEXT */
d4cce5f1 527#endif /* !USE_THREADS */
528
529/* These are always per-interpreter if there is more than one */
530
531END
532
533for $sym (sort keys %intrp) {
8f872242 534 print EM multon($sym,'I','PL_curinterp->');
760ac839 535}
760ac839 536
55497cff 537print EM <<'END';
538
5f05dabc 539#else /* !MULTIPLICITY */
55497cff 540
541END
760ac839 542
d4cce5f1 543for $sym (sort keys %intrp) {
544 print EM multoff($sym,'I');
e50aee73 545}
e50aee73 546
56d28764 547print EM <<'END';
548
d4cce5f1 549#ifndef USE_THREADS
550
551END
552
553for $sym (sort keys %thread) {
554 print EM multoff($sym,'T');
555}
556
557print EM <<'END';
558
559#endif /* USE_THREADS */
560
561/* Hide what would have been interpreter-specific symbols? */
5f05dabc 562
56d28764 563END
e50aee73 564
d4cce5f1 565for $sym (sort keys %intrp) {
3280af22 566 print EM embedvar($sym);
d4cce5f1 567}
568
569print EM <<'END';
570
571#ifndef USE_THREADS
572
573END
574
575for $sym (sort keys %thread) {
3280af22 576 print EM embedvar($sym);
5f05dabc 577}
578
579print EM <<'END';
580
d4cce5f1 581#endif /* USE_THREADS */
e50aee73 582#endif /* MULTIPLICITY */
d4cce5f1 583
584/* Now same trickey for per-thread variables */
585
586#ifdef USE_THREADS
587
588END
589
590for $sym (sort keys %thread) {
22239a37 591 print EM multon($sym,'T','thr->');
d4cce5f1 592}
593
594print EM <<'END';
595
596#endif /* USE_THREADS */
597
22239a37 598#ifdef PERL_GLOBAL_STRUCT
599
600END
601
602for $sym (sort keys %globvar) {
533c011a 603 print EM multon($sym,'G','PL_Vars.');
22239a37 604}
605
606print EM <<'END';
607
608#else /* !PERL_GLOBAL_STRUCT */
609
610END
611
612for $sym (sort keys %globvar) {
613 print EM multoff($sym,'G');
614}
615
616print EM <<'END';
617
22239a37 618END
619
620for $sym (sort keys %globvar) {
3280af22 621 print EM embedvar($sym);
22239a37 622}
623
624print EM <<'END';
625
22239a37 626#endif /* PERL_GLOBAL_STRUCT */
627
e50aee73 628END
629
84fee439 630print EM <<'END';
631
db5cf5a9 632#ifdef PERL_POLLUTE /* disabled by default in 5.006 */
84fee439 633
634END
635
636for $sym (sort @extvars) {
637 print EM hide($sym,"PL_$sym");
638}
639
640print EM <<'END';
641
db5cf5a9 642#endif /* PERL_POLLUTE */
84fee439 643END
644
645
3fe35a81 646close(EM);
c6af7a1a 647
648unlink 'objXSUB.h';
649open(OBX, '> objXSUB.h')
650 or die "Can't create objXSUB.h: $!\n";
651
652print OBX <<'EOT';
653/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
cea2e8a9 654 This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h,
c6af7a1a 655 perlvars.h and thrdvar.h. Any changes made here will be lost!
656*/
657
658#ifndef __objXSUB_h__
659#define __objXSUB_h__
660
661/* Variables */
662
663EOT
664
665foreach my $sym (sort(keys(%intrp),
666 keys(%thread),
667 keys(%globvar),
668 keys(%objvar)))
669{
670 print OBX objxsub_var($sym);
671}
672
673print OBX <<'EOT';
674
675/* Functions */
676
677EOT
678
cea2e8a9 679walk_table {
680 my $ret = "";
681 if (@_ == 1) {
682 my $arg = shift;
683 $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifdef|else|endif)\b/;
684 }
685 else {
686 my ($flags,$retval,$func,@args) = @_;
687 unless ($flags =~ /o/) {
688 if ($flags =~ /p/) {
689 $ret .= undefine($func) . hide($func,"pPerl->$func");
690 }
691 }
692 }
693 $ret;
694} \*OBX;
c6af7a1a 695
cea2e8a9 696for $sym (sort keys %ppsym) {
697 $sym =~ s/^Perl_//;
698 print OBX undefine($sym) . hide($sym, "pPerl->$sym");
c6af7a1a 699}
700
c6af7a1a 701print OBX <<'EOT';
702
703#endif /* __objXSUB_h__ */
704EOT
705
706close(OBX);
cea2e8a9 707
708__END__
709
710# Lines are of the form:
711# flags|return_type|function_name|return_type|arg1|arg2|...|argN
712#
713# They may continue on multiple lines when \w| begins the next line.
714# Leading and trailing whitespace will be ignored in each component.
715#
716# flags are single letters with following meanings:
717# s static function, should have an S_ prefix in source
718# file
719# n has no implicit interpreter/thread context argument
720# p function has a Perl_ prefix
721# r function never returns
722# o has no compatibility macro (#define foo Perl_foo)
723#
724# Individual flags may be separated by whitespace.
725#
726# New global functions should be added at the end for binary compatibility
727# in some configurations.
728#
729# TODO: 1) Add a flag to mark the functions that are part of the public API.
730# 2) Add a field for documentation, so that L<perlguts/"API LISTING">
731# may be autogenerated.
732#
733
734p |SV* |amagic_call |SV* left|SV* right|int method|int dir
735p |bool |Gv_AMupdate |HV* stash
736p |OP* |append_elem |I32 optype|OP* head|OP* tail
737p |OP* |append_list |I32 optype|LISTOP* first|LISTOP* last
738p |I32 |apply |I32 type|SV** mark|SV** sp
739p |void |assertref |OP* o
740p |bool |avhv_exists_ent|AV *ar|SV* keysv|U32 hash
741p |SV** |avhv_fetch_ent |AV *ar|SV* keysv|I32 lval|U32 hash
742p |HE* |avhv_iternext |AV *ar
743p |SV* |avhv_iterval |AV *ar|HE* entry
744p |HV* |avhv_keys |AV *ar
745p |void |av_clear |AV* ar
746p |void |av_extend |AV* ar|I32 key
747p |AV* |av_fake |I32 size|SV** svp
748p |SV** |av_fetch |AV* ar|I32 key|I32 lval
749p |void |av_fill |AV* ar|I32 fill
750p |I32 |av_len |AV* ar
751p |AV* |av_make |I32 size|SV** svp
752p |SV* |av_pop |AV* ar
753p |void |av_push |AV* ar|SV* val
754p |void |av_reify |AV* ar
755p |SV* |av_shift |AV* ar
756p |SV** |av_store |AV* ar|I32 key|SV* val
757p |void |av_undef |AV* ar
758p |void |av_unshift |AV* ar|I32 num
759p |OP* |bind_match |I32 type|OP* left|OP* pat
760p |OP* |block_end |I32 floor|OP* seq
761p |I32 |block_gimme
762p |int |block_start |int full
763p |void |boot_core_UNIVERSAL
764p |void |call_list |I32 oldscope|AV* av_list
765p |I32 |cando |I32 bit|I32 effective|Stat_t* statbufp
766p |U32 |cast_ulong |double f
767p |I32 |cast_i32 |double f
768p |IV |cast_iv |double f
769p |UV |cast_uv |double f
770#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
771p |I32 |my_chsize |int fd|Off_t length
772#endif
773#if defined(USE_THREADS)
774p |MAGIC* |condpair_magic |SV *sv
775#endif
776p |OP* |convert |I32 optype|I32 flags|OP* o
777pr |void |croak |const char* pat|...
778#if defined(PERL_IMPLICIT_CONTEXT)
779npr |void |croak_nocontext|const char* pat|...
780np |OP* |die_nocontext |const char* pat|...
781np |char* |form_nocontext |const char* pat|...
782np |void |warn_nocontext |const char* pat|...
783np |SV* |newSVpvf_nocontext|const char* pat|...
784np |void |sv_catpvf_nocontext|SV* sv|const char* pat|...
785np |void |sv_setpvf_nocontext|SV* sv|const char* pat|...
786np |void |sv_catpvf_mg_nocontext|SV* sv|const char* pat|...
787np |void |sv_setpvf_mg_nocontext|SV* sv|const char* pat|...
788#endif
789p |void |cv_ckproto |CV* cv|GV* gv|char* p
790p |CV* |cv_clone |CV* proto
791p |SV* |cv_const_sv |CV* cv
792p |SV* |op_const_sv |OP* o|CV* cv
793p |void |cv_undef |CV* cv
794p |void |cx_dump |PERL_CONTEXT* cs
795p |SV* |filter_add |filter_t funcp|SV* datasv
796p |void |filter_del |filter_t funcp
797p |I32 |filter_read |int idx|SV* buffer|int maxlen
798p |char** |get_op_descs
799p |char** |get_op_names
800p |char* |get_no_modify
801p |U32* |get_opargs
802p |I32 |cxinc
803p |void |deb |const char* pat|...
804p |void |deb_growlevel
805p |void |debprofdump
806p |I32 |debop |OP* o
807p |I32 |debstack
808p |I32 |debstackptrs
809p |char* |delimcpy |char* to|char* toend|char* from \
810 |char* fromend|int delim|I32* retlen
811p |void |deprecate |char* s
812p |OP* |die |const char* pat|...
813p |OP* |die_where |char* message|STRLEN msglen
814p |void |dounwind |I32 cxix
815p |bool |do_aexec |SV* really|SV** mark|SV** sp
816p |int |do_binmode |PerlIO *fp|int iotype|int flag
817p |void |do_chop |SV* asv|SV* sv
818p |bool |do_close |GV* gv|bool not_implicit
819p |bool |do_eof |GV* gv
820p |bool |do_exec |char* cmd
821#if !defined(WIN32)
822p |bool |do_exec3 |char* cmd|int fd|int flag
823#endif
824p |void |do_execfree
825#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
826p |I32 |do_ipcctl |I32 optype|SV** mark|SV** sp
827p |I32 |do_ipcget |I32 optype|SV** mark|SV** sp
828p |I32 |do_msgrcv |SV** mark|SV** sp
829p |I32 |do_msgsnd |SV** mark|SV** sp
830p |I32 |do_semop |SV** mark|SV** sp
831p |I32 |do_shmio |I32 optype|SV** mark|SV** sp
832#endif
833p |void |do_join |SV* sv|SV* del|SV** mark|SV** sp
834p |OP* |do_kv
835p |bool |do_open |GV* gv|char* name|I32 len|int as_raw \
836 |int rawmode|int rawperm|PerlIO* supplied_fp
837p |void |do_pipe |SV* sv|GV* rgv|GV* wgv
838p |bool |do_print |SV* sv|PerlIO* fp
839p |OP* |do_readline
840p |I32 |do_chomp |SV* sv
841p |bool |do_seek |GV* gv|Off_t pos|int whence
842p |void |do_sprintf |SV* sv|I32 len|SV** sarg
843p |Off_t |do_sysseek |GV* gv|Off_t pos|int whence
844p |Off_t |do_tell |GV* gv
845p |I32 |do_trans |SV* sv
846p |void |do_vecset |SV* sv
847p |void |do_vop |I32 optype|SV* sv|SV* left|SV* right
848p |OP* |dofile |OP* term
849p |I32 |dowantarray
850p |void |dump_all
851p |void |dump_eval
852#if defined(DUMP_FDS)
853p |void |dump_fds |char* s
854#endif
855p |void |dump_form |GV* gv
856p |void |gv_dump |GV* gv
857p |void |op_dump |OP* arg
858p |void |pmop_dump |PMOP* pm
859p |void |dump_packsubs |HV* stash
860p |void |dump_sub |GV* gv
861p |void |fbm_compile |SV* sv|U32 flags
862p |char* |fbm_instr |unsigned char* big|unsigned char* bigend \
863 |SV* littlesv|U32 flags
864p |char* |find_script |char *scriptname|bool dosearch \
865 |char **search_ext|I32 flags
866#if defined(USE_THREADS)
867p |PADOFFSET|find_threadsv|const char *name
868#endif
869p |OP* |force_list |OP* arg
870p |OP* |fold_constants |OP* arg
871p |char* |form |const char* pat|...
872p |void |free_tmps
873p |OP* |gen_constant_list|OP* o
874#if !defined(HAS_GETENV_LEN)
875p |char* |getenv_len |char* key|unsigned long *len
876#endif
877p |void |gp_free |GV* gv
878p |GP* |gp_ref |GP* gp
879p |GV* |gv_AVadd |GV* gv
880p |GV* |gv_HVadd |GV* gv
881p |GV* |gv_IOadd |GV* gv
882p |GV* |gv_autoload4 |HV* stash|const char* name|STRLEN len \
883 |I32 method
884p |void |gv_check |HV* stash
885p |void |gv_efullname |SV* sv|GV* gv
886p |void |gv_efullname3 |SV* sv|GV* gv|const char* prefix
887p |GV* |gv_fetchfile |const char* name
888p |GV* |gv_fetchmeth |HV* stash|const char* name|STRLEN len \
889 |I32 level
890p |GV* |gv_fetchmethod |HV* stash|const char* name
891p |GV* |gv_fetchmethod_autoload|HV* stash|const char* name \
892 |I32 autoload
893p |GV* |gv_fetchpv |const char* name|I32 add|I32 sv_type
894p |void |gv_fullname |SV* sv|GV* gv
895p |void |gv_fullname3 |SV* sv|GV* gv|const char* prefix
896p |void |gv_init |GV* gv|HV* stash|const char* name \
897 |STRLEN len|int multi
898p |HV* |gv_stashpv |const char* name|I32 create
899p |HV* |gv_stashpvn |const char* name|U32 namelen|I32 create
900p |HV* |gv_stashsv |SV* sv|I32 create
901p |void |hv_clear |HV* tb
902p |void |hv_delayfree_ent|HV* hv|HE* entry
903p |SV* |hv_delete |HV* tb|const char* key|U32 klen|I32 flags
904p |SV* |hv_delete_ent |HV* tb|SV* key|I32 flags|U32 hash
905p |bool |hv_exists |HV* tb|const char* key|U32 klen
906p |bool |hv_exists_ent |HV* tb|SV* key|U32 hash
907p |SV** |hv_fetch |HV* tb|const char* key|U32 klen|I32 lval
908p |HE* |hv_fetch_ent |HV* tb|SV* key|I32 lval|U32 hash
909p |void |hv_free_ent |HV* hv|HE* entry
910p |I32 |hv_iterinit |HV* tb
911p |char* |hv_iterkey |HE* entry|I32* retlen
912p |SV* |hv_iterkeysv |HE* entry
913p |HE* |hv_iternext |HV* tb
914p |SV* |hv_iternextsv |HV* hv|char** key|I32* retlen
915p |SV* |hv_iterval |HV* tb|HE* entry
916p |void |hv_ksplit |HV* hv|IV newmax
917p |void |hv_magic |HV* hv|GV* gv|int how
918p |SV** |hv_store |HV* tb|const char* key|U32 klen|SV* val \
919 |U32 hash
920p |HE* |hv_store_ent |HV* tb|SV* key|SV* val|U32 hash
921p |void |hv_undef |HV* tb
922p |I32 |ibcmp |const char* a|const char* b|I32 len
923p |I32 |ibcmp_locale |const char* a|const char* b|I32 len
924p |I32 |ingroup |I32 testgid|I32 effective
925p |void |init_stacks
926p |U32 |intro_my
927p |char* |instr |const char* big|const char* little
928p |bool |io_close |IO* io
929p |OP* |invert |OP* cmd
930p |bool |is_uni_alnum |U32 c
931p |bool |is_uni_idfirst |U32 c
932p |bool |is_uni_alpha |U32 c
933p |bool |is_uni_space |U32 c
934p |bool |is_uni_digit |U32 c
935p |bool |is_uni_upper |U32 c
936p |bool |is_uni_lower |U32 c
937p |bool |is_uni_print |U32 c
938p |U32 |to_uni_upper |U32 c
939p |U32 |to_uni_title |U32 c
940p |U32 |to_uni_lower |U32 c
941p |bool |is_uni_alnum_lc|U32 c
942p |bool |is_uni_idfirst_lc|U32 c
943p |bool |is_uni_alpha_lc|U32 c
944p |bool |is_uni_space_lc|U32 c
945p |bool |is_uni_digit_lc|U32 c
946p |bool |is_uni_upper_lc|U32 c
947p |bool |is_uni_lower_lc|U32 c
948p |bool |is_uni_print_lc|U32 c
949p |U32 |to_uni_upper_lc|U32 c
950p |U32 |to_uni_title_lc|U32 c
951p |U32 |to_uni_lower_lc|U32 c
952p |bool |is_utf8_alnum |U8 *p
953p |bool |is_utf8_idfirst|U8 *p
954p |bool |is_utf8_alpha |U8 *p
955p |bool |is_utf8_space |U8 *p
956p |bool |is_utf8_digit |U8 *p
957p |bool |is_utf8_upper |U8 *p
958p |bool |is_utf8_lower |U8 *p
959p |bool |is_utf8_print |U8 *p
960p |bool |is_utf8_mark |U8 *p
961p |OP* |jmaybe |OP* arg
962p |I32 |keyword |char* d|I32 len
963p |void |leave_scope |I32 base
964p |void |lex_end
965p |void |lex_start |SV* line
966p |OP* |linklist |OP* o
967p |OP* |list |OP* o
968p |OP* |listkids |OP* o
969p |OP* |localize |OP* arg|I32 lexical
970p |I32 |looks_like_number|SV* sv
971p |int |magic_clearenv |SV* sv|MAGIC* mg
972p |int |magic_clear_all_env|SV* sv|MAGIC* mg
973p |int |magic_clearpack|SV* sv|MAGIC* mg
974p |int |magic_clearsig |SV* sv|MAGIC* mg
975p |int |magic_existspack|SV* sv|MAGIC* mg
976p |int |magic_freeregexp|SV* sv|MAGIC* mg
977p |int |magic_get |SV* sv|MAGIC* mg
978p |int |magic_getarylen|SV* sv|MAGIC* mg
979p |int |magic_getdefelem|SV* sv|MAGIC* mg
980p |int |magic_getglob |SV* sv|MAGIC* mg
981p |int |magic_getnkeys |SV* sv|MAGIC* mg
982p |int |magic_getpack |SV* sv|MAGIC* mg
983p |int |magic_getpos |SV* sv|MAGIC* mg
984p |int |magic_getsig |SV* sv|MAGIC* mg
985p |int |magic_getsubstr|SV* sv|MAGIC* mg
986p |int |magic_gettaint |SV* sv|MAGIC* mg
987p |int |magic_getuvar |SV* sv|MAGIC* mg
988p |int |magic_getvec |SV* sv|MAGIC* mg
989p |U32 |magic_len |SV* sv|MAGIC* mg
990#if defined(USE_THREADS)
991p |int |magic_mutexfree|SV* sv|MAGIC* mg
992#endif
993p |int |magic_nextpack |SV* sv|MAGIC* mg|SV* key
994p |U32 |magic_regdata_cnt|SV* sv|MAGIC* mg
995p |int |magic_regdatum_get|SV* sv|MAGIC* mg
996p |int |magic_set |SV* sv|MAGIC* mg
997p |int |magic_setamagic|SV* sv|MAGIC* mg
998p |int |magic_setarylen|SV* sv|MAGIC* mg
999p |int |magic_setbm |SV* sv|MAGIC* mg
1000p |int |magic_setdbline|SV* sv|MAGIC* mg
1001#if defined(USE_LOCALE_COLLATE)
1002p |int |magic_setcollxfrm|SV* sv|MAGIC* mg
1003#endif
1004p |int |magic_setdefelem|SV* sv|MAGIC* mg
1005p |int |magic_setenv |SV* sv|MAGIC* mg
1006p |int |magic_setfm |SV* sv|MAGIC* mg
1007p |int |magic_setisa |SV* sv|MAGIC* mg
1008p |int |magic_setglob |SV* sv|MAGIC* mg
1009p |int |magic_setmglob |SV* sv|MAGIC* mg
1010p |int |magic_setnkeys |SV* sv|MAGIC* mg
1011p |int |magic_setpack |SV* sv|MAGIC* mg
1012p |int |magic_setpos |SV* sv|MAGIC* mg
1013p |int |magic_setsig |SV* sv|MAGIC* mg
1014p |int |magic_setsubstr|SV* sv|MAGIC* mg
1015p |int |magic_settaint |SV* sv|MAGIC* mg
1016p |int |magic_setuvar |SV* sv|MAGIC* mg
1017p |int |magic_setvec |SV* sv|MAGIC* mg
1018p |int |magic_set_all_env|SV* sv|MAGIC* mg
1019p |U32 |magic_sizepack |SV* sv|MAGIC* mg
1020p |int |magic_wipepack |SV* sv|MAGIC* mg
1021p |void |magicname |char* sym|char* name|I32 namlen
1022no |int |main |int argc|char** argv|char** env
1023#if defined(MYMALLOC)
1024np |MEM_SIZE|malloced_size |void *p
1025#endif
1026p |void |markstack_grow
1027#if defined(USE_LOCALE_COLLATE)
1028p |char* |mem_collxfrm |const char* s|STRLEN len|STRLEN* xlen
1029#endif
1030p |SV* |mess |const char* pat|va_list* args
1031p |int |mg_clear |SV* sv
1032p |int |mg_copy |SV* sv|SV* nsv|const char* key|I32 klen
1033p |MAGIC* |mg_find |SV* sv|int type
1034p |int |mg_free |SV* sv
1035p |int |mg_get |SV* sv
1036p |U32 |mg_length |SV* sv
1037p |void |mg_magical |SV* sv
1038p |int |mg_set |SV* sv
1039p |I32 |mg_size |SV* sv
1040p |OP* |mod |OP* o|I32 type
1041p |char* |moreswitches |char* s
1042p |OP* |my |OP* o
1043#if !defined(HAS_BCOPY) || !defined(HAS_SAFE_BCOPY)
1044p |char* |my_bcopy |const char* from|char* to|I32 len
1045#endif
1046#if !defined(HAS_BZERO) && !defined(HAS_MEMSET)
1047p |char* |my_bzero |char* loc|I32 len
1048#endif
1049pr |void |my_exit |U32 status
1050pr |void |my_failure_exit
1051p |I32 |my_fflush_all
1052p |I32 |my_lstat
1053#if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP)
1054p |I32 |my_memcmp |const char* s1|const char* s2|I32 len
1055#endif
1056#if !defined(HAS_MEMSET)
1057p |void* |my_memset |char* loc|I32 ch|I32 len
1058#endif
1059#if !defined(PERL_OBJECT)
1060p |I32 |my_pclose |PerlIO* ptr
1061p |PerlIO*|my_popen |char* cmd|char* mode
1062#endif
1063p |void |my_setenv |char* nam|char* val
1064p |I32 |my_stat
1065#if defined(MYSWAP)
1066p |short |my_swap |short s
1067p |long |my_htonl |long l
1068p |long |my_ntohl |long l
1069#endif
1070p |void |my_unexec
1071p |OP* |newANONLIST |OP* o
1072p |OP* |newANONHASH |OP* o
1073p |OP* |newANONSUB |I32 floor|OP* proto|OP* block
1074p |OP* |newASSIGNOP |I32 flags|OP* left|I32 optype|OP* right
1075p |OP* |newCONDOP |I32 flags|OP* expr|OP* trueop|OP* falseop
1076p |void |newCONSTSUB |HV* stash|char* name|SV* sv
1077p |void |newFORM |I32 floor|OP* o|OP* block
1078p |OP* |newFOROP |I32 flags|char* label|line_t forline \
1079 |OP* sclr|OP* expr|OP*block|OP*cont
1080p |OP* |newLOGOP |I32 optype|I32 flags|OP* left|OP* right
1081p |OP* |newLOOPEX |I32 type|OP* label
1082p |OP* |newLOOPOP |I32 flags|I32 debuggable|OP* expr|OP* block
1083p |OP* |newNULLLIST
1084p |OP* |newOP |I32 optype|I32 flags
1085p |void |newPROG |OP* o
1086p |OP* |newRANGE |I32 flags|OP* left|OP* right
1087p |OP* |newSLICEOP |I32 flags|OP* subscript|OP* listop
1088p |OP* |newSTATEOP |I32 flags|char* label|OP* o
1089p |CV* |newSUB |I32 floor|OP* o|OP* proto|OP* block
1090p |CV* |newXS |char* name|XSUBADDR_t f|char* filename
1091p |AV* |newAV
1092p |OP* |newAVREF |OP* o
1093p |OP* |newBINOP |I32 type|I32 flags|OP* first|OP* last
1094p |OP* |newCVREF |I32 flags|OP* o
1095p |OP* |newGVOP |I32 type|I32 flags|GV* gv
1096p |GV* |newGVgen |char* pack
1097p |OP* |newGVREF |I32 type|OP* o
1098p |OP* |newHVREF |OP* o
1099p |HV* |newHV
1100p |HV* |newHVhv |HV* hv
1101p |IO* |newIO
1102p |OP* |newLISTOP |I32 type|I32 flags|OP* first|OP* last
1103p |OP* |newPMOP |I32 type|I32 flags
1104p |OP* |newPVOP |I32 type|I32 flags|char* pv
1105p |SV* |newRV |SV* pref
1106p |SV* |newRV_noinc |SV *sv
1107p |SV* |newSV |STRLEN len
1108p |OP* |newSVREF |OP* o
1109p |OP* |newSVOP |I32 type|I32 flags|SV* sv
1110p |SV* |newSViv |IV i
1111p |SV* |newSVnv |double n
1112p |SV* |newSVpv |const char* s|STRLEN len
1113p |SV* |newSVpvn |const char* s|STRLEN len
1114p |SV* |newSVpvf |const char* pat|...
1115p |SV* |newSVrv |SV* rv|const char* classname
1116p |SV* |newSVsv |SV* old
1117p |OP* |newUNOP |I32 type|I32 flags|OP* first
1118p |OP* |newWHILEOP |I32 flags|I32 debuggable|LOOP* loop \
1119 |I32 whileline|OP* expr|OP* block|OP* cont
1120#if defined(USE_THREADS)
1121p |struct perl_thread*|new_struct_thread|struct perl_thread *t
1122#endif
1123p |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems
1124p |PerlIO*|nextargv |GV* gv
1125p |char* |ninstr |const char* big|const char* bigend \
1126 |const char* little|const char* lend
1127p |OP* |oopsCV |OP* o
1128p |void |op_free |OP* arg
1129p |void |package |OP* o
1130p |PADOFFSET|pad_alloc |I32 optype|U32 tmptype
1131p |PADOFFSET|pad_allocmy |char* name
1132p |PADOFFSET|pad_findmy |char* name
1133p |OP* |oopsAV |OP* o
1134p |OP* |oopsHV |OP* o
1135p |void |pad_leavemy |I32 fill
1136p |SV* |pad_sv |PADOFFSET po
1137p |void |pad_free |PADOFFSET po
1138p |void |pad_reset
1139p |void |pad_swipe |PADOFFSET po
1140p |void |peep |OP* o
1141no |PerlInterpreter* |perl_alloc
1142p |void |call_atexit |ATEXIT_t fn|void *ptr
1143p |I32 |call_argv |const char* sub_name|I32 flags|char** argv
1144p |I32 |call_method |const char* methname|I32 flags
1145p |I32 |call_pv |const char* sub_name|I32 flags
1146p |I32 |call_sv |SV* sv|I32 flags
1147no |void |perl_construct |PerlInterpreter* sv_interp
1148no |void |perl_destruct |PerlInterpreter* sv_interp
1149p |SV* |eval_pv |const char* p|I32 croak_on_error
1150p |I32 |eval_sv |SV* sv|I32 flags
1151no |void |perl_free |PerlInterpreter* sv_interp
1152p |SV* |get_sv |const char* name|I32 create
1153p |AV* |get_av |const char* name|I32 create
1154p |HV* |get_hv |const char* name|I32 create
1155p |CV* |get_cv |const char* name|I32 create
1156p |int |init_i18nl10n |int printwarn
1157p |int |init_i18nl14n |int printwarn
1158p |void |new_collate |const char* newcoll
1159p |void |new_ctype |const char* newctype
1160p |void |new_numeric |const char* newcoll
1161p |void |set_numeric_local
1162p |void |set_numeric_standard
1163no |int |perl_parse |PerlInterpreter* sv_interp|XSINIT_t xsinit \
1164 |int argc|char** argv|char** env
1165p |void |require_pv |const char* pv
1166no |int |perl_run |PerlInterpreter* sv_interp
1167p |void |pidgone |int pid|int status
1168p |void |pmflag |U16* pmfl|int ch
1169p |OP* |pmruntime |OP* pm|OP* expr|OP* repl
1170p |OP* |pmtrans |OP* o|OP* expr|OP* repl
1171p |OP* |pop_return
1172p |void |pop_scope
1173p |OP* |prepend_elem |I32 optype|OP* head|OP* tail
1174p |void |push_return |OP* o
1175p |void |push_scope
1176p |OP* |ref |OP* o|I32 type
1177p |OP* |refkids |OP* o|I32 type
1178p |void |regdump |regexp* r
1179p |I32 |pregexec |regexp* prog|char* stringarg \
1180 |char* strend|char* strbeg|I32 minend \
1181 |SV* screamer|U32 nosave
1182p |void |pregfree |struct regexp* r
1183p |regexp*|pregcomp |char* exp|char* xend|PMOP* pm
1184p |I32 |regexec_flags |regexp* prog|char* stringarg \
1185 |char* strend|char* strbeg|I32 minend \
1186 |SV* screamer|void* data|U32 flags
1187p |regnode*|regnext |regnode* p
1188p |void |regprop |SV* sv|regnode* o
1189p |void |repeatcpy |char* to|const char* from|I32 len|I32 count
1190p |char* |rninstr |const char* big|const char* bigend \
1191 |const char* little|const char* lend
1192p |Sighandler_t|rsignal |int i|Sighandler_t t
1193p |int |rsignal_restore|int i|Sigsave_t* t
1194p |int |rsignal_save |int i|Sighandler_t t1|Sigsave_t* t2
1195p |Sighandler_t|rsignal_state|int i
1196p |void |rxres_free |void** rsp
1197p |void |rxres_restore |void** rsp|REGEXP* prx
1198p |void |rxres_save |void** rsp|REGEXP* prx
1199#if !defined(HAS_RENAME)
1200p |I32 |same_dirent |char* a|char* b
1201#endif
1202p |char* |savepv |const char* sv
1203p |char* |savepvn |const char* sv|I32 len
1204p |void |savestack_grow
1205p |void |save_aelem |AV* av|I32 idx|SV **sptr
1206p |I32 |save_alloc |I32 size|I32 pad
1207p |void |save_aptr |AV** aptr
1208p |AV* |save_ary |GV* gv
1209p |void |save_clearsv |SV** svp
1210p |void |save_delete |HV* hv|char* key|I32 klen
1211p |void |save_destructor|DESTRUCTORFUNC_t f|void* p
1212p |void |save_freesv |SV* sv
1213p |void |save_freeop |OP* o
1214p |void |save_freepv |char* pv
1215p |void |save_generic_svref|SV** sptr
1216p |void |save_gp |GV* gv|I32 empty
1217p |HV* |save_hash |GV* gv
1218p |void |save_helem |HV* hv|SV *key|SV **sptr
1219p |void |save_hints
1220p |void |save_hptr |HV** hptr
1221p |void |save_I16 |I16* intp
1222p |void |save_I32 |I32* intp
1223p |void |save_int |int* intp
1224p |void |save_item |SV* item
1225p |void |save_iv |IV* iv
1226p |void |save_list |SV** sarg|I32 maxsarg
1227p |void |save_long |long* longp
1228p |void |save_nogv |GV* gv
1229p |void |save_op
1230p |SV* |save_scalar |GV* gv
1231p |void |save_pptr |char** pptr
1232p |void |save_re_context
1233p |void |save_sptr |SV** sptr
1234p |SV* |save_svref |SV** sptr
1235p |SV** |save_threadsv |PADOFFSET i
1236p |OP* |sawparens |OP* o
1237p |OP* |scalar |OP* o
1238p |OP* |scalarkids |OP* o
1239p |OP* |scalarseq |OP* o
1240p |OP* |scalarvoid |OP* o
1241p |UV |scan_bin |char* start|I32 len|I32* retlen
1242p |UV |scan_hex |char* start|I32 len|I32* retlen
1243p |char* |scan_num |char* s
1244p |UV |scan_oct |char* start|I32 len|I32* retlen
1245p |OP* |scope |OP* o
1246p |char* |screaminstr |SV* bigsv|SV* littlesv|I32 start_shift \
1247 |I32 end_shift|I32 *state|I32 last
1248#if !defined(VMS)
1249p |I32 |setenv_getix |char* nam
1250#endif
1251p |void |setdefout |GV* gv
1252p |char* |sharepvn |const char* sv|I32 len|U32 hash
1253p |HEK* |share_hek |const char* sv|I32 len|U32 hash
1254np |Signal_t |sighandler |int sig
1255p |SV** |stack_grow |SV** sp|SV**p|int n
1256p |I32 |start_subparse |I32 is_format|U32 flags
1257p |void |sub_crush_depth|CV* cv
1258p |bool |sv_2bool |SV* sv
1259p |CV* |sv_2cv |SV* sv|HV** st|GV** gvp|I32 lref
1260p |IO* |sv_2io |SV* sv
1261p |IV |sv_2iv |SV* sv
1262p |SV* |sv_2mortal |SV* sv
1263p |double |sv_2nv |SV* sv
1264p |char* |sv_2pv |SV* sv|STRLEN* lp
1265p |UV |sv_2uv |SV* sv
1266p |IV |sv_iv |SV* sv
1267p |UV |sv_uv |SV* sv
1268p |double |sv_nv |SV* sv
1269p |char* |sv_pvn |SV *sv|STRLEN *len
1270p |I32 |sv_true |SV *sv
1271p |void |sv_add_arena |char* ptr|U32 size|U32 flags
1272p |int |sv_backoff |SV* sv
1273p |SV* |sv_bless |SV* sv|HV* stash
1274p |void |sv_catpvf |SV* sv|const char* pat|...
1275p |void |sv_catpv |SV* sv|const char* ptr
1276p |void |sv_catpvn |SV* sv|const char* ptr|STRLEN len
1277p |void |sv_catsv |SV* dsv|SV* ssv
1278p |void |sv_chop |SV* sv|char* ptr
1279p |void |sv_clean_all
1280p |void |sv_clean_objs
1281p |void |sv_clear |SV* sv
1282p |I32 |sv_cmp |SV* sv1|SV* sv2
1283p |I32 |sv_cmp_locale |SV* sv1|SV* sv2
1284#if defined(USE_LOCALE_COLLATE)
1285p |char* |sv_collxfrm |SV* sv|STRLEN* nxp
1286#endif
1287p |OP* |sv_compile_2op |SV* sv|OP** startp|char* code|AV** avp
1288p |void |sv_dec |SV* sv
1289p |void |sv_dump |SV* sv
1290p |bool |sv_derived_from|SV* sv|const char* name
1291p |I32 |sv_eq |SV* sv1|SV* sv2
1292p |void |sv_free |SV* sv
1293p |void |sv_free_arenas
1294p |char* |sv_gets |SV* sv|PerlIO* fp|I32 append
1295p |char* |sv_grow |SV* sv|STRLEN newlen
1296p |void |sv_inc |SV* sv
1297p |void |sv_insert |SV* bigsv|STRLEN offset|STRLEN len \
1298 |char* little|STRLEN littlelen
1299p |int |sv_isa |SV* sv|const char* name
1300p |int |sv_isobject |SV* sv
1301p |STRLEN |sv_len |SV* sv
1302p |STRLEN |sv_len_utf8 |SV* sv
1303p |void |sv_magic |SV* sv|SV* obj|int how|const char* name \
1304 |I32 namlen
1305p |SV* |sv_mortalcopy |SV* oldsv
1306p |SV* |sv_newmortal
1307p |SV* |sv_newref |SV* sv
1308p |char* |sv_peek |SV* sv
1309p |void |sv_pos_u2b |SV* sv|I32* offsetp|I32* lenp
1310p |void |sv_pos_b2u |SV* sv|I32* offsetp
1311p |char* |sv_pvn_force |SV* sv|STRLEN* lp
1312p |char* |sv_reftype |SV* sv|int ob
1313p |void |sv_replace |SV* sv|SV* nsv
1314p |void |sv_report_used
1315p |void |sv_reset |char* s|HV* stash
1316p |void |sv_setpvf |SV* sv|const char* pat|...
1317p |void |sv_setiv |SV* sv|IV num
1318p |void |sv_setpviv |SV* sv|IV num
1319p |void |sv_setuv |SV* sv|UV num
1320p |void |sv_setnv |SV* sv|double num
1321p |SV* |sv_setref_iv |SV* rv|const char* classname|IV iv
1322p |SV* |sv_setref_nv |SV* rv|const char* classname|double nv
1323p |SV* |sv_setref_pv |SV* rv|const char* classname|void* pv
1324p |SV* |sv_setref_pvn |SV* rv|const char* classname|char* pv \
1325 |STRLEN n
1326p |void |sv_setpv |SV* sv|const char* ptr
1327p |void |sv_setpvn |SV* sv|const char* ptr|STRLEN len
1328p |void |sv_setsv |SV* dsv|SV* ssv
1329p |void |sv_taint |SV* sv
1330p |bool |sv_tainted |SV* sv
1331p |int |sv_unmagic |SV* sv|int type
1332p |void |sv_unref |SV* sv
1333p |void |sv_untaint |SV* sv
1334p |bool |sv_upgrade |SV* sv|U32 mt
1335p |void |sv_usepvn |SV* sv|char* ptr|STRLEN len
1336p |void |sv_vcatpvfn |SV* sv|const char* pat|STRLEN patlen \
1337 |va_list* args|SV** svargs|I32 svmax \
1338 |bool *used_locale
1339p |void |sv_vsetpvfn |SV* sv|const char* pat|STRLEN patlen \
1340 |va_list* args|SV** svargs|I32 svmax \
1341 |bool *used_locale
1342p |SV* |swash_init |char* pkg|char* name|SV* listsv \
1343 |I32 minbits|I32 none
1344p |UV |swash_fetch |SV *sv|U8 *ptr
1345p |void |taint_env
1346p |void |taint_proper |const char* f|char* s
1347p |UV |to_utf8_lower |U8 *p
1348p |UV |to_utf8_upper |U8 *p
1349p |UV |to_utf8_title |U8 *p
1350#if defined(UNLINK_ALL_VERSIONS)
1351p |I32 |unlnk |char* f
1352#endif
1353#if defined(USE_THREADS)
1354p |void |unlock_condpair|void* svv
1355#endif
1356p |void |unsharepvn |const char* sv|I32 len|U32 hash
1357p |void |unshare_hek |HEK* hek
1358p |void |utilize |int aver|I32 floor|OP* version|OP* id|OP* arg
1359p |U8* |utf16_to_utf8 |U16* p|U8 *d|I32 bytelen
1360p |U8* |utf16_to_utf8_reversed|U16* p|U8 *d|I32 bytelen
1361p |I32 |utf8_distance |U8 *a|U8 *b
1362p |U8* |utf8_hop |U8 *s|I32 off
1363p |UV |utf8_to_uv |U8 *s|I32* retlen
1364p |U8* |uv_to_utf8 |U8 *d|UV uv
1365p |void |vivify_defelem |SV* sv
1366p |void |vivify_ref |SV* sv|U32 to_what
1367p |I32 |wait4pid |int pid|int* statusp|int flags
1368p |void |warn |const char* pat|...
1369p |void |warner |U32 err|const char* pat|...
1370p |void |watch |char** addr
1371p |I32 |whichsig |char* sig
1372p |int |yyerror |char* s
1373#if defined(USE_PURE_BISON)
1374p |int |yylex |YYSTYPE *lvalp|int *lcharp
1375#else
1376p |int |yylex
1377#endif
1378p |int |yyparse
1379p |int |yywarn |char* s
1380#if defined(MYMALLOC)
1381p |void |dump_mstats |char* s
1382pno |Malloc_t|malloc |MEM_SIZE nbytes
1383pno |Malloc_t|calloc |MEM_SIZE elements|MEM_SIZE size
1384pno |Malloc_t|realloc |Malloc_t where|MEM_SIZE nbytes
1385pno |Free_t |mfree |Malloc_t where
1386#endif
4f63d024 1387pn |Malloc_t|safesysmalloc |MEM_SIZE nbytes
1388pn |Malloc_t|safesyscalloc |MEM_SIZE elements|MEM_SIZE size
1389pn |Malloc_t|safesysrealloc|Malloc_t where|MEM_SIZE nbytes
1390pn |Free_t |safesysfree |Malloc_t where
cea2e8a9 1391#if defined(LEAKTEST)
4f63d024 1392pn |Malloc_t|safexmalloc |I32 x|MEM_SIZE size
1393pn |Malloc_t|safexcalloc |I32 x|MEM_SIZE elements|MEM_SIZE size
1394pn |Malloc_t|safexrealloc |Malloc_t where|MEM_SIZE size
1395pn |void |safexfree |Malloc_t where
cea2e8a9 1396#endif
1397#if defined(PERL_GLOBAL_STRUCT)
1398p |struct perl_vars *|GetVars
1399#endif
1400p |void |yydestruct |void *ptr
1401p |int |runops_standard
1402p |int |runops_debug
1403
1404#if defined(WIN32)
43165c05 1405p |int* |ErrorNo
cea2e8a9 1406#endif
1407p |void |sv_catpvf_mg |SV *sv|const char* pat|...
1408p |void |sv_catpv_mg |SV *sv|const char *ptr
1409p |void |sv_catpvn_mg |SV *sv|const char *ptr|STRLEN len
1410p |void |sv_catsv_mg |SV *dstr|SV *sstr
1411p |void |sv_setpvf_mg |SV *sv|const char* pat|...
1412p |void |sv_setiv_mg |SV *sv|IV i
1413p |void |sv_setpviv_mg |SV *sv|IV iv
1414p |void |sv_setuv_mg |SV *sv|UV u
1415p |void |sv_setnv_mg |SV *sv|double num
1416p |void |sv_setpv_mg |SV *sv|const char *ptr
1417p |void |sv_setpvn_mg |SV *sv|const char *ptr|STRLEN len
1418p |void |sv_setsv_mg |SV *dstr|SV *sstr
1419p |void |sv_usepvn_mg |SV *sv|char *ptr|STRLEN len
1420p |MGVTBL*|get_vtbl |int vtbl_id
1421p |char* |pv_display |SV *sv|char *pv|STRLEN cur|STRLEN len \
1422 |STRLEN pvlim
1423p |void |dump_indent |I32 level|PerlIO *file|const char* pat|...
1424p |void |do_gv_dump |I32 level|PerlIO *file|char *name|GV *sv
1425p |void |do_gvgv_dump |I32 level|PerlIO *file|char *name|GV *sv
1426p |void |do_hv_dump |I32 level|PerlIO *file|char *name|HV *sv
1427p |void |do_magic_dump |I32 level|PerlIO *file|MAGIC *mg|I32 nest \
1428 |I32 maxnest|bool dumpops|STRLEN pvlim
1429p |void |do_op_dump |I32 level|PerlIO *file|OP *o
1430p |void |do_pmop_dump |I32 level|PerlIO *file|PMOP *pm
1431p |void |do_sv_dump |I32 level|PerlIO *file|SV *sv|I32 nest \
1432 |I32 maxnest|bool dumpops|STRLEN pvlim
1433p |void |magic_dump |MAGIC *mg
1434p |void* |default_protect|int *excpt|protect_body_t body|...
1435p |void |reginitcolors
1436p |char* |sv_2pv_nolen |SV* sv
1437p |char* |sv_pv |SV *sv
1438p |void |sv_force_normal|SV *sv
1439p |void |tmps_grow |I32 n
1440p |SV* |sv_rvweaken |SV *sv
1441p |int |magic_killbackrefs|SV *sv|MAGIC *mg
1442
1443#if defined(PERL_IN_AV_C)
1444s |I32 |avhv_index_sv |SV* sv
1445#endif
1446
1447#if defined(PERL_IN_DOOP_C)
1448s |I32 |do_trans_CC_simple |SV *sv
1449s |I32 |do_trans_CC_count |SV *sv
1450s |I32 |do_trans_CC_complex |SV *sv
1451s |I32 |do_trans_UU_simple |SV *sv
1452s |I32 |do_trans_UU_count |SV *sv
1453s |I32 |do_trans_UU_complex |SV *sv
1454s |I32 |do_trans_UC_simple |SV *sv
1455s |I32 |do_trans_CU_simple |SV *sv
1456s |I32 |do_trans_UC_trivial |SV *sv
1457s |I32 |do_trans_CU_trivial |SV *sv
1458#endif
1459
cea2e8a9 1460#if defined(PERL_IN_GV_C)
1461s |void |gv_init_sv |GV *gv|I32 sv_type
1462#endif
1463
1464#if defined(PERL_IN_HV_C)
1465s |void |hsplit |HV *hv
1466s |void |hfreeentries |HV *hv
1467s |void |more_he
1468s |HE* |new_he
1469s |void |del_he |HE *p
1470s |HEK* |save_hek |const char *str|I32 len|U32 hash
1471s |void |hv_magic_check |HV *hv|bool *needs_copy|bool *needs_store
1472#endif
1473
1474#if defined(PERL_IN_MG_C)
1475s |void |save_magic |I32 mgs_ix|SV *sv
1476s |int |magic_methpack |SV *sv|MAGIC *mg|char *meth
1477s |int |magic_methcall |SV *sv|MAGIC *mg|char *meth|I32 f \
1478 |int n|SV *val
1479s |void |unwind_handler_stack |void *p
1480s |void |restore_magic |void *p
1481#endif
1482
1483#if defined(PERL_IN_OP_C)
1484s |I32 |list_assignment|OP *o
1485s |void |bad_type |I32 n|char *t|char *name|OP *kid
1486s |OP* |modkids |OP *o|I32 type
1487s |void |no_bareword_allowed|OP *o
1488s |OP* |no_fh_allowed |OP *o
1489s |OP* |scalarboolean |OP *o
1490s |OP* |too_few_arguments|OP *o|char* name
1491s |OP* |too_many_arguments|OP *o|char* name
1492s |void |null |OP* o
1493s |PADOFFSET|pad_findlex |char* name|PADOFFSET newoff|U32 seq \
1494 |CV* startcv|I32 cx_ix|I32 saweval|U32 flags
1495s |OP* |newDEFSVOP
1496s |OP* |new_logop |I32 type|I32 flags|OP **firstp|OP **otherp
1497s |void |simplify_sort |OP *o
1498s |bool |is_handle_constructor |OP *o|I32 argnum
1499s |char* |gv_ename |GV *gv
1500s |CV* |cv_clone2 |CV *proto|CV *outside
1501s |bool |scalar_mod_type|OP *o|I32 type
1502# if defined(PL_OP_SLAB_ALLOC)
1503s |void* |Slab_Alloc |int m|size_t sz
1504# endif
1505#endif
1506
1507#if defined(PERL_IN_PERL_C)
1508s |void |find_beginning
1509s |void |forbid_setid |char *
1510s |void |incpush |char *|int
1511s |void |init_interp
1512s |void |init_ids
1513s |void |init_debugger
1514s |void |init_lexer
1515s |void |init_main_stash
1516s |void |init_perllib
1517s |void |init_postdump_symbols|int|char **|char **
1518s |void |init_predump_symbols
1519rs |void |my_exit_jump
1520s |void |nuke_stacks
1521s |void |open_script |char *|bool|SV *|int *fd
1522s |void |usage |char *
1523s |void |validate_suid |char *|char*|int
1524s |I32 |read_e_script |int idx|SV *buf_sv|int maxlen
1525# if defined(IAMSUID)
1526s |int |fd_on_nosuid_fs|int fd
1527# endif
1528s |void* |parse_body |va_list args
1529s |void* |run_body |va_list args
1530s |void* |call_body |va_list args
1531s |void |call_xbody |OP *myop|int is_eval
1532s |void* |call_list_body |va_list args
1533# if defined(USE_THREADS)
1534s |struct perl_thread * |init_main_thread
1535# endif
1536#endif
1537
1538#if defined(PERL_IN_PP_C)
1539s |void |doencodes |SV* sv|char* s|I32 len
1540s |SV* |refto |SV* sv
1541s |U32 |seed
1542s |SV* |mul128 |SV *sv|U8 m
1543s |SV* |is_an_int |char *s|STRLEN l
1544s |int |div128 |SV *pnum|bool *done
1545#endif
1546
1547#if defined(PERL_IN_PP_CTL_C)
1548s |OP* |docatch |OP *o
1549s |void* |docatch_body |va_list args
1550s |OP* |dofindlabel |OP *o|char *label|OP **opstack|OP **oplimit
1551s |void |doparseform |SV *sv
1552s |I32 |dopoptoeval |I32 startingblock
1553s |I32 |dopoptolabel |char *label
1554s |I32 |dopoptoloop |I32 startingblock
1555s |I32 |dopoptosub |I32 startingblock
1556s |I32 |dopoptosub_at |PERL_CONTEXT* cxstk|I32 startingblock
1557s |void |free_closures
1558s |void |save_lines |AV *array|SV *sv
1559s |OP* |doeval |int gimme|OP** startop
1560s |PerlIO *|doopen_pmc |const char *name|const char *mode
1561s |void |qsortsv |SV ** array|size_t num_elts|SVCOMPARE_t f
1562s |I32 |sortcv |SV *a|SV *b
1563s |I32 |sv_ncmp |SV *a|SV *b
1564s |I32 |sv_i_ncmp |SV *a|SV *b
1565s |I32 |amagic_ncmp |SV *a|SV *b
1566s |I32 |amagic_i_ncmp |SV *a|SV *b
1567s |I32 |amagic_cmp |SV *str1|SV *str2
1568s |I32 |amagic_cmp_locale|SV *str1|SV *str2
1569#endif
1570
1571#if defined(PERL_IN_PP_HOT_C)
1572s |CV* |get_db_sub |SV **svp|CV *cv
1573# if defined(USE_THREADS)
1574s |void |unset_cvowner |void *cvarg
1575# endif
1576#endif
1577
1578#if defined(PERL_IN_PP_SYS_C)
1579s |OP* |doform |CV *cv|GV *gv|OP *retop
1580s |int |emulate_eaccess|const char* path|int mode
1581# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
1582s |int |dooneliner |char *cmd|char *filename
1583# endif
1584#endif
1585
1586#if defined(PERL_IN_REGCOMP_C)
1587s |regnode*|reg |I32|I32 *
1588s |regnode*|reganode |U8|U32
1589s |regnode*|regatom |I32 *
1590s |regnode*|regbranch |I32 *|I32
1591s |void |regc |U8|char *
1592s |void |reguni |UV|char *|I32*
1593s |regnode*|regclass
1594s |regnode*|regclassutf8
1595s |I32 |regcurly |char *
1596s |regnode*|reg_node |U8
1597s |regnode*|regpiece |I32 *
1598s |void |reginsert |U8|regnode *
1599s |void |regoptail |regnode *|regnode *
1600s |void |regtail |regnode *|regnode *
1601s |char*|regwhite |char *|char *
1602s |char*|nextchar
1603s |regnode*|dumpuntil |regnode *start|regnode *node \
1604 |regnode *last|SV* sv|I32 l
1605s |void |scan_commit |scan_data_t *data
1606s |I32 |study_chunk |regnode **scanp|I32 *deltap \
1607 |regnode *last|scan_data_t *data|U32 flags
1608s |I32 |add_data |I32 n|char *s
1609rs |void|re_croak2 |const char* pat1|const char* pat2|...
1610s |char*|regpposixcc |I32 value
1611s |void |clear_re |void *r
1612#endif
1613
1614#if defined(PERL_IN_REGEXEC_C)
1615s |I32 |regmatch |regnode *prog
1616s |I32 |regrepeat |regnode *p|I32 max
1617s |I32 |regrepeat_hard |regnode *p|I32 max|I32 *lp
1618s |I32 |regtry |regexp *prog|char *startpos
1619s |bool |reginclass |char *p|I32 c
1620s |bool |reginclassutf8 |regnode *f|U8* p
1621s |CHECKPOINT|regcppush |I32 parenfloor
1622s |char*|regcppop
1623s |char*|regcp_set_to |I32 ss
1624s |void |cache_re |regexp *prog
1625s |void |restore_pos |void *arg
1626s |U8* |reghop |U8 *pos|I32 off
1627s |U8* |reghopmaybe |U8 *pos|I32 off
1628#endif
1629
1630#if defined(PERL_IN_RUN_C)
1631s |void |debprof |OP *o
1632#endif
1633
1634#if defined(PERL_IN_SCOPE_C)
1635s |SV* |save_scalar_at |SV **sptr
1636#endif
1637
1638#if defined(PERL_IN_SV_C)
1639s |IV |asIV |SV* sv
1640s |UV |asUV |SV* sv
1641s |SV* |more_sv
1642s |void |more_xiv
1643s |void |more_xnv
1644s |void |more_xpv
1645s |void |more_xrv
1646s |XPVIV* |new_xiv
1647s |XPVNV* |new_xnv
1648s |XPV* |new_xpv
1649s |XRV* |new_xrv
1650s |void |del_xiv |XPVIV* p
1651s |void |del_xnv |XPVNV* p
1652s |void |del_xpv |XPV* p
1653s |void |del_xrv |XRV* p
1654s |void |sv_unglob |SV* sv
1655s |void |do_report_used |SV *sv
1656s |void |do_clean_objs |SV *sv
1657s |void |do_clean_named_objs|SV *sv
1658s |void |do_clean_all |SV *sv
1659s |void |not_a_number |SV *sv
1660s |void |visit |SVFUNC_t f
1661# if defined(PURIFY)
1662s |void |reg_add |SV *sv
1663s |void |reg_remove |SV *sv
1664# else
4f63d024 1665ns |void* |my_safemalloc |MEM_SIZE size
cea2e8a9 1666# endif
1667s |void |sv_add_backref |SV *tsv|SV *sv
1668s |void |sv_del_backref |SV *sv
1669# if defined(DEBUGGING)
1670s |void |del_sv |SV *p
1671# endif
1672#endif
1673
1674#if defined(PERL_IN_TOKE_C)
1675s |void |check_uni
1676s |void |force_next |I32 type
1677s |char* |force_version |char *start
1678s |char* |force_word |char *start|int token|int check_keyword \
1679 |int allow_pack|int allow_tick
1680s |SV* |tokeq |SV *sv
1681s |char* |scan_const |char *start
1682s |char* |scan_formline |char *s
1683s |char* |scan_heredoc |char *s
1684s |char* |scan_ident |char *s|char *send|char *dest \
1685 |STRLEN destlen|I32 ck_uni
1686s |char* |scan_inputsymbol|char *start
1687s |char* |scan_pat |char *start|I32 type
1688s |char* |scan_str |char *start
1689s |char* |scan_subst |char *start
1690s |char* |scan_trans |char *start
1691s |char* |scan_word |char *s|char *dest|STRLEN destlen \
1692 |int allow_package|STRLEN *slp
1693s |char* |skipspace |char *s
1694s |void |checkcomma |char *s|char *name|char *what
1695s |void |force_ident |char *s|int kind
1696s |void |incline |char *s
1697s |int |intuit_method |char *s|GV *gv
1698s |int |intuit_more |char *s
1699s |I32 |lop |I32 f|expectation x|char *s
1700s |void |missingterm |char *s
1701s |void |no_op |char *what|char *s
1702s |void |set_csh
1703s |I32 |sublex_done
1704s |I32 |sublex_push
1705s |I32 |sublex_start
1706s |char * |filter_gets |SV *sv|PerlIO *fp|STRLEN append
1707s |SV* |new_constant |char *s|STRLEN len|char *key|SV *sv \
1708 |SV *pv|char *type
1709s |int |ao |int toketype
1710s |void |depcom
1711s |char* |incl_perldb
1712s |I32 |utf16_textfilter|int idx|SV *sv|int maxlen
1713s |I32 |utf16rev_textfilter|int idx|SV *sv|int maxlen
1714s |void |restore_rsfp |void *f
1715s |void |restore_expect |void *e
1716s |void |restore_lex_expect |void *e
1717# if defined(CRIPPLED_CC)
1718s |int |uni |I32 f|char *s
1719# endif
1720# if defined(WIN32)
1721s |I32 |win32_textfilter |int idx|SV *sv|int maxlen
1722# endif
1723#endif
1724
1725#if defined(PERL_IN_UNIVERSAL_C)
1726s |SV*|isa_lookup |HV *stash|const char *name|int len|int level
1727#endif
1728
1729#if defined(PERL_IN_UTIL_C)
1730s |SV* |mess_alloc
1731rs |void |do_croak |const char *pat|va_list *args
1732s |void |do_warn |const char *pat|va_list *args
1733# if defined(LEAKTEST)
1734s |void |xstat |int
1735# endif
1736#endif