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