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