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