1: BEGIN{die "You meant to run regen/embed.pl"} # Stop early if fed to perl.
2:
3: WARNING:  The meanings of some flags have been changed as of v5.31.0
4:
5: This file is known to be processed by regen/embed.pl, autodoc.pl,
6: makedef.pl, Devel::PPPort, and porting/diag.t.
7:
8: This file contains entries for various functions and macros defined by perl.
9: Each entry includes the name, parameters, and various attributes about it.
10: In most functions listed here, the name is a short name, and the function's
11: real name is the short one, prefixed by either 'Perl_' (for publicly visible
12: functions) or 'S_' (for internal-to-a-file static ones).  In many instances a
13: macro is defined that is the name in this file, and which expands to call the
14: real (full) name, with any appropriate thread context paramaters, thus hiding
15: that detail from the typical code.
16:
17: Most macros (as opposed to function) listed here are the complete full name.
18:
19: All non-static functions defined by perl need to be listed in this file.
20: embed.pl uses the entries here to construct:
21:   1) proto.h to declare to the compiler the function interfaces; and
22:   2) embed.h to create short name macros
23:
24: Static functions internal to a file need not appear here, but there is
25: benefit to declaring them here:
26:   1)	It generally handles the thread context parameter invisibly making it
27:	trivial to add or remove needing thread context passed;
28:   2)  It defines a PERL_ARGS_ASSERT_foo macro, which can save you debugging
29:	time;
30:   3)  It is is automatically known to Devel::PPPort, making it quicker to
31:	later find out when it came into existence.  For example
32:	    perl ppport.h --api-info=/edit_distance/
33:	yields
34:		Supported at least since perl-5.23.8, with or without ppport.h.
35:
36: Lines in this file are of the form:
37:    flags|return_type|name|arg1|arg2|...|argN
38:
39: 'flags' is a string of single letters.  Most of the flags are meaningful only
40: to embed.pl; some only to autodoc.pl, and others only to makedef.pl.  The
41: comments here mostly don't include how Devel::PPPort or diag.t use them:
42:
43: A function taking no parameters will have no 'arg' elements.
44: A line may be continued onto the next by ending it with a backslash.
45: Leading and trailing whitespace will be ignored in each component.
46:
47: Most entries here have a macro created with the entry name.  This presents
48: name space collision potentials which haven't been well thought out, but are
49: now documented here.  In practice this has rarely been an issue.  At least,
50: with a macro, the XS author can #undef it, unlike a function.
51:
52: The default without flags is to declare a function for internal perl-core use
53: only.  The short name is visible only when the PERL_CORE symbol is defined.
54: On some platforms, such as Linux and Darwin, all non-static functions
55: are currently externally visible.  Because of this, and also for programs
56: that embed perl, most non-static functions should have the 'p' flag to avoid
57: namespace clashes.
58:
59: There are several advantages to using a macro instead of the full Perl_foo or
60: S_foo form: it hides the need to know if the called function requires a
61: thread context parameter or not, and the code using it is more readable
62: because of fewer parameters being visible.  And if there is some bug in it
63: that gets fixed in a later release, ppport.h can be changed to automatically
64: backport the fixed version to modules.  The only disadvantage khw can think
65: of is the namespace pollution one.
66:
67: Since we don't require a C compiler to support variadic macros (C99), the
68: macros can't be generated in such situations.
69:
70: WARNING: Any macro created in a header file is visible to XS code, unless
71: care is taken to wrap it within something like #ifdef PERL_CORE..#endif.
72: This has had to be done with things like MAX and MIN, but nearly everything
73: else has been created without regard to the namespace pollution problem.
74:
75: Here's what else you need to know about using this file with regards to name
76: space pollution:
77:
78: The A flag is used to make a function and its short name visible everywhere
79:	     on all platforms.  This should be used to make it part of Perl's
80:	     API contract with XS developers.  The documentation for these is
81:	     usually placed in perlapi.  If no documentation exists, that fact
82:	     is also noted in perlapi.
83:
84: The C flag is used instead for functions and their short names that need to
85:            be accessible everywhere, typically because they are called from a
86:            publicly available macro or inline function, but they are not for
87:            public use by themselves.  The documentation for these is placed
88:            in perlintern.  If no documentation exists, that fact is also
89:            noted in perlintern.
90:
91:            These really need the 'p' flag to avoid name space collisions.
92:
93:	     Some of these have been constructed so that the wrapper macro
94:	     names begin with an underscore to lessen the chances of a name
95:	     collision.  However, this is contrary to the C standard, and those
96:	     should be changed.
97:
98: The E flag is used instead for a function and its short name that is supposed
99:            to be used only in the core, and in extensions compiled with the
100:            PERL_EXT symbol defined.  Again, on some platforms, the function
101:            will be visible everywhere, so one of the 'p' or 'S' flags is
102:            generally needed.  Also note that an XS writer can always cheat
103:            and pretend to be an extension by #defining PERL_EXT.
104:
105: The X flag is similar to the C flag in that the function (whose entry better
106:	     have the 'p' flag) is accessible everywhere on all platforms.
107:	     However the short name macro that normally gets generated is
108:	     suppressed outside the core.  (Except it is also visible in
109:	     PERL_EXT extensions if the E flag is also specified.)  This flag
110:	     is used for functions that are called from a public macro, the
111:	     name of which isn't derived from the function name.  You'll have
112:	     to write the macro yourself, and from within it, refer to the
113:	     function in its full 'Perl_' form with any necessary thread
114:	     context parameter.
115:
116: Just below is a description of the relevant parts of the automatic
117: documentation generation system which heavily involves this file.  Below that
118: is a description of all the flags used in this file.
119:
120: Scattered around the perl source are lines of the form:
121:
122:   =for apidoc name
123:   =for apidoc_item name
124:
125: followed by pod for that function.  The purpose of these lines and the text
126: that immediately follows them is to furnish documentation for functions
127: and macros listed here in embed.fnc.  The lines tend to be placed near the
128: source for the item they describe.  autodoc.pl is run as part of the standard
129: build process to extract this documentation and build perlapi.pod from the
130: elements that are in the API (flagged as A in this file), and perlintern.pod
131: from the other elements.
132:
133: 'name' in the apidoc line corresponds to an item listed in this file, so that
134: the signature and flags need only be specified once, here, and automatically
135: they get placed into the generated pod.
136:
137: 'apidoc_item' is used for subsidiary entries, which share the same pod as the
138: plain apidoc one does.  Thus the documentation for functions which do
139: essentially the same thing, but with minor differences can all be placed in
140: the same entry.  The apidoc_item lines must all come after the apidoc line
141: and before the pod for the entry.
142:
143: The entries in this file that have corresponding '=for apidoc' entries must
144: have the 'd' flag set in this file.
145:
146: In C files, the apidoc lines are inside comment blocks.  They may also be
147: placed in pod files.  In those, the =for causes lines from there until the
148: next line beginning with an '=' to not be considered part of that pod.
149:
150: The 'h' flag is used to hide (suppress) the pod associated with =apidoc lines
151: from being placed in the generated perlapi or perlintern.  There are several
152: reasons you might want to do this, given in the 'h' flag description below,
153: but one is for the case where the =apidoc occurs in a file that contains
154: regular pod.  Without that flag, the associated pod will be placed in both
155: it, and perlapi or perlintern.  That may be what you want, but it gives you
156: the flexibility to choose that, or instead have just a link to the source pod
157: inserted in perlapi or perlintern.  This allows single-source browsing for
158: someone; they don't have to scan multiple pods trying to find something
159: suitable.
160:
161: There are also lines of this form scattered around the perl
162: source:
163:
164:   =for apidoc_section Section Name
165:   =head1 Section Name
166:
167: These aren't tied to this embed.fnc file, and so are documented in autodoc.pl.
168:
169: What goes into the documentation of a particular function ends with the next
170: line that begins with an '='.  In particular, an '=cut' line ends that
171: documentation without introducing something new.
172:
173: Various macros and other elements aren't listed here in embed.fnc.  They are
174: documented in the same manner, but since they don't have this file to get
175: information from, the defining lines have the syntax and meaning they do in
176: this file, so it can be specified:
177:
178:   =for apidoc flags|return_type|name|arg1|arg2|...|argN
179:   =for apidoc_item flags|return_type|name|arg1|arg2|...|argN
180:
181: The 'name' in any such line must not be the same as any in this file (i.e.,
182: no redundant definitions), and one of the flags on the apidoc lines must be
183: 'm' or 'y', indicating it is not a function.
184:
185: All but the name field of an apidoc_item line are optional, and if empty,
186: inherits from the controlling plain apidoc line.   The flags field is
187: generally empty, and in fact, the only flags it can have are ones directly
188: related to its display.  For example it might have the T flag to indicate no
189: thread context parameter is used, whereas the apidoc entry does have a thread
190: context.  Here is an example:
191:
192: =for apidoc    Am|char*      |SvPV       |SV* sv|STRLEN len
193: =for apidoc_item |const char*|SvPV_const |SV* sv|STRLEN len
194: =for apidoc_item |char*      |SvPV_nolen |SV* sv
195:
196: Since these are macros, the arguments need not be legal C parameters.  To
197: indicate this to downstream software that inspects these lines, there are a
198: few conventions.  An example would be:
199:
200:   =for apidoc Am|void|Newxc|void* ptr|int nitems|type|cast
201:
202: In this example, a real call of Newxc, 'type' would be specified as something
203: like 'int' or 'char', and 'cast' by perhaps 'struct foo'.
204:
205: The complete list of conventions is:
206:  type     the argument names a type
207:  cast     the argument names a type which the macro casts to
208:  SP       the argument is the stack pointer, SP
209:  block    the argument is a C brace-enclosed block
210:  number   the argument is a C numeric constant, like 3
211:  token    the argument is a generic C preprocessor token, like abc
212:  "string" the argument is a literal C double-quoted string; what's important
213:	    here are the quotes; for clarity, you can say whatever you want
214:	    inside them
215:
216: Unlike other arguments, none of these is of the form 'int name'.  There is no
217: name.
218:
219: If any argument or return value is not one of the above, and isn't legal C
220: language, the entry still can be specified, using the 'u' flag.
221:
222: 'return_type' in these lines can be empty, unlike in this file:
223:
224: =for apidoc Amnu||START_EXTERN_C
225:
226: Devel::PPPort also looks at both this file and the '=for apidoc' lines.  In
227: part it is to construct lists of elements that are or are not backported.
228:
229: makedef.pl uses this file for constructing the export list which lists the
230: symbols that should be available on all platforms.
231:
232: porting/diag.t checks some things for consistency based on this file.
233:
234: The remainder of these introductory comments detail all the possible flags:
235:
236:   A  Both long and short names are accessible fully everywhere (usually part
237:      of the public API).  If the function is not part of the public API,
238:      instead use C, E, or X.
239:
240:         add entry to the list of symbols available on all platforms
241:	    unless e or m are also specified;
242:         any doc entry goes in perlapi.pod rather than perlintern.pod.  If
243:	    there isn't a doc entry, autodoc.pl lists this in perlapi as
244:	    existing and being undocumented; unless x is also specified, in
245:	    which case it simply isn't listed.
246:         makes the short name defined for everywhere, not just for
247:	    PERL_CORE/PERL_EXT
248:
249:   a  Allocates memory a la malloc/calloc.  Also implies "R".  This flag
250:      should only be on a function which returns 'empty' memory which has no
251:      other pointers to it, and which does not contain any pointers to other
252:      things. So for example realloc() can't be 'a'.
253:
254:         proto.h: add __attribute__malloc__
255:
256:   b  Binary backward compatibility.  This is used for functions which are
257:      kept only to not have to change legacy applications that call them.  If
258:      there are no such legacy applications in a Perl installation for all
259:      functions flagged with this, the installation can run Configure with the
260:      -Accflags='-DNO_MATHOMS' parameter to not even compile them.
261:
262:      Sometimes the function has been subsumed by a more general one (say, by
263:      adding a flags parameter), and a macro exists with the original short
264:      name API, and it calls the new function, bypassing this one, and the
265:      original 'Perl_' form is being deprecated.  In this case also specify
266:      the 'M' flag.
267:
268:      Without the M flag, these functions should be deprecated, and it is an
269:      error to not also specify the 'D' flag.
270:
271:      The 'b' functions are normally moved to mathoms.c, but if circumstances
272:      dictate otherwise, they can be anywhere, provided the whole function is
273:      wrapped with
274:	    #ifndef NO_MATHOMS
275:	    ...
276:	    #endif
277:
278:      Note that this flag no longer automatically adds a 'Perl_' prefix to the
279:      name.  Additionally specify 'p' to do that.
280:
281:      This flag effectively causes nothing to happen if the perl interpreter
282:      is compiled with -DNO_MATHOMS (which causes any functions with this flag
283:      to not be compiled); otherwise these happen:
284:         add entry to the list of symbols available on all platforms;
285:         create PERL_ARGS_ASSERT_foo;
286:	  add embed.h entry (unless overridden by the 'M' or 'o' flags)
287:
288:   C  Intended for core use only.  This indicates to XS writers that they
289:      shouldn't be using this function.  Devel::PPPort informs them of this,
290:      for example.  Some functions have to be accessible everywhere even if
291:      they are not intended for public use.  An example is helper functions
292:      that are called from inline ones that are publicly available.
293:
294:         add entry to the list of symbols available on all platforms
295:	    unless e or m are also specified;
296:         any doc entry goes in perlintern.pod rather than perlapi.pod.  If
297:	    there isn't a doc entry, autodoc.pl lists this in perlintern as
298:	    existing and being undocumented
299:         makes the short name defined for everywhere, not just for
300:	    PERL_CORE/PERL_EXT
301:
302:   D  Function is deprecated:
303:
304:         proto.h: add __attribute__deprecated__
305:         autodoc.pl adds a note to this effect in the doc entry
306:
307:   d  Function has documentation (somewhere) in the source:
308:
309:         enables 'no docs for foo" warning in autodoc.pl if the documentation
310:         isn't found.
311:
312:   E  Visible to extensions included in the Perl core:
313:
314:         in embed.h, change "#ifdef PERL_CORE"
315:         into               "#if defined(PERL_CORE) || defined(PERL_EXT)"
316:
317:       To be usable from dynamically loaded extensions, either:
318:	  1) it must be static to its containing file ("i" or "S" flag); or
319:         2) be combined with the "X" flag.
320:
321:   e  Not exported
322:
323:         suppress entry in the list of symbols available on all platforms
324:
325:   f  Function takes a format string. If the function name =~ qr/strftime/
326:      then it is assumed to take a strftime-style format string as the 1st
327:      arg; otherwise it's assumed to take a printf style format string, not
328:      necessarily the 1st arg.  All the arguments following it (including
329:      possibly '...') are assumed to be for the format.
330:
331:         embed.h: any entry in here is suppressed because of varargs
332:         proto.h: add __attribute__format__ (or ...null_ok__)
333:
334:   F  Function has a '...' parameter, but don't assume it is a format.  This
335:      is to make sure that new functions with formats can't be added without
336:      considering if they are format functions or not.  A reason to use this
337:      flag even on a format function is if the format would generate
338:	    error: format string argument is not a string type
339:
340:   G  Suppress empty PERL_ARGS_ASSERT_foo macro.  Normally such a macro is
341:      generated for all entries for functions 'foo' in this file.  If there is
342:      a pointer argument to 'foo', it needs to be declared in this file as
343:      either NN or NULLOK, and the function definition must call its
344:      corresponding PERL_ARGS_ASSERT_foo macro (a porting test ensures this)
345:      which asserts at runtime (under DEBUGGING builds) that NN arguments are
346:      not NULL.  If there aren't NN arguments, use of this macro is optional.
347:      Rarely, a function will define its own PERL_ARGS_ASSERT_foo macro, and
348:      in those cases, adding this flag to its entry in this file will suppress
349:      the normal one.  It is not possible to suppress the generated macro if
350:      it isn't optional, that is, if there is at least one NN argument.
351:
352:         proto.h: PERL_ARGS_ASSERT macro is not defined unless the function
353:		   has NN arguments
354:
355:   h  Hide any documentation that would normally go into perlapi or
356:      perlintern.  This is typically used when the documentation is actually
357:      in another pod.  If you don't use the 'h', that documentation is
358:      displayed in both places; with the flag, it stays in the pod, and a
359:      link to that pod is instead placed in perlapi or perlintern.  This
360:      allows one to browse perlapi or perlintern and see all the potentially
361:      relevant elements.  A good example is perlapio.  It has documentation
362:      about PerlIO functions with other text giving context.  There's no point
363:      in writing a second entry for perlapi, but it would be good if someone
364:      browsing perlapi knew about it.  By adding '=for apidoc' lines in
365:      perlapio, the appropriate text could be simply copied into perlapi if
366:      deemed appropriate, or just a link added there when the 'h' flag is
367:      specified.
368:      This flag is useful for symbolic names for flags.  A single =for apidoc
369:      line can be added to the pod where the meaning is discussed, and perlapi
370:      will list the name, with a link to the pod.  Another use would be if
371:      there are a bunch of macros which follow a common paradigm in their
372:      naming, so rather than having an entry for each slight variation, there
373:      is an overarching one.  This flag is useful for downstream programs,
374:      such as Devel::PPPort.
375:
376:   i  inline static.  This is used for functions that the compiler is being
377:      requested to inline.  If the function is in a header file its
378:      definition will be visible (unless guarded by #if..#endif) to all
379:      XS code.  (A typical guard will be that it is being included in a
380:      particular C file(s) or in the perl core.)  Therefore, all
381:      non-guarded functions should also have the 'p' flag specified to avoid
382:      polluting the XS code name space.  Otherwise an error is generated if
383:      the 'S' flag is not also specified.
384:
385:         proto.h: function is declared as PERL_STATIC_INLINE
386:
387:   I  This flag works exactly the same as 'i' but it also adds
388:      __attribute__((always_inline)) or __forceinline if either of them is
389:      supported by the compiler.
390:
391:         proto.h: function is declared as PERL_STATIC_FORCE_INLINE and
392:                  __attribute__always_inline__ is added
393:
394:   m  Implemented as a macro; there is no function associated with this name,
395:      and hence no long Perl_ or S_ name.  However, if the macro name itself
396:      begins with 'Perl_', autodoc.pl will show a thread context parameter
397:      unless the 'T' flag is specified.
398:
399:         suppress proto.h entry (actually, not suppressed, but commented out)
400:         suppress entry in the list of exported symbols available on all platforms
401:         suppress embed.h entry, as the implementation should furnish the macro
402:
403:   M  The implementation is furnishing its own macro instead of relying on the
404:      default short name macro that simply expands to call the real name
405:      function.  This is used if the parameters need to be cast from what the
406:      caller has, or if there is a macro that bypasses this function (whose
407:      long name is being retained for backward compatibility for those who
408:      call it with that name).  An example is when a new function is created
409:      with an extra parameter and a wrapper macro is added that has the old
410:      API, but calls the new one with the exta parameter set to a default.
411:
412:      This flag requires the 'p' flag to be specified, as there would be no
413:      need to do this if the function weren't publicly accessible before.
414:
415:      The entry is processed based on the other flags, but the:
416:         embed.h entry is suppressed
417:
418:   N  The name in the entry isn't strictly a name
419:
420:      Normally, the name of the function or macro must contain all \w
421:      characters, and a warning is raised otherwise.  This flag suppresses
422:      that warning, so that weird things can be documented
423:
424:   n  Has no arguments.  Perhaps a better name would have been '0'. (used only
425:      in =for apidoc entries)
426:
427:      The macro (it can't be a function) is used without any parameters nor
428:      empty parentheses.
429:
430:      Perhaps a better name for this flag would have been '0'.  The reason the
431:      flag was not changed to that from 'n', is if D:P were to be regenerated
432:      on an older perl, it still would use the new embed.fnc shipped with it,
433:      but would be using the flags from the older perl source code.
434:
435:
436:   O  Has a perl_ compatibility macro.
437:
438:      The really OLD name for API funcs.
439:
440:      autodoc.pl adds a note that the perl_ form of this function is
441:      deprecated.
442:
443:   o  Has no Perl_foo or S_foo compatibility macro:
444:
445:	This is used for whatever reason to force the function to be called
446:	with the long name.  Perhaps there is a varargs issue.  Use the 'M'
447:	flag instead for wrapper macros, and legacy-only functions should
448:	also use 'b'.
449:
450:         embed.h: suppress "#define foo Perl_foo"
451:
452:      autodoc.pl adds a note that this function must be explicitly called as
453:      Perl_$name, and with an aTHX_ parameter unless the 'T' flag is also
454:      specified.
455
456:      mnemonic: 'omit' generated macro
457:
458:   P  Pure function:
459:
460:	A pure function has no effects except the return value, and the return
461:       value depends only on params and/or globals.  This is a hint to the
462:	compiler that it can optimize calls to this function out of common
463:	subexpressions.  Consequently if this flag is wrongly specified, it can
464:	lead to subtle bugs that vary by platform, compiler, compiler version,
465:	and optimization level.  Also, a future commit could easily change a
466:	currently-pure function without even noticing this flag.  So it should
467:	be used sparingly, only for functions that are unlikely to ever become
468:	not pure by future commits.  It should not be used for static
469:	functions, as the compiler already has the information needed to make
470:	the 'pure' determination and doesn't need any hint; so it doesn't add
471:	value in those cases, and could be dangerous if it causes the compiler
472:	to skip doing its own checks.  It should not be used on functions that
473:	touch SVs, as those can trigger unexpected magic.  Also implies "R":
474:
475:         proto.h: add __attribute__pure__
476:
477:   p  Function in source code has a Perl_ prefix:
478:
479:         proto.h: function is declared as Perl_foo rather than foo
480:         embed.h: "#define foo Perl_foo" entries added
481:
482:   R  Return value must not be ignored (also implied by 'a' and 'P' flags):
483:
484:	gcc has a bug (which they claim is a feature) in which casting the
485:       result of one of these to (void) doesn't silence the warning that the
486:	result is ignored.  (Perl has a workaround for this bug, see
487:       PERL_UNUSED_RESULT docs)
488:
489:        proto.h: add __attribute__warn_unused_result__
490:
491:   r  Function never returns:
492:
493:        proto.h: add __attribute__noreturn__
494:
495:   S  Static function: function in source code has a S_ prefix:
496:
497:         proto.h: function is declared as S_foo rather than foo,
498:                STATIC is added to declaration;
499:         embed.h: "#define foo S_foo" entries added
500:
501:   s  autodoc.pl adds a terminating semi-colon to the usage example in the
502:      documentation.
503:
504:   T  Has no implicit interpreter/thread context argument:
505:
506:         suppress the pTHX part of "foo(pTHX...)" in proto.h;
507:         In the PERL_IMPLICIT_SYS branch of embed.h, generates
508:             "#define foo Perl_foo",      rather than
509:             "#define foo(a,b,c) Perl_foo(aTHX_ a,b,c)
510:
511:   u  The macro's (it has to be a macro) return value or parameters are
512:      unorthodox, and aren't in the list above of recognized weird ones.   For
513:      example, they aren't C parameters, or the macro expands to something
514:      that isn't a symbol.
515:
516:      For example, the expansion of STR_WITH_LEN is a comma separated pair of
517:      values, so would have this flag; or some macros take preprocessor
518:      tokens, so would have this flag.
519:
520:      This also is used for entries that require processing for use, such as
521:      being compiled by xsubpp.  This flag is an indication to downstream
522:      tools, such as Devel::PPPort, that this requires special handling.
523:
524:   U  autodoc.pl will not output a usage example
525:
526:   W  Add a comma_pDEPTH argument to function prototypes, and a comma_aDEPTH
527:      argument to the function calls. This means that under DEBUGGING
528:      a depth argument is added to the functions, which is used for
529:      example by the regex engine for debugging and trace output.
530:      A non DEBUGGING build will not pass the unused argument.
531:      Currently restricted to functions with at least one argument.
532:
533:   X  Explicitly exported:
534:
535:         add entry to the list of symbols available on all platforms, unless e
536:	    or m
537:
538:      This is often used for private functions that are used by public
539:      macros.  In those cases the macros must use the long form of the
540:      name (Perl_blah(aTHX_ ...)).
541:
542:   x  Experimental, may change:
543:
544:         any doc entry is marked that it may change.  Also used to suppress
545:	  making a perlapi doc entry if it would just be a placeholder.
546:
547:   y  Typedef.  The element names a type rather than being a macro
548:
549: In this file, pointer parameters that must not be passed NULLs should be
550: prefixed with NN.
551:
552: And, pointer parameters that may be NULL should be prefixed with NULLOK.
553: This has no effect on output yet.  It's a notation for the maintainers to
554: know "I have defined whether NULL is OK or not" rather than having neither
555: NULL or NULLOK, which is ambiguous.
556:
557: Individual flags may be separated by non-tab whitespace.
558
559CipRTX	|char *	|mortal_getenv	|NN const char * str
560
561#if defined(PERL_IMPLICIT_SYS)
562ATo	|PerlInterpreter*|perl_alloc_using \
563				|NN struct IPerlMem *ipM \
564				|NN struct IPerlMem *ipMS \
565				|NN struct IPerlMem *ipMP \
566				|NN struct IPerlEnv *ipE \
567				|NN struct IPerlStdIO *ipStd \
568				|NN struct IPerlLIO *ipLIO \
569				|NN struct IPerlDir *ipD \
570				|NN struct IPerlSock *ipS \
571				|NN struct IPerlProc *ipP
572#endif
573ATod	|PerlInterpreter*	|perl_alloc
574ATod	|void	|perl_construct	|NN PerlInterpreter *my_perl
575ATod	|int	|perl_destruct	|NN PerlInterpreter *my_perl
576ATod	|void	|perl_free	|NN PerlInterpreter *my_perl
577ATod	|int	|perl_run	|NN PerlInterpreter *my_perl
578ATod	|int	|perl_parse	|NN PerlInterpreter *my_perl|XSINIT_t xsinit \
579				|int argc|NULLOK char** argv|NULLOK char** env
580CTpR	|bool	|doing_taint	|int argc|NULLOK char** argv|NULLOK char** env
581#if defined(USE_ITHREADS)
582ATod	|PerlInterpreter*|perl_clone|NN PerlInterpreter *proto_perl|UV flags
583#  if defined(PERL_IMPLICIT_SYS)
584ATo	|PerlInterpreter*|perl_clone_using \
585				|NN PerlInterpreter *proto_perl \
586				|UV flags \
587				|NN struct IPerlMem* ipM \
588				|NN struct IPerlMem* ipMS \
589				|NN struct IPerlMem* ipMP \
590				|NN struct IPerlEnv* ipE \
591				|NN struct IPerlStdIO* ipStd \
592				|NN struct IPerlLIO* ipLIO \
593				|NN struct IPerlDir* ipD \
594				|NN struct IPerlSock* ipS \
595				|NN struct IPerlProc* ipP
596#  endif
597#endif
598
599AaTophd	|Malloc_t|malloc	|MEM_SIZE nbytes
600AaTophd	|Malloc_t|calloc	|MEM_SIZE elements|MEM_SIZE size
601ARTophd	|Malloc_t|realloc	|Malloc_t where|MEM_SIZE nbytes
602ATop	|Free_t	|mfree		|Malloc_t where
603#if defined(MYMALLOC)
604TpR	|MEM_SIZE|malloced_size	|NN void *p
605TpR	|MEM_SIZE|malloc_good_size	|size_t nbytes
606#endif
607#if defined(PERL_IN_MALLOC_C)
608ST	|int	|adjust_size_and_find_bucket	|NN size_t *nbytes_p
609#endif
610
611ATpR	|void*	|get_context
612ATp	|void	|set_context	|NN void *t
613
614XEop	|bool	|try_amagic_bin	|int method|int flags
615XEop	|bool	|try_amagic_un	|int method|int flags
616Ap	|SV*	|amagic_call	|NN SV* left|NN SV* right|int method|int dir
617Ap	|SV *	|amagic_deref_call|NN SV *ref|int method
618p	|bool	|amagic_is_enabled|int method
619Ap	|int	|Gv_AMupdate	|NN HV* stash|bool destructing
620ApR	|CV*	|gv_handler	|NULLOK HV* stash|I32 id
621Apd	|OP*	|op_append_elem	|I32 optype|NULLOK OP* first|NULLOK OP* last
622Apd	|OP*	|op_append_list	|I32 optype|NULLOK OP* first|NULLOK OP* last
623Apd	|OP*	|op_linklist	|NN OP *o
624Apd	|OP*	|op_prepend_elem|I32 optype|NULLOK OP* first|NULLOK OP* last
625: FIXME - this is only called by pp_chown. They should be merged.
626p	|I32	|apply		|I32 type|NN SV** mark|NN SV** sp
627Apx	|void	|apply_attrs_string|NN const char *stashpv|NN CV *cv|NN const char *attrstr|STRLEN len
628Apd	|void	|av_clear	|NN AV *av
629Apd	|SV*	|av_delete	|NN AV *av|SSize_t key|I32 flags
630ApdR	|bool	|av_exists	|NN AV *av|SSize_t key
631Apd	|void	|av_extend	|NN AV *av|SSize_t key
632p	|void	|av_extend_guts	|NULLOK AV *av|SSize_t key \
633				|NN SSize_t *maxp \
634				|NN SV ***allocp|NN SV ***arrayp
635ApdR	|SV**	|av_fetch	|NN AV *av|SSize_t key|I32 lval
636CipdR	|SV**	|av_fetch_simple|NN AV *av|SSize_t key|I32 lval
637Apd	|void	|av_fill	|NN AV *av|SSize_t fill
638ApdR	|SSize_t|av_len		|NN AV *av
639ApdR	|AV*	|av_make	|SSize_t size|NN SV **strp
640ApdR	|AV*	|av_new_alloc	|SSize_t size|bool zeroflag
641p	|SV*	|av_nonelem	|NN AV *av|SSize_t ix
642Apd	|SV*	|av_pop		|NN AV *av
643Apdoe	|void	|av_create_and_push|NN AV **const avp|NN SV *const val
644Apd	|void	|av_push	|NN AV *av|NN SV *val
645: Used in scope.c, and by Data::Alias
646EXp	|void	|av_reify	|NN AV *av
647ApdR	|SV*	|av_shift	|NN AV *av
648Apd	|SV**	|av_store	|NN AV *av|SSize_t key|NULLOK SV *val
649Cipd	|SV**	|av_store_simple|NN AV *av|SSize_t key|NULLOK SV *val
650AmdR	|SSize_t|av_top_index	|NN AV *av
651AidRp	|Size_t	|av_count	|NN AV *av
652AmdR	|SSize_t|av_tindex	|NN AV *av
653Apd	|void	|av_undef	|NN AV *av
654Apdoe	|SV**	|av_create_and_unshift_one|NN AV **const avp|NN SV *const val
655Apd	|void	|av_unshift	|NN AV *av|SSize_t num
656Cpo	|SV**	|av_arylen_p	|NN AV *av
657Cpo	|IV*	|av_iter_p	|NN AV *av
658#if defined(PERL_IN_AV_C)
659S	|MAGIC*	|get_aux_mg	|NN AV *av
660#endif
661: Used in perly.y
662pR	|OP*	|bind_match	|I32 type|NN OP *left|NN OP *right
663: Used in perly.y
664ApdR	|OP*	|block_end	|I32 floor|NULLOK OP* seq
665ApR	|U8	|block_gimme
666: Used in perly.y
667ApdR	|int	|block_start	|int full
668Aodxp	|void	|blockhook_register |NN BHK *hk
669p	|void	|boot_core_builtin
670: Used in perl.c
671p	|void	|boot_core_UNIVERSAL
672: Used in perl.c
673p	|void	|boot_core_PerlIO
674Ap	|void	|call_list	|I32 oldscope|NN AV *paramList
675Apd	|const PERL_CONTEXT *	|caller_cx|I32 level \
676				|NULLOK const PERL_CONTEXT **dbcxp
677: Used in several source files
678pR	|bool	|cando		|Mode_t mode|bool effective|NN const Stat_t* statbufp
679CpRT	|U32	|cast_ulong	|NV f
680CpRT	|I32	|cast_i32	|NV f
681CpRT	|IV	|cast_iv	|NV f
682CpRT	|UV	|cast_uv	|NV f
683#if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
684ApR	|I32	|my_chsize	|int fd|Off_t length
685#endif
686p	|const COP*|closest_cop	|NN const COP *cop|NULLOK const OP *o \
687				|NULLOK const OP *curop|bool opnext
688: Used in perly.y
689ApdR	|OP*	|op_convert_list	|I32 optype|I32 flags|NULLOK OP* o
690: Used in op.c and perl.c
691px	|void	|create_eval_scope|NULLOK OP *retop|U32 flags
692Aprd	|void	|croak_sv	|NN SV *baseex
693: croak()'s first parm can be NULL.  Otherwise, mod_perl breaks.
694Afprd	|void	|croak		|NULLOK const char* pat|...
695Aprd	|void	|vcroak		|NULLOK const char* pat|NULLOK va_list* args
696ATprd	|void	|croak_no_modify
697ATprd	|void	|croak_xs_usage	|NN const CV *const cv \
698				|NN const char *const params
699Tpr	|void	|croak_no_mem
700TprX	|void	|croak_popstack
701fTrp	|void	|croak_caller|NULLOK const char* pat|...
702fTpre	|void	|noperl_die|NN const char* pat|...
703#if defined(WIN32)
704Tore	|void	|win32_croak_not_implemented|NN const char * fname
705#endif
706#if defined(MULTIPLICITY)
707AdfTrp	|void	|croak_nocontext|NULLOK const char* pat|...
708AdfTrp	|OP*    |die_nocontext  |NULLOK const char* pat|...
709AfTp	|void	|deb_nocontext	|NN const char* pat|...
710AdfTp	|char*	|form_nocontext	|NN const char* pat|...
711AdFTp	|void	|load_module_nocontext|U32 flags|NN SV* name|NULLOK SV* ver|...
712AdfTp	|SV*	|mess_nocontext	|NN const char* pat|...
713AdfTp	|void	|warn_nocontext	|NN const char* pat|...
714AdfTp	|void	|warner_nocontext|U32 err|NN const char* pat|...
715AdfTp	|SV*	|newSVpvf_nocontext|NN const char *const pat|...
716AdfTp	|void	|sv_catpvf_nocontext|NN SV *const sv|NN const char *const pat|...
717AdfTp	|void	|sv_setpvf_nocontext|NN SV *const sv|NN const char *const pat|...
718AdfTp	|void	|sv_catpvf_mg_nocontext|NN SV *const sv|NN const char *const pat|...
719AdfTp	|void	|sv_setpvf_mg_nocontext|NN SV *const sv|NN const char *const pat|...
720AbfTpD	|int	|fprintf_nocontext|NN PerlIO *stream|NN const char *format|...
721AbfTpD	|int	|printf_nocontext|NN const char *format|...
722#endif
723: Used in pp.c
724pd	|SV *	|core_prototype	|NULLOK SV *sv|NN const char *name \
725				|const int code|NULLOK int * const opnum
726: Used in gv.c
727p	|OP *	|coresub_op	|NN SV *const coreargssv|const int code \
728				|const int opnum
729: Used in sv.c
730ExXp	|void	|cv_ckproto_len_flags	|NN const CV* cv|NULLOK const GV* gv\
731				|NULLOK const char* p|const STRLEN len \
732                                |const U32 flags
733: Used in pp.c and pp_sys.c
734ApdR	|SV*	|gv_const_sv	|NN GV* gv
735ApdRT	|SV*	|cv_const_sv	|NULLOK const CV *const cv
736pRT	|SV*	|cv_const_sv_or_av|NULLOK const CV *const cv
737Apd	|SV *	|cv_name	|NN CV *cv|NULLOK SV *sv|U32 flags
738Apd	|void	|cv_undef	|NN CV* cv
739p	|void	|cv_undef_flags	|NN CV* cv|U32 flags
740pd	|void	|cv_forget_slab	|NULLOK CV *cv
741Cp	|void	|cx_dump	|NN PERL_CONTEXT* cx
742AiMpd	|GV *	|CvGV		|NN CV *sv
743AiMTp	|I32 *	|CvDEPTH	|NN const CV * const sv
744Aphd	|SV*	|filter_add	|NULLOK filter_t funcp|NULLOK SV* datasv
745Ap	|void	|filter_del	|NN filter_t funcp
746ApRhd	|I32	|filter_read	|int idx|NN SV *buf_sv|int maxlen
747ApPR	|char**	|get_op_descs
748ApPR	|char**	|get_op_names
749: FIXME discussion on p5p
750pPR	|const char*	|get_no_modify
751: FIXME discussion on p5p
752pPR	|U32*	|get_opargs
753ApPR	|PPADDR_t*|get_ppaddr
754: Used by CXINC, which appears to be in widespread use
755CpR	|I32	|cxinc
756Afp	|void	|deb		|NN const char* pat|...
757Ap	|void	|vdeb		|NN const char* pat|NULLOK va_list* args
758Ap	|void	|debprofdump
759EXp	|SV*	|multideref_stringify	|NN const OP* o|NULLOK CV *cv
760EXp	|SV*	|multiconcat_stringify	|NN const OP* o
761Ap	|I32	|debop		|NN const OP* o
762Ap	|I32	|debstack
763Ap	|I32	|debstackptrs
764pR	|SV *	|defelem_target	|NN SV *sv|NULLOK MAGIC *mg
765ATpd	|char*	|delimcpy|NN char* to|NN const char* to_end		\
766			 |NN const char* from|NN const char* from_end	\
767			 |const int delim|NN I32* retlen
768EXTpd	|char*	|delimcpy_no_escape|NN char* to|NN const char* to_end	\
769				   |NN const char* from			\
770				   |NN const char* from_end		\
771				   |const int delim|NN I32* retlen
772: Used in op.c, perl.c
773px	|void	|delete_eval_scope
774Aprd	|OP*    |die_sv         |NN SV *baseex
775Afrpd	|OP*    |die            |NULLOK const char* pat|...
776: Used in util.c
777pr	|void	|die_unwind	|NN SV* msv
778Ap	|void	|dounwind	|I32 cxix
779: FIXME
780pMb	|bool|do_aexec	|NULLOK SV* really|NN SV** mark|NN SV** sp
781: Used in pp_sys.c
782p	|bool|do_aexec5	|NULLOK SV* really|NN SV** mark|NN SV** sp|int fd|int do_report
783AbpD	|int	|do_binmode	|NN PerlIO *fp|int iotype|int mode
784: Used in pp.c
785Ap	|bool	|do_close	|NULLOK GV* gv|bool not_implicit
786: Defined in doio.c, used only in pp_sys.c
787p	|bool	|do_eof		|NN GV* gv
788
789#ifdef PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION
790pM	|bool|do_exec	|NN const char* cmd
791#else
792p	|bool|do_exec	|NN const char* cmd
793#endif
794
795#if defined(WIN32) || defined(VMS)
796Ap	|int	|do_aspawn	|NULLOK SV* really|NN SV** mark|NN SV** sp
797Ap	|int	|do_spawn	|NN char* cmd
798Ap	|int	|do_spawn_nowait|NN char* cmd
799#endif
800#if !defined(WIN32)
801p	|bool|do_exec3	|NN const char *incmd|int fd|int do_report
802#endif
803#if defined(PERL_IN_DOIO_C)
804S	|void	|exec_failed	|NN const char *cmd|int fd|int do_report
805S	|bool	|argvout_final	|NN MAGIC *mg|NN IO *io|bool not_implicit
806#endif
807#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
808: Defined in doio.c, used only in pp_sys.c
809p	|I32	|do_ipcctl	|I32 optype|NN SV** mark|NN SV** sp
810: Defined in doio.c, used only in pp_sys.c
811p	|I32	|do_ipcget	|I32 optype|NN SV** mark|NN SV** sp
812: Defined in doio.c, used only in pp_sys.c
813p	|I32	|do_msgrcv	|NN SV** mark|NN SV** sp
814: Defined in doio.c, used only in pp_sys.c
815p	|I32	|do_msgsnd	|NN SV** mark|NN SV** sp
816: Defined in doio.c, used only in pp_sys.c
817p	|I32	|do_semop	|NN SV** mark|NN SV** sp
818: Defined in doio.c, used only in pp_sys.c
819p	|I32	|do_shmio	|I32 optype|NN SV** mark|NN SV** sp
820#endif
821Ap	|void	|do_join	|NN SV *sv|NN SV *delim|NN SV **mark|NN SV **sp
822: Used in pp.c and pp_hot.c, prototype generated by regen/opcode.pl
823: p	|OP*	|do_kv
824: used in pp.c, pp_hot.c
825pR	|I32	|do_ncmp	|NN SV *const left|NN SV *const right
826ApMb	|bool	|do_open	|NN GV* gv|NN const char* name|I32 len|int as_raw \
827				|int rawmode|int rawperm|NULLOK PerlIO* supplied_fp
828AbpD	|bool	|do_open9	|NN GV *gv|NN const char *name|I32 len|int as_raw \
829				|int rawmode|int rawperm|NULLOK PerlIO *supplied_fp \
830				|NN SV *svs|I32 num
831pT	|void	|setfd_cloexec|int fd
832pT	|void	|setfd_inhexec|int fd
833p	|void	|setfd_cloexec_for_nonsysfd|int fd
834p	|void	|setfd_inhexec_for_sysfd|int fd
835p	|void	|setfd_cloexec_or_inhexec_by_sysfdness|int fd
836pR	|int	|PerlLIO_dup_cloexec|int oldfd
837p	|int	|PerlLIO_dup2_cloexec|int oldfd|int newfd
838pR	|int	|PerlLIO_open_cloexec|NN const char *file|int flag
839pR	|int	|PerlLIO_open3_cloexec|NN const char *file|int flag|int perm
840pToR	|int	|my_mkstemp_cloexec|NN char *templte
841pToR	|int	|my_mkostemp_cloexec|NN char *templte|int flags
842#ifdef HAS_PIPE
843pR	|int	|PerlProc_pipe_cloexec|NN int *pipefd
844#endif
845#ifdef HAS_SOCKET
846pR	|int	|PerlSock_socket_cloexec|int domain|int type|int protocol
847pR	|int	|PerlSock_accept_cloexec|int listenfd \
848				|NULLOK struct sockaddr *addr \
849				|NULLOK Sock_size_t *addrlen
850#endif
851#if defined (HAS_SOCKETPAIR) || \
852    (defined (HAS_SOCKET) && defined(SOCK_DGRAM) && \
853	defined(AF_INET) && defined(PF_INET))
854pR	|int	|PerlSock_socketpair_cloexec|int domain|int type|int protocol \
855				|NN int *pairfd
856#endif
857#if defined(PERL_IN_DOIO_C)
858S	|IO *	|openn_setup    |NN GV *gv|NN char *mode|NN PerlIO **saveifp \
859				|NN PerlIO **saveofp|NN int *savefd \
860                                |NN char *savetype
861S	|bool	|openn_cleanup	|NN GV *gv|NN IO *io|NULLOK PerlIO *fp \
862				|NN char *mode|NN const char *oname \
863                                |NULLOK PerlIO *saveifp|NULLOK PerlIO *saveofp \
864                                |int savefd|char savetype|int writing \
865                                |bool was_fdopen|NULLOK const char *type \
866                                |NULLOK Stat_t *statbufp
867#endif
868Ap	|bool	|do_openn	|NN GV *gv|NN const char *oname|I32 len \
869				|int as_raw|int rawmode|int rawperm \
870				|NULLOK PerlIO *supplied_fp|NULLOK SV **svp \
871				|I32 num
872xp	|bool	|do_open_raw	|NN GV *gv|NN const char *oname|STRLEN len \
873				|int rawmode|int rawperm|NULLOK Stat_t *statbufp
874xp	|bool	|do_open6	|NN GV *gv|NN const char *oname|STRLEN len \
875				|NULLOK PerlIO *supplied_fp|NULLOK SV **svp \
876				|U32 num
877: Used in pp_hot.c and pp_sys.c
878p	|bool	|do_print	|NULLOK SV* sv|NN PerlIO* fp
879: Used in pp_sys.c
880pR	|OP*	|do_readline
881: Defined in doio.c, used only in pp_sys.c
882p	|bool	|do_seek	|NULLOK GV* gv|Off_t pos|int whence
883Ap	|void	|do_sprintf	|NN SV* sv|SSize_t len|NN SV** sarg
884: Defined in doio.c, used only in pp_sys.c
885p	|Off_t	|do_sysseek	|NN GV* gv|Off_t pos|int whence
886: Defined in doio.c, used only in pp_sys.c
887pR	|Off_t	|do_tell	|NN GV* gv
888: Defined in doop.c, used only in pp.c
889p	|Size_t	|do_trans	|NN SV* sv
890: Used in my.c and pp.c
891p	|UV	|do_vecget	|NN SV* sv|STRLEN offset|int size
892: Defined in doop.c, used only in mg.c (with /* XXX slurp this routine */)
893p	|void	|do_vecset	|NN SV* sv
894: Defined in doop.c, used only in pp.c
895p	|void	|do_vop		|I32 optype|NN SV* sv|NN SV* left|NN SV* right
896: Used in perly.y
897p	|OP*	|dofile		|NN OP* term|I32 force_builtin
898ApR	|U8	|dowantarray
899Adp	|void	|dump_all
900p	|void	|dump_all_perl	|bool justperl
901Ap	|void	|dump_eval
902Ap	|void	|dump_form	|NN const GV* gv
903Ap	|void	|gv_dump	|NULLOK GV* gv
904Apd	|OPclass|op_class	|NULLOK const OP *o
905Apd	|void	|op_dump	|NN const OP *o
906Ap	|void	|pmop_dump	|NULLOK PMOP* pm
907Apd	|void	|dump_packsubs	|NN const HV* stash
908p	|void	|dump_packsubs_perl	|NN const HV* stash|bool justperl
909Ap	|void	|dump_sub	|NN const GV* gv
910p	|void	|dump_sub_perl	|NN const GV* gv|bool justperl
911Apd	|void	|fbm_compile	|NN SV* sv|U32 flags
912ApdR	|char*	|fbm_instr	|NN unsigned char* big|NN unsigned char* bigend \
913				|NN SV* littlestr|U32 flags
914pEXTR	|const char *|cntrl_to_mnemonic|const U8 c
915p	|CV *	|find_lexical_cv|PADOFFSET off
916: Defined in util.c, used only in perl.c
917p	|char*	|find_script	|NN const char *scriptname|bool dosearch \
918				|NULLOK const char *const *const search_ext|I32 flags
919#if defined(PERL_IN_OP_C)
920S	|OP*	|force_list	|NULLOK OP* arg|bool nullit
921i	|OP*	|op_integerize	|NN OP *o
922i	|OP*	|op_std_init	|NN OP *o
923#if defined(USE_ITHREADS)
924i	|void	|op_relocate_sv	|NN SV** svp|NN PADOFFSET* targp
925#endif
926i	|OP*	|newMETHOP_internal	|I32 type|I32 flags|NULLOK OP* dynamic_meth \
927					|NULLOK SV* const_meth
928: FIXME
929S	|OP*	|fold_constants	|NN OP * const o
930Sd	|OP*	|traverse_op_tree|NN OP* top|NN OP* o
931#endif
932Afpd	|char*	|form		|NN const char* pat|...
933Adp	|char*	|vform		|NN const char* pat|NULLOK va_list* args
934Cp	|void	|free_tmps
935#if defined(PERL_IN_OP_C)
936S	|void	|gen_constant_list|NULLOK OP* o
937#endif
938#if !defined(HAS_GETENV_LEN)
939: Used in hv.c
940p	|char*	|getenv_len	|NN const char *env_elem|NN unsigned long *len
941#endif
942: Used in pp_ctl.c and pp_hot.c
943poe	|void	|get_db_sub	|NULLOK SV **svp|NN CV *cv
944Ap	|void	|gp_free	|NULLOK GV* gv
945Ap	|GP*	|gp_ref		|NULLOK GP* gp
946Ap	|GV*	|gv_add_by_type	|NULLOK GV *gv|svtype type
947ApMb	|GV*	|gv_AVadd	|NULLOK GV *gv
948ApMb	|GV*	|gv_HVadd	|NULLOK GV *gv
949ApMb	|GV*	|gv_IOadd	|NULLOK GV* gv
950AdmR	|GV*	|gv_autoload4	|NULLOK HV* stash|NN const char* name \
951				|STRLEN len|I32 method
952ApR	|GV*	|gv_autoload_sv	|NULLOK HV* stash|NN SV* namesv|U32 flags
953ApR	|GV*	|gv_autoload_pv	|NULLOK HV* stash|NN const char* namepv \
954                                |U32 flags
955ApR	|GV*	|gv_autoload_pvn	|NULLOK HV* stash|NN const char* name \
956                                        |STRLEN len|U32 flags
957Cp	|void	|gv_check	|NN HV* stash
958AbpD	|void	|gv_efullname	|NN SV* sv|NN const GV* gv
959ApMb	|void	|gv_efullname3	|NN SV* sv|NN const GV* gv|NULLOK const char* prefix
960Ap	|void	|gv_efullname4	|NN SV* sv|NN const GV* gv|NULLOK const char* prefix|bool keepmain
961Adp	|GV*	|gv_fetchfile	|NN const char* name
962Adp	|GV*	|gv_fetchfile_flags|NN const char *const name|const STRLEN len\
963				|const U32 flags
964Amd	|GV*	|gv_fetchmeth	|NULLOK HV* stash|NN const char* name \
965				|STRLEN len|I32 level
966Apd	|GV*	|gv_fetchmeth_sv	|NULLOK HV* stash|NN SV* namesv|I32 level|U32 flags
967Apd	|GV*	|gv_fetchmeth_pv	|NULLOK HV* stash|NN const char* name \
968                                        |I32 level|U32 flags
969Apd	|GV*	|gv_fetchmeth_pvn	|NULLOK HV* stash|NN const char* name \
970                                        |STRLEN len|I32 level|U32 flags
971Amd	|GV*	|gv_fetchmeth_autoload	|NULLOK HV* stash \
972					|NN const char* name|STRLEN len \
973					|I32 level
974Apd	|GV*	|gv_fetchmeth_sv_autoload	|NULLOK HV* stash|NN SV* namesv|I32 level|U32 flags
975Apd	|GV*	|gv_fetchmeth_pv_autoload	|NULLOK HV* stash|NN const char* name \
976                                        |I32 level|U32 flags
977Apd	|GV*	|gv_fetchmeth_pvn_autoload	|NULLOK HV* stash|NN const char* name \
978                                        |STRLEN len|I32 level|U32 flags
979ApdMb	|GV*	|gv_fetchmethod	|NN HV* stash|NN const char* name
980Apd	|GV*	|gv_fetchmethod_autoload|NN HV* stash|NN const char* name \
981				|I32 autoload
982Apx	|GV*	|gv_fetchmethod_sv_flags|NN HV* stash|NN SV* namesv|U32 flags
983Apx	|GV*	|gv_fetchmethod_pv_flags|NN HV* stash|NN const char* name \
984				|U32 flags
985Apx	|GV*	|gv_fetchmethod_pvn_flags|NN HV* stash|NN const char* name \
986				|const STRLEN len|U32 flags
987Adp	|GV*	|gv_fetchpv	|NN const char *nambeg|I32 flags|const svtype sv_type
988AbpD	|void	|gv_fullname	|NN SV* sv|NN const GV* gv
989ApMb	|void	|gv_fullname3	|NN SV* sv|NN const GV* gv|NULLOK const char* prefix
990Ap	|void	|gv_fullname4	|NN SV* sv|NN const GV* gv|NULLOK const char* prefix|bool keepmain
991: Used in scope.c
992pxoe	|GP *	|newGP		|NN GV *const gv
993pX	|void	|cvgv_set	|NN CV* cv|NULLOK GV* gv
994poX	|GV *	|cvgv_from_hek	|NN CV* cv
995pX	|void	|cvstash_set	|NN CV* cv|NULLOK HV* stash
996Amd	|void	|gv_init	|NN GV* gv|NULLOK HV* stash \
997                                |NN const char* name|STRLEN len|int multi
998Apd	|void	|gv_init_sv	|NN GV* gv|NULLOK HV* stash|NN SV* namesv|U32 flags
999Apd	|void	|gv_init_pv	|NN GV* gv|NULLOK HV* stash|NN const char* name \
1000                                |U32 flags
1001Apd	|void	|gv_init_pvn	|NN GV* gv|NULLOK HV* stash|NN const char* name \
1002                                |STRLEN len|U32 flags
1003Ap	|void	|gv_name_set	|NN GV* gv|NN const char *name|U32 len|U32 flags
1004pe	|GV *	|gv_override	|NN const char * const name \
1005				|const STRLEN len
1006Xxpd	|void	|gv_try_downgrade|NN GV* gv
1007p	|void	|gv_setref	|NN SV *const dsv|NN SV *const ssv
1008Apd	|HV*	|gv_stashpv	|NN const char* name|I32 flags
1009Apd	|HV*	|gv_stashpvn	|NN const char* name|U32 namelen|I32 flags
1010#if defined(PERL_IN_GV_C) || defined(PERL_IN_UNIVERSAL_C)
1011EpGd	|HV*	|gv_stashsvpvn_cached|SV *namesv|const char* name|U32 namelen|I32 flags
1012#endif
1013#if defined(PERL_IN_GV_C)
1014i	|HV*	|gv_stashpvn_internal	|NN const char* name|U32 namelen|I32 flags
1015i	|GV*	|gv_fetchmeth_internal	|NULLOK HV* stash|NULLOK SV* meth|NULLOK const char* name \
1016					|STRLEN len|I32 level|U32 flags
1017#endif
1018Apd	|HV*	|gv_stashsv	|NN SV* sv|I32 flags
1019po	|struct xpvhv_aux*|hv_auxalloc|NN HV *hv
1020Apd	|void	|hv_clear	|NULLOK HV *hv
1021: used in SAVEHINTS() and op.c
1022ApdR	|HV *	|hv_copy_hints_hv|NULLOK HV *const ohv
1023Ap	|void	|hv_delayfree_ent|NN HV *hv|NULLOK HE *entry
1024AbMdp	|SV*	|hv_delete	|NULLOK HV *hv|NN const char *key|I32 klen \
1025				|I32 flags
1026AbMdp	|SV*	|hv_delete_ent	|NULLOK HV *hv|NN SV *keysv|I32 flags|U32 hash
1027AbMdRp	|bool	|hv_exists	|NULLOK HV *hv|NN const char *key|I32 klen
1028AbMdRp	|bool	|hv_exists_ent	|NULLOK HV *hv|NN SV *keysv|U32 hash
1029AbMdp	|SV**	|hv_fetch	|NULLOK HV *hv|NN const char *key|I32 klen \
1030				|I32 lval
1031AbMdp	|HE*	|hv_fetch_ent	|NULLOK HV *hv|NN SV *keysv|I32 lval|U32 hash
1032Cp	|void*	|hv_common	|NULLOK HV *hv|NULLOK SV *keysv \
1033				|NULLOK const char* key|STRLEN klen|int flags \
1034				|int action|NULLOK SV *val|U32 hash
1035Cp	|void*	|hv_common_key_len|NULLOK HV *hv|NN const char *key \
1036				|I32 klen_i32|const int action|NULLOK SV *val \
1037				|const U32 hash
1038Apod	|STRLEN	|hv_fill	|NN HV *const hv
1039Ap	|void	|hv_free_ent	|NN HV *hv|NULLOK HE *entry
1040Apd	|I32	|hv_iterinit	|NN HV *hv
1041ApdR	|char*	|hv_iterkey	|NN HE* entry|NN I32* retlen
1042ApdR	|SV*	|hv_iterkeysv	|NN HE* entry
1043ApdRbM	|HE*	|hv_iternext	|NN HV *hv
1044ApdR	|SV*	|hv_iternextsv	|NN HV *hv|NN char **key|NN I32 *retlen
1045ApxdR	|HE*	|hv_iternext_flags|NN HV *hv|I32 flags
1046ApdR	|SV*	|hv_iterval	|NN HV *hv|NN HE *entry
1047Ap	|void	|hv_ksplit	|NN HV *hv|IV newmax
1048ApdbM	|void	|hv_magic	|NN HV *hv|NULLOK GV *gv|int how
1049#if defined(PERL_IN_HV_C)
1050S	|SV *	|refcounted_he_value	|NN const struct refcounted_he *he
1051#endif
1052Xpd	|HV *	|refcounted_he_chain_2hv|NULLOK const struct refcounted_he *c|U32 flags
1053Xpd	|SV *	|refcounted_he_fetch_pvn|NULLOK const struct refcounted_he *chain \
1054				|NN const char *keypv|STRLEN keylen|U32 hash|U32 flags
1055Xpd	|SV *	|refcounted_he_fetch_pv|NULLOK const struct refcounted_he *chain \
1056				|NN const char *key|U32 hash|U32 flags
1057Xpd	|SV *	|refcounted_he_fetch_sv|NULLOK const struct refcounted_he *chain \
1058				|NN SV *key|U32 hash|U32 flags
1059Xpd	|struct refcounted_he *|refcounted_he_new_pvn \
1060				|NULLOK struct refcounted_he *parent \
1061				|NN const char *keypv|STRLEN keylen \
1062				|U32 hash|NULLOK SV *value|U32 flags
1063Xpd	|struct refcounted_he *|refcounted_he_new_pv \
1064				|NULLOK struct refcounted_he *parent \
1065				|NN const char *key \
1066				|U32 hash|NULLOK SV *value|U32 flags
1067Xpd	|struct refcounted_he *|refcounted_he_new_sv \
1068				|NULLOK struct refcounted_he *parent \
1069				|NN SV *key \
1070				|U32 hash|NULLOK SV *value|U32 flags
1071Xpd	|void	|refcounted_he_free|NULLOK struct refcounted_he *he
1072Xpd	|struct refcounted_he *|refcounted_he_inc|NULLOK struct refcounted_he *he
1073ApbMd	|SV**	|hv_store	|NULLOK HV *hv|NULLOK const char *key \
1074				|I32 klen|NULLOK SV *val|U32 hash
1075ApbMd	|HE*	|hv_store_ent	|NULLOK HV *hv|NULLOK SV *key|NULLOK SV *val\
1076				|U32 hash
1077ApbMx	|SV**	|hv_store_flags	|NULLOK HV *hv|NULLOK const char *key \
1078				|I32 klen|NULLOK SV *val|U32 hash|int flags
1079Amd	|void	|hv_undef	|NULLOK HV *hv
1080poX	|void	|hv_undef_flags	|NULLOK HV *hv|U32 flags
1081AdmP	|I32	|ibcmp		|NN const char* a|NN const char* b|I32 len
1082AdiTp	|I32	|foldEQ		|NN const char* a|NN const char* b|I32 len
1083AdmP	|I32	|ibcmp_locale	|NN const char* a|NN const char* b|I32 len
1084AiTpd	|I32	|foldEQ_locale	|NN const char* a|NN const char* b|I32 len
1085Adm	|I32	|ibcmp_utf8	|NN const char *s1|NULLOK char **pe1|UV l1 \
1086				|bool u1|NN const char *s2|NULLOK char **pe2 \
1087				|UV l2|bool u2
1088Amd	|I32	|foldEQ_utf8	|NN const char *s1|NULLOK char **pe1|UV l1 \
1089				|bool u1|NN const char *s2|NULLOK char **pe2 \
1090				|UV l2|bool u2
1091Cp	|I32	|foldEQ_utf8_flags |NN const char *s1|NULLOK char **pe1|UV l1 \
1092				|bool u1|NN const char *s2|NULLOK char **pe2 \
1093				|UV l2|bool u2|U32 flags
1094CiTp	|I32	|foldEQ_latin1	|NN const char* a|NN const char* b|I32 len
1095#if defined(PERL_IN_DOIO_C)
1096SR	|bool	|ingroup	|Gid_t testgid|bool effective
1097#endif
1098: Used in toke.c
1099p	|void	|init_argv_symbols|int argc|NN char **argv
1100: Used in pp_ctl.c
1101po	|void	|init_dbargs
1102: Used in mg.c
1103p	|void	|init_debugger
1104Ap	|void	|init_stacks
1105Ap	|void	|init_tm	|NN struct tm *ptm
1106: Used in perly.y
1107AbMTpPRd|char*	|instr		|NN const char* big|NN const char* little
1108: Used in sv.c
1109p	|bool	|io_close	|NN IO* io|NULLOK GV *gv \
1110				|bool not_implicit|bool warn_on_fail
1111: Used in perly.y
1112pR	|OP*	|invert		|NULLOK OP* cmd
1113pR	|OP*	|cmpchain_start	|I32 type|NULLOK OP* left \
1114				|NULLOK OP* right
1115pR	|OP*	|cmpchain_extend|I32 type|NN OP* ch|NULLOK OP* right
1116pR	|OP*	|cmpchain_finish|NN OP* ch
1117ApR	|I32	|is_lvalue_sub
1118: Used in cop.h
1119XopR	|I32	|was_lvalue_sub
1120CpRTP	|STRLEN	|is_utf8_char_helper_|NN const U8 * const s|NN const U8 * e|const U32 flags
1121CpRTP	|Size_t	|is_utf8_FF_helper_|NN const U8 * const s0		    \
1122				|NN const U8 * const e			    \
1123				|const bool require_partial
1124Cp	|UV	|to_uni_upper	|UV c|NN U8 *p|NN STRLEN *lenp
1125Cp	|UV	|to_uni_title	|UV c|NN U8 *p|NN STRLEN *lenp
1126p	|void	|init_uniprops
1127#ifdef PERL_IN_UTF8_C
1128STR	|U8	|to_lower_latin1|const U8 c|NULLOK U8 *p|NULLOK STRLEN *lenp  \
1129		|const char dummy
1130#endif
1131#if defined(PERL_IN_UTF8_C) || defined(PERL_IN_PP_C)
1132p	|UV	|_to_upper_title_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const char S_or_s
1133#endif
1134Cp	|UV	|to_uni_lower	|UV c|NN U8 *p|NN STRLEN *lenp
1135Cm	|UV	|to_uni_fold	|UV c|NN U8 *p|NN STRLEN *lenp
1136Cp	|UV	|_to_uni_fold_flags|UV c|NN U8 *p|NN STRLEN *lenp|U8 flags
1137CpR	|bool	|_is_uni_perl_idcont|UV c
1138CpR	|bool	|_is_uni_perl_idstart|UV c
1139ATdmoR	|bool	|is_utf8_invariant_string|NN const U8* const s		    \
1140		|STRLEN len
1141ATidRp	|bool	|is_utf8_invariant_string_loc|NN const U8* const s	    \
1142		|STRLEN len						    \
1143		|NULLOK const U8 ** ep
1144CTiRp	|unsigned|single_1bit_pos32|U32 word
1145CTiRp	|unsigned|lsbit_pos32|U32 word
1146CTiRp	|unsigned|msbit_pos32|U32 word
1147#ifdef U64TYPE	/* HAS_QUAD undefined outside of core */
1148CTiRp	|unsigned|single_1bit_pos64|U64 word
1149CTiRp	|unsigned|lsbit_pos64|U64 word
1150CTiRp	|unsigned|msbit_pos64|U64 word
1151#endif
1152#ifndef EBCDIC
1153CTiRp	|unsigned int|variant_byte_number|PERL_UINTMAX_T word
1154#endif
1155#if defined(PERL_CORE) || defined(PERL_EXT)
1156EiTRd	|Size_t	|variant_under_utf8_count|NN const U8* const s		    \
1157		|NN const U8* const e
1158#endif
1159AmTdRP	|bool	|is_ascii_string|NN const U8* const s|STRLEN len
1160AmTdRP	|bool	|is_invariant_string|NN const U8* const s|STRLEN len
1161#if defined(PERL_CORE) || defined (PERL_EXT)
1162EXTidRp	|bool	|is_utf8_non_invariant_string|NN const U8* const s	    \
1163		|STRLEN len
1164#endif
1165AbTpdD	|STRLEN	|is_utf8_char	|NN const U8 *s
1166AbMTpd	|STRLEN	|is_utf8_char_buf|NN const U8 *buf|NN const U8 *buf_end
1167ATidRp	|Size_t	|isUTF8_CHAR|NN const U8 * const s0			    \
1168			    |NN const U8 * const e
1169ATidRp	|Size_t	|isUTF8_CHAR_flags|NN const U8 * const s0		    \
1170			    |NN const U8 * const e			    \
1171			    |const U32 flags
1172ATidRp	|Size_t	|isSTRICT_UTF8_CHAR |NN const U8 * const s0		    \
1173				    |NN const U8 * const e
1174ATidRp	|Size_t	|isC9_STRICT_UTF8_CHAR |NN const U8 * const s0		    \
1175				       |NN const U8 * const e
1176ATmdR	|bool	|is_utf8_string	|NN const U8 *s|STRLEN len
1177ATidRp	|bool	|is_utf8_string_flags					    \
1178		|NN const U8 *s|STRLEN len|const U32 flags
1179ATmdR	|bool	|is_strict_utf8_string|NN const U8 *s|STRLEN len
1180ATmdR	|bool	|is_c9strict_utf8_string|NN const U8 *s|STRLEN len
1181ATpdMb	|bool	|is_utf8_string_loc					    \
1182		|NN const U8 *s|const STRLEN len|NN const U8 **ep
1183ATdm	|bool	|is_utf8_string_loc_flags				    \
1184		|NN const U8 *s|STRLEN len|NN const U8 **ep		    \
1185		|const U32 flags
1186ATdm	|bool	|is_strict_utf8_string_loc				    \
1187		|NN const U8 *s|STRLEN len|NN const U8 **ep
1188ATdm	|bool	|is_c9strict_utf8_string_loc				    \
1189		|NN const U8 *s|STRLEN len|NN const U8 **ep
1190ATipd	|bool	|is_utf8_string_loclen					    \
1191		|NN const U8 *s|STRLEN len|NULLOK const U8 **ep		    \
1192		|NULLOK STRLEN *el
1193ATidp	|bool	|is_utf8_string_loclen_flags				    \
1194		|NN const U8 *s|STRLEN len|NULLOK const U8 **ep		    \
1195		|NULLOK STRLEN *el|const U32 flags
1196ATidp	|bool	|is_strict_utf8_string_loclen				    \
1197		|NN const U8 *s|STRLEN len|NULLOK const U8 **ep	    \
1198		|NULLOK STRLEN *el
1199ATidp	|bool	|is_c9strict_utf8_string_loclen				    \
1200		|NN const U8 *s|STRLEN len|NULLOK const U8 **ep	    \
1201		|NULLOK STRLEN *el
1202AmTd	|bool	|is_utf8_fixed_width_buf_flags				    \
1203		|NN const U8 * const s|STRLEN len|const U32 flags
1204AmTd	|bool	|is_utf8_fixed_width_buf_loc_flags			    \
1205		|NN const U8 * const s|STRLEN len			    \
1206		|NULLOK const U8 **ep|const U32 flags
1207ATidp	|bool	|is_utf8_fixed_width_buf_loclen_flags			    \
1208		|NN const U8 * const s|STRLEN len			    \
1209		|NULLOK const U8 **ep|NULLOK STRLEN *el|const U32 flags
1210AmTdP	|bool	|is_utf8_valid_partial_char				    \
1211		|NN const U8 * const s0|NN const U8 * const e
1212ATidRp	|bool	|is_utf8_valid_partial_char_flags			    \
1213		|NN const U8 * const s0|NN const U8 * const e|const U32 flags
1214CpR     |bool   |_is_uni_FOO|const U8 classnum|const UV c
1215CpR     |bool   |_is_utf8_FOO|const U8 classnum|NN const U8 *p     \
1216		|NN const U8 * const e
1217CpR     |bool   |_is_utf8_perl_idcont|NN const U8 *p|NN const U8 * const e
1218CpR     |bool   |_is_utf8_perl_idstart|NN const U8 *p|NN const U8 * const e
1219
1220#if defined(PERL_CORE) || defined(PERL_EXT)
1221EXdpR	|bool	|isSCRIPT_RUN	|NN const U8 *s|NN const U8 *send   \
1222				|const bool utf8_target
1223#endif
1224: Used in perly.y
1225p	|OP*	|jmaybe		|NN OP *o
1226: Used in pp.c
1227pP	|I32	|keyword	|NN const char *name|I32 len|bool all_keywords
1228#if defined(PERL_IN_OP_C)
1229S	|void	|inplace_aassign	|NN OP* o
1230#endif
1231Ap	|void	|leave_scope	|I32 base
1232p	|void	|notify_parser_that_changed_to_utf8
1233: Public lexer API
1234Axpd	|void	|lex_start	|NULLOK SV* line|NULLOK PerlIO *rsfp|U32 flags
1235Axpd	|bool	|lex_bufutf8
1236Axpd	|char*	|lex_grow_linestr|STRLEN len
1237Axpd	|void	|lex_stuff_pvn	|NN const char* pv|STRLEN len|U32 flags
1238Axpd	|void	|lex_stuff_pv	|NN const char* pv|U32 flags
1239Axpd	|void	|lex_stuff_sv	|NN SV* sv|U32 flags
1240Axpd	|void	|lex_unstuff	|NN char* ptr
1241Axpd	|void	|lex_read_to	|NN char* ptr
1242Axpd	|void	|lex_discard_to	|NN char* ptr
1243Axpd	|bool	|lex_next_chunk	|U32 flags
1244Axpd	|I32	|lex_peek_unichar|U32 flags
1245Axpd	|I32	|lex_read_unichar|U32 flags
1246Axpd	|void	|lex_read_space	|U32 flags
1247: Public parser API
1248Axpd	|OP*	|parse_arithexpr|U32 flags
1249Axpd	|OP*	|parse_termexpr	|U32 flags
1250Axpd	|OP*	|parse_listexpr	|U32 flags
1251Axpd	|OP*	|parse_fullexpr	|U32 flags
1252Axpd	|OP*	|parse_block	|U32 flags
1253Axpd	|OP*	|parse_barestmt	|U32 flags
1254Axpd	|SV*	|parse_label	|U32 flags
1255Axpd	|OP*	|parse_fullstmt	|U32 flags
1256Axpd	|OP*	|parse_stmtseq	|U32 flags
1257Axpd	|OP*	|parse_subsignature|U32 flags
1258: Used in various files
1259Apd	|void	|op_null	|NN OP* o
1260: FIXME. Used by Data::Alias
1261EXp	|void	|op_clear	|NN OP* o
1262Ap	|void	|op_refcnt_lock
1263Ap	|void	|op_refcnt_unlock
1264ApdT	|OP*	|op_sibling_splice|NULLOK OP *parent|NULLOK OP *start \
1265		|int del_count|NULLOK OP* insert
1266ApdT	|OP*	|op_parent|NN OP *o
1267#if defined(PERL_IN_OP_C)
1268S	|OP*	|listkids	|NULLOK OP* o
1269#endif
1270p	|OP*	|list		|NULLOK OP* o
1271AFpd	|void	|load_module|U32 flags|NN SV* name|NULLOK SV* ver|...
1272Adp	|void	|vload_module|U32 flags|NN SV* name|NULLOK SV* ver|NULLOK va_list* args
1273: Used in perly.y
1274p	|OP*	|localize	|NN OP *o|I32 lex
1275ApdR	|I32	|looks_like_number|NN SV *const sv
1276AMpd	|UV	|grok_hex	|NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
1277Apd	|int	|grok_infnan	|NN const char** sp|NN const char *send
1278Apd	|int	|grok_number	|NN const char *pv|STRLEN len|NULLOK UV *valuep
1279Apd	|int	|grok_number_flags|NN const char *pv|STRLEN len|NULLOK UV *valuep|U32 flags
1280ApdR	|bool	|grok_numeric_radix|NN const char **sp|NN const char *send
1281ApMd	|UV	|grok_oct	|NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
1282ApMd	|UV	|grok_bin	|NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
1283Cp	|UV	|grok_bin_oct_hex|NN const char* start			    \
1284				 |NN STRLEN* len_p			    \
1285				 |NN I32* flags				    \
1286			         |NULLOK NV *result			    \
1287				 |const unsigned shift			    \
1288				 |const U8 lookup_bit			    \
1289				 |const char prefix
1290#ifdef PERL_IN_NUMERIC_C
1291S	|void	|output_non_portable|const U8 shift
1292#endif
1293EXpdT	|bool	|grok_atoUV	|NN const char* pv|NN UV* valptr|NULLOK const char** endptr
1294: These are all indirectly referenced by globals.c. This is somewhat annoying.
1295p	|int	|magic_clearenv	|NN SV* sv|NN MAGIC* mg
1296p	|int	|magic_clear_all_env|NN SV* sv|NN MAGIC* mg
1297dp	|int	|magic_clearhint|NN SV* sv|NN MAGIC* mg
1298dp	|int	|magic_clearhints|NN SV* sv|NN MAGIC* mg
1299p	|int	|magic_clearisa	|NULLOK SV* sv|NN MAGIC* mg
1300p	|int	|magic_clearpack|NN SV* sv|NN MAGIC* mg
1301p	|int	|magic_clearsig	|NN SV* sv|NN MAGIC* mg
1302p	|int	|magic_copycallchecker|NN SV* sv|NN MAGIC *mg|NN SV *nsv \
1303				      |NULLOK const char *name|I32 namlen
1304p	|int	|magic_existspack|NN SV* sv|NN const MAGIC* mg
1305p	|int	|magic_freeovrld|NN SV* sv|NN MAGIC* mg
1306p	|int	|magic_get	|NN SV* sv|NN MAGIC* mg
1307p	|int	|magic_getarylen|NN SV* sv|NN const MAGIC* mg
1308p	|int	|magic_getdefelem|NN SV* sv|NN MAGIC* mg
1309p	|int	|magic_getdebugvar|NN SV* sv|NN MAGIC* mg
1310p	|int	|magic_getnkeys	|NN SV* sv|NN MAGIC* mg
1311p	|int	|magic_getpack	|NN SV* sv|NN MAGIC* mg
1312p	|int	|magic_getpos	|NN SV* sv|NN MAGIC* mg
1313p	|int	|magic_getsig	|NN SV* sv|NN MAGIC* mg
1314p	|int	|magic_getsubstr|NN SV* sv|NN MAGIC* mg
1315p	|int	|magic_gettaint	|NN SV* sv|NN MAGIC* mg
1316p	|int	|magic_getuvar	|NN SV* sv|NN MAGIC* mg
1317p	|int	|magic_getvec	|NN SV* sv|NN MAGIC* mg
1318p	|int	|magic_nextpack	|NN SV *sv|NN MAGIC *mg|NN SV *key
1319p	|U32	|magic_regdata_cnt|NN SV* sv|NN MAGIC* mg
1320p	|int	|magic_regdatum_get|NN SV* sv|NN MAGIC* mg
1321:removing noreturn to silence a warning for this function resulted in no
1322:change to the interpreter DLL image under VS 2003 -O1 -GL 32 bits only because
1323:this is used in a magic vtable, do not use this on conventionally called funcs
1324#ifdef _MSC_VER
1325p	|int	|magic_regdatum_set|NN SV* sv|NN MAGIC* mg
1326#else
1327pr	|int	|magic_regdatum_set|NN SV* sv|NN MAGIC* mg
1328#endif
1329p	|int	|magic_set	|NN SV* sv|NN MAGIC* mg
1330p	|int	|magic_setarylen|NN SV* sv|NN MAGIC* mg
1331p	|int	|magic_cleararylen_p|NN SV* sv|NN MAGIC* mg
1332p	|int	|magic_freearylen_p|NN SV* sv|NN MAGIC* mg
1333p	|int	|magic_setdbline|NN SV* sv|NN MAGIC* mg
1334p	|int	|magic_setdebugvar|NN SV* sv|NN MAGIC* mg
1335p	|int	|magic_setdefelem|NN SV* sv|NN MAGIC* mg
1336p	|int	|magic_setnonelem|NN SV* sv|NN MAGIC* mg
1337p	|int	|magic_setenv	|NN SV* sv|NN MAGIC* mg
1338dp	|int	|magic_sethint	|NN SV* sv|NN MAGIC* mg
1339p	|int	|magic_setisa	|NN SV* sv|NN MAGIC* mg
1340p	|int	|magic_setlvref	|NN SV* sv|NN MAGIC* mg
1341p	|int	|magic_setmglob	|NN SV* sv|NN MAGIC* mg
1342p	|int	|magic_freemglob|NN SV* sv|NN MAGIC* mg
1343p	|int	|magic_setnkeys	|NN SV* sv|NN MAGIC* mg
1344p	|int	|magic_setpack	|NN SV* sv|NN MAGIC* mg
1345p	|int	|magic_setpos	|NN SV* sv|NN MAGIC* mg
1346p	|int	|magic_setregexp|NN SV* sv|NN MAGIC* mg
1347p	|int	|magic_setsigall|NN SV* sv|NN MAGIC* mg
1348p	|int	|magic_setsig	|NULLOK SV* sv|NN MAGIC* mg
1349p	|int	|magic_setsubstr|NN SV* sv|NN MAGIC* mg
1350p	|int	|magic_settaint	|NN SV* sv|NN MAGIC* mg
1351p	|int	|magic_setuvar	|NN SV* sv|NN MAGIC* mg
1352p	|int	|magic_setvec	|NN SV* sv|NN MAGIC* mg
1353p	|int	|magic_setutf8	|NN SV* sv|NN MAGIC* mg
1354p	|int	|magic_freeutf8	|NN SV* sv|NN MAGIC* mg
1355p	|int	|magic_set_all_env|NN SV* sv|NN MAGIC* mg
1356p	|U32	|magic_sizepack	|NN SV* sv|NN MAGIC* mg
1357p	|int	|magic_wipepack	|NN SV* sv|NN MAGIC* mg
1358Fpod	|SV*	|magic_methcall	|NN SV *sv|NN const MAGIC *mg \
1359				|NN SV *meth|U32 flags \
1360				|U32 argc|...
1361Ap	|I32 *	|markstack_grow
1362#if defined(USE_LOCALE_COLLATE)
1363p	|int	|magic_setcollxfrm|NN SV* sv|NN MAGIC* mg
1364p	|int	|magic_freecollxfrm|NN SV* sv|NN MAGIC* mg
1365pbD	|char*	|mem_collxfrm	|NN const char* input_string|STRLEN len|NN STRLEN* xlen
1366: Defined in locale.c, used only in sv.c
1367#   if defined(PERL_IN_LOCALE_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_MATHOMS_C)
1368p	|char*	|_mem_collxfrm	|NN const char* input_string	\
1369				|STRLEN len			\
1370				|NN STRLEN* xlen		\
1371				|bool utf8
1372#   endif
1373#endif
1374Afpd	|SV*	|mess		|NN const char* pat|...
1375Apd	|SV*	|mess_sv	|NN SV* basemsg|bool consume
1376Apd	|SV*	|vmess		|NN const char* pat|NULLOK va_list* args
1377: FIXME - either make it public, or stop exporting it. (Data::Alias uses this)
1378: Used in gv.c, op.c, toke.c
1379EXp	|void	|qerror		|NN SV* err
1380Apd	|void	|sortsv		|NULLOK SV** array|size_t num_elts|NN SVCOMPARE_t cmp
1381Apd	|void	|sortsv_flags	|NULLOK SV** array|size_t num_elts|NN SVCOMPARE_t cmp|U32 flags
1382Apd	|int	|mg_clear	|NN SV* sv
1383Apd	|int	|mg_copy	|NN SV *sv|NN SV *nsv|NULLOK const char *key \
1384				|I32 klen
1385: Defined in mg.c, used only in scope.c
1386pd	|void	|mg_localize	|NN SV* sv|NN SV* nsv|bool setmagic
1387Apd	|SV*	|sv_string_from_errnum|int errnum|NULLOK SV* tgtsv
1388ApdRT	|MAGIC*	|mg_find	|NULLOK const SV* sv|int type
1389ApdRT	|MAGIC*	|mg_findext	|NULLOK const SV* sv|int type|NULLOK const MGVTBL *vtbl
1390: exported for re.pm
1391EXpR	|MAGIC*	|mg_find_mglob	|NN SV* sv
1392Apd	|int	|mg_free	|NN SV* sv
1393Apd	|void	|mg_free_type	|NN SV* sv|int how
1394Apd	|void	|mg_freeext	|NN SV* sv|int how|NULLOK const MGVTBL *vtbl
1395Apd	|int	|mg_get		|NN SV* sv
1396ApdD	|U32	|mg_length	|NN SV* sv
1397ApdT	|void	|mg_magical	|NN SV* sv
1398Apd	|int	|mg_set		|NN SV* sv
1399Ap	|I32	|mg_size	|NN SV* sv
1400AdpT	|void	|mini_mktime	|NN struct tm *ptm
1401Axmd	|OP*	|op_lvalue	|NULLOK OP* o|I32 type
1402poX	|OP*	|op_lvalue_flags|NULLOK OP* o|I32 type|U32 flags
1403pd	|void	|finalize_optree		|NN OP* o
1404pd	|void	|optimize_optree|NN OP* o
1405#if defined(PERL_IN_OP_C)
1406S	|void	|optimize_op	|NN OP* o
1407S	|void	|finalize_op	|NN OP* o
1408S	|void	|move_proto_attr|NN OP **proto|NN OP **attrs \
1409				|NN const GV *name|bool curstash
1410#endif
1411: Used in op.c and pp_sys.c
1412p	|int	|mode_from_discipline|NULLOK const char* s|STRLEN len
1413Cp	|const char*	|moreswitches	|NN const char* s
1414Apd	|NV	|my_atof	|NN const char *s
1415ATdpR	|NV	|my_strtod	|NN const char * const s|NULLOK char ** e
1416Aprd	|void	|my_exit	|U32 status
1417Apr	|void	|my_failure_exit
1418Ap	|I32	|my_fflush_all
1419ATp	|Pid_t	|my_fork
1420ATp	|void	|atfork_lock
1421ATp	|void	|atfork_unlock
1422m	|I32	|my_lstat
1423pX	|I32	|my_lstat_flags	|NULLOK const U32 flags
1424#if ! defined(HAS_MEMRCHR) && (defined(PERL_CORE) || defined(PERL_EXT))
1425EeiT	|void *	|my_memrchr	|NN const char * s|const char c|const STRLEN len
1426#endif
1427#if !defined(PERL_IMPLICIT_SYS)
1428Ap	|I32	|my_pclose	|NULLOK PerlIO* ptr
1429Ap	|PerlIO*|my_popen	|NN const char* cmd|NN const char* mode
1430#endif
1431Ap	|PerlIO*|my_popen_list	|NN const char* mode|int n|NN SV ** args
1432Apd	|void	|my_setenv	|NULLOK const char* nam|NULLOK const char* val
1433m	|I32	|my_stat
1434pX	|I32	|my_stat_flags	|NULLOK const U32 flags
1435Adfp	|char *	|my_strftime	|NN const char *fmt|int sec|int min|int hour|int mday|int mon|int year|int wday|int yday|int isdst
1436: Used in pp_ctl.c
1437p	|void	|my_unexec
1438CbDTPR	|UV	|NATIVE_TO_NEED	|const UV enc|const UV ch
1439CbDTPR	|UV	|ASCII_TO_NEED	|const UV enc|const UV ch
1440ApR	|OP*	|newANONLIST	|NULLOK OP* o
1441ApR	|OP*	|newANONHASH	|NULLOK OP* o
1442Ap	|OP*	|newANONSUB	|I32 floor|NULLOK OP* proto|NULLOK OP* block
1443ApdR	|OP*	|newASSIGNOP	|I32 flags|NULLOK OP* left|I32 optype|NULLOK OP* right
1444ApdR	|OP*	|newCONDOP	|I32 flags|NN OP* first|NULLOK OP* trueop|NULLOK OP* falseop
1445Apd	|CV*	|newCONSTSUB	|NULLOK HV* stash|NULLOK const char* name|NULLOK SV* sv
1446Apd	|CV*	|newCONSTSUB_flags|NULLOK HV* stash \
1447				  |NULLOK const char* name|STRLEN len \
1448				  |U32 flags|NULLOK SV* sv
1449Ap	|void	|newFORM	|I32 floor|NULLOK OP* o|NULLOK OP* block
1450ApdR	|OP*	|newFOROP	|I32 flags|NULLOK OP* sv|NN OP* expr|NULLOK OP* block|NULLOK OP* cont
1451ApdR	|OP*	|newGIVENOP	|NN OP* cond|NN OP* block|PADOFFSET defsv_off
1452ApdR	|OP*	|newLOGOP	|I32 optype|I32 flags|NN OP *first|NN OP *other
1453px	|LOGOP*	|alloc_LOGOP	|I32 type|NULLOK OP *first|NULLOK OP *other
1454ApdR	|OP*	|newLOOPEX	|I32 type|NN OP* label
1455ApdR	|OP*	|newLOOPOP	|I32 flags|I32 debuggable|NULLOK OP* expr|NULLOK OP* block
1456ApdR	|OP*	|newNULLLIST
1457ApdR	|OP*	|newOP		|I32 optype|I32 flags
1458Ap	|void	|newPROG	|NN OP* o
1459ApdR	|OP*	|newRANGE	|I32 flags|NN OP* left|NN OP* right
1460ApdR	|OP*	|newSLICEOP	|I32 flags|NULLOK OP* subscript|NULLOK OP* listop
1461ApdR	|OP*	|newSTATEOP	|I32 flags|NULLOK char* label|NULLOK OP* o
1462AdpbM	|CV*	|newSUB		|I32 floor|NULLOK OP* o|NULLOK OP* proto \
1463				|NULLOK OP* block
1464ApdRx	|OP*	|newTRYCATCHOP	|I32 flags|NN OP* tryblock|NN OP *catchvar|NN OP* catchblock
1465ApdRx	|OP*	|newDEFEROP	|I32 flags|NN OP *block
1466pd	|CV *	|newXS_len_flags|NULLOK const char *name|STRLEN len \
1467				|NN XSUBADDR_t subaddr\
1468				|NULLOK const char *const filename \
1469				|NULLOK const char *const proto \
1470				|NULLOK SV **const_svp|U32 flags
1471pX	|CV *	|newXS_deffile	|NN const char *name|NN XSUBADDR_t subaddr
1472Apx	|CV *	|newXS_flags	|NULLOK const char *name|NN XSUBADDR_t subaddr\
1473				|NN const char *const filename \
1474				|NULLOK const char *const proto|U32 flags
1475ApdU	|CV*	|newXS		|NULLOK const char *name|NN XSUBADDR_t subaddr\
1476				|NN const char *filename
1477ApMdbR	|AV*	|newAV
1478AmdR	|AV*	|newAV_alloc_x  |SSize_t size
1479AmdR	|AV*	|newAV_alloc_xz |SSize_t size
1480ApR	|OP*	|newAVREF	|NN OP* o
1481ApdR	|OP*	|newBINOP	|I32 type|I32 flags|NULLOK OP* first|NULLOK OP* last
1482ApR	|OP*	|newCVREF	|I32 flags|NULLOK OP* o
1483ApdR	|OP*	|newGVOP	|I32 type|I32 flags|NN GV* gv
1484Am	|GV*	|newGVgen	|NN const char* pack
1485ApR	|GV*	|newGVgen_flags	|NN const char* pack|U32 flags
1486ApR	|OP*	|newGVREF	|I32 type|NULLOK OP* o
1487ApR	|OP*	|newHVREF	|NN OP* o
1488ApMdbR	|HV*	|newHV
1489ApR	|HV*	|newHVhv	|NULLOK HV *hv
1490ApRbM	|IO*	|newIO
1491ApdR	|OP*	|newLISTOP	|I32 type|I32 flags|NULLOK OP* first|NULLOK OP* last
1492AxpdRT	|PADNAME *|newPADNAMEouter|NN PADNAME *outer
1493AxpdRT	|PADNAME *|newPADNAMEpvn|NN const char *s|STRLEN len
1494AxpdRT	|PADNAMELIST *|newPADNAMELIST|size_t max
1495#ifdef USE_ITHREADS
1496ApdR	|OP*	|newPADOP	|I32 type|I32 flags|NN SV* sv
1497#endif
1498ApdR	|OP*	|newPMOP	|I32 type|I32 flags
1499ApdR	|OP*	|newPVOP	|I32 type|I32 flags|NULLOK char* pv
1500ApdR	|SV*	|newRV		|NN SV *const sv
1501ApdR	|SV*	|newRV_noinc	|NN SV *const tmpRef
1502ApdR	|SV*	|newSV		|const STRLEN len
1503ApR	|OP*	|newSVREF	|NN OP* o
1504ApdR	|OP*	|newSVOP	|I32 type|I32 flags|NN SV* sv
1505ApdR	|OP*	|newDEFSVOP
1506pR	|SV*	|newSVavdefelem	|NN AV *av|SSize_t ix|bool extendible
1507ApdR	|SV*	|newSViv	|const IV i
1508ApdR	|SV*	|newSVuv	|const UV u
1509ApdR	|SV*	|newSVnv	|const NV n
1510ApdR	|SV*	|newSVpv	|NULLOK const char *const s|const STRLEN len
1511ApdR	|SV*	|newSVpvn	|NULLOK const char *const buffer|const STRLEN len
1512ApdR	|SV*	|newSVpvn_flags	|NULLOK const char *const s|const STRLEN len|const U32 flags
1513ApdR	|SV*	|newSVhek	|NULLOK const HEK *const hek
1514ApdR	|SV*	|newSVpvn_share	|NULLOK const char* s|I32 len|U32 hash
1515ApdR	|SV*	|newSVpv_share	|NULLOK const char* s|U32 hash
1516AfpdR	|SV*	|newSVpvf	|NN const char *const pat|...
1517ApRd	|SV*	|vnewSVpvf	|NN const char *const pat|NULLOK va_list *const args
1518Apd	|SV*	|newSVrv	|NN SV *const rv|NULLOK const char *const classname
1519ApMbdR	|SV*	|newSVsv	|NULLOK SV *const old
1520AmdR	|SV*	|newSVsv_nomg	|NULLOK SV *const old
1521AdpR	|SV*	|newSVsv_flags	|NULLOK SV *const old|I32 flags
1522ApdiR	|SV*	|newSV_type	|const svtype type
1523ApdIR	|SV*    |newSV_type_mortal|const svtype type
1524ApdR	|OP*	|newUNOP	|I32 type|I32 flags|NULLOK OP* first
1525ApdR	|OP*	|newUNOP_AUX	|I32 type|I32 flags|NULLOK OP* first \
1526				|NULLOK UNOP_AUX_item *aux
1527ApdR	|OP*	|newWHENOP	|NULLOK OP* cond|NN OP* block
1528ApdR	|OP*	|newWHILEOP	|I32 flags|I32 debuggable|NULLOK LOOP* loop \
1529				|NULLOK OP* expr|NULLOK OP* block|NULLOK OP* cont \
1530				|I32 has_my
1531ApdR	|OP*	|newMETHOP	|I32 type|I32 flags|NN OP* dynamic_meth
1532ApdR	|OP*	|newMETHOP_named|I32 type|I32 flags|NN SV* const_meth
1533Apd	|CV*	|rv2cv_op_cv	|NN OP *cvop|U32 flags
1534Apd	|OP*	|ck_entersub_args_list|NN OP *entersubop
1535Apd	|OP*	|ck_entersub_args_proto|NN OP *entersubop|NN GV *namegv|NN SV *protosv
1536Apd	|OP*	|ck_entersub_args_proto_or_list|NN OP *entersubop|NN GV *namegv|NN SV *protosv
1537po	|OP*	|ck_entersub_args_core|NN OP *entersubop|NN GV *namegv \
1538				      |NN SV *protosv
1539Apd	|void	|cv_get_call_checker|NN CV *cv|NN Perl_call_checker *ckfun_p|NN SV **ckobj_p
1540Apd	|void	|cv_get_call_checker_flags|NN CV *cv|U32 gflags|NN Perl_call_checker *ckfun_p|NN SV **ckobj_p|NN U32 *ckflags_p
1541Apd	|void	|cv_set_call_checker|NN CV *cv|NN Perl_call_checker ckfun|NN SV *ckobj
1542Apd	|void	|cv_set_call_checker_flags|NN CV *cv \
1543					  |NN Perl_call_checker ckfun \
1544					  |NN SV *ckobj|U32 ckflags
1545Apd	|void	|wrap_op_checker|Optype opcode|NN Perl_check_t new_checker|NN Perl_check_t *old_checker_p
1546Axpd	|void	|wrap_keyword_plugin|NN Perl_keyword_plugin_t new_plugin|NN Perl_keyword_plugin_t *old_plugin_p
1547ApR	|PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems
1548Ap	|char*	|scan_vstring	|NN const char *s|NN const char *const e \
1549				|NN SV *sv
1550Apd	|const char*	|scan_version	|NN const char *s|NN SV *rv|bool qv
1551Apd	|const char*	|prescan_version	|NN const char *s\
1552	|bool strict|NULLOK const char** errstr|NULLOK bool *sqv\
1553	|NULLOK int *ssaw_decimal|NULLOK int *swidth|NULLOK bool *salpha
1554Apd	|SV*	|new_version	|NN SV *ver
1555Apd	|SV*	|upg_version	|NN SV *ver|bool qv
1556Apd	|SV*	|vverify	|NN SV *vs
1557Apd	|SV*	|vnumify	|NN SV *vs
1558Apd	|SV*	|vnormal	|NN SV *vs
1559Apd	|SV*	|vstringify	|NN SV *vs
1560Apd	|int	|vcmp		|NN SV *lhv|NN SV *rhv
1561: Used in pp_hot.c and pp_sys.c
1562p	|PerlIO*|nextargv	|NN GV* gv|bool nomagicopen
1563AdMTpP	|char*	|ninstr		|NN const char* big|NN const char* bigend \
1564				|NN const char* little|NN const char* lend
1565Apd	|void	|op_free	|NULLOK OP* arg
1566xp	|OP*	|op_unscope	|NULLOK OP* o
1567#ifdef PERL_CORE
1568p	|void	|opslab_free	|NN OPSLAB *slab
1569p	|void	|opslab_free_nopad|NN OPSLAB *slab
1570p	|void	|opslab_force_free|NN OPSLAB *slab
1571#endif
1572: Used in perly.y
1573p	|void	|package	|NN OP* o
1574: Used in perly.y
1575p	|void	|package_version|NN OP* v
1576: Used in toke.c and perly.y
1577p	|PADOFFSET|allocmy	|NN const char *const name|const STRLEN len\
1578				|const U32 flags
1579#ifdef USE_ITHREADS
1580Adxp	|PADOFFSET|alloccopstash|NN HV *hv
1581#endif
1582: Used in perly.y
1583pR	|OP*	|oopsAV		|NN OP* o
1584: Used in perly.y
1585pR	|OP*	|oopsHV		|NN OP* o
1586
1587: peephole optimiser
1588p	|void	|peep		|NULLOK OP* o
1589p	|void	|rpeep		|NULLOK OP* o
1590: Defined in doio.c, used only in pp_hot.c
1591dopx	|PerlIO*|start_glob	|NN SV *tmpglob|NN IO *io
1592
1593Cp	|void	|reentrant_size
1594Cp	|void	|reentrant_init
1595Cp	|void	|reentrant_free
1596CFTp	|void*	|reentrant_retry|NN const char *f|...
1597
1598: "Very" special - can't use the O flag for this one:
1599: (The rename from perl_atexit to Perl_call_atexit was in 864dbfa3ca8032ef)
1600Ap	|void	|call_atexit	|ATEXIT_t fn|NULLOK void *ptr
1601ApdO	|I32	|call_argv	|NN const char* sub_name|I32 flags|NN char** argv
1602ApdO	|I32	|call_method	|NN const char* methname|I32 flags
1603ApdO	|I32	|call_pv	|NN const char* sub_name|I32 flags
1604ApdO	|I32	|call_sv	|NN SV* sv|volatile I32 flags
1605Cp	|void	|despatch_signals
1606Ap	|OP *	|doref		|NN OP *o|I32 type|bool set_op_ref
1607ApdO	|SV*	|eval_pv	|NN const char* p|I32 croak_on_error
1608ApdO	|I32	|eval_sv	|NN SV* sv|I32 flags
1609ApdO	|SV*	|get_sv		|NN const char *name|I32 flags
1610ApdO	|AV*	|get_av		|NN const char *name|I32 flags
1611ApdO	|HV*	|get_hv		|NN const char *name|I32 flags
1612ApdO	|CV*	|get_cv		|NN const char* name|I32 flags
1613Apd	|CV*	|get_cvn_flags	|NN const char* name|STRLEN len|I32 flags
1614ATdo	|const char*|Perl_setlocale|const int category|NULLOK const char* locale
1615#if defined(HAS_NL_LANGINFO) && defined(PERL_LANGINFO_H)
1616ATdo	|const char*|Perl_langinfo|const nl_item item
1617#else
1618ATdo	|const char*|Perl_langinfo|const int item
1619#endif
1620CpO	|int	|init_i18nl10n	|int printwarn
1621CbpOD	|int	|init_i18nl14n	|int printwarn
1622p	|char*	|my_strerror	|const int errnum
1623XpT	|void	|_warn_problematic_locale
1624Xp	|void	|set_numeric_underlying
1625Xp	|void	|set_numeric_standard
1626Xp	|bool	|_is_in_locale_category|const bool compiling|const int category
1627ApdT	|void	|switch_to_global_locale
1628ApdT	|bool	|sync_locale
1629ApxT	|void	|thread_locale_init
1630ApxT	|void	|thread_locale_term
1631ApdO	|void	|require_pv	|NN const char* pv
1632AbpdD	|void	|pack_cat	|NN SV *cat|NN const char *pat|NN const char *patend \
1633				|NN SV **beglist|NN SV **endlist|NN SV ***next_in_list|U32 flags
1634Apd	|void	|packlist	|NN SV *cat|NN const char *pat|NN const char *patend|NN SV **beglist|NN SV **endlist
1635#if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C)
1636S	|void	|pidgone	|Pid_t pid|int status
1637#endif
1638: Used in perly.y
1639p	|OP*	|pmruntime	|NN OP *o|NN OP *expr|NULLOK OP *repl \
1640				|UV flags|I32 floor
1641#if defined(PERL_IN_OP_C)
1642S	|OP*	|pmtrans	|NN OP* o|NN OP* expr|NN OP* repl
1643#endif
1644p	|void	|invmap_dump	|NN SV* invlist|NN UV * map
1645Ap	|void	|pop_scope
1646Ap	|void	|push_scope
1647#if defined(PERL_IN_PERLY_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_TOKE_C)
1648pMb	|OP*	|ref		|NULLOK OP* o|I32 type
1649#endif
1650#if defined(PERL_IN_OP_C)
1651S	|OP*	|refkids	|NULLOK OP* o|I32 type
1652#endif
1653
1654ATp	|void	|repeatcpy	|NN char* to|NN const char* from|I32 len|IV count
1655AdTpP	|char*	|rninstr	|NN const char* big|NN const char* bigend \
1656				|NN const char* little|NN const char* lend
1657Apd	|Sighandler_t|rsignal	|int i|Sighandler_t t
1658: Used in pp_sys.c
1659p	|int	|rsignal_restore|int i|NULLOK Sigsave_t* t
1660: Used in pp_sys.c
1661p	|int	|rsignal_save	|int i|Sighandler_t t1|NN Sigsave_t* save
1662Ap	|Sighandler_t|rsignal_state|int i
1663#if defined(PERL_IN_PP_CTL_C)
1664S	|void	|rxres_free	|NN void** rsp
1665S	|void	|rxres_restore	|NN void **rsp|NN REGEXP *rx
1666#endif
1667: Used in pp_hot.c
1668p	|void	|rxres_save	|NN void **rsp|NN REGEXP *rx
1669#if !defined(HAS_RENAME)
1670: Used in pp_sys.c
1671p	|I32	|same_dirent	|NN const char* a|NN const char* b
1672#endif
1673Apda	|char*	|savepv		|NULLOK const char* pv
1674Apda	|char*	|savepvn	|NULLOK const char* pv|Size_t len
1675Apda	|char*	|savesharedpv	|NULLOK const char* pv
1676
1677: NULLOK only to suppress a compiler warning
1678Apda	|char*	|savesharedpvn	|NULLOK const char *const pv \
1679				|const STRLEN len
1680Apda	|char*	|savesharedsvpv	|NN SV *sv
1681Apda	|char*	|savesvpv	|NN SV* sv
1682Ap	|void	|savestack_grow
1683Ap	|void	|savestack_grow_cnt	|I32 need
1684Am	|void	|save_aelem	|NN AV* av|SSize_t idx|NN SV **sptr
1685Ap	|void	|save_aelem_flags|NN AV* av|SSize_t idx|NN SV **sptr \
1686				 |const U32 flags
1687Ap	|I32	|save_alloc	|I32 size|I32 pad
1688Apdh	|void	|save_aptr	|NN AV** aptr
1689Apdh	|AV*	|save_ary	|NN GV* gv
1690Cp	|void	|save_bool	|NN bool* boolp
1691Cp	|void	|save_clearsv	|NN SV** svp
1692Cp	|void	|save_delete	|NN HV *hv|NN char *key|I32 klen
1693Ap	|void	|save_hdelete	|NN HV *hv|NN SV *keysv
1694Ap	|void	|save_adelete	|NN AV *av|SSize_t key
1695Cp	|void	|save_destructor|DESTRUCTORFUNC_NOCONTEXT_t f|NN void* p
1696Cp	|void	|save_destructor_x|DESTRUCTORFUNC_t f|NULLOK void* p
1697CpMb	|void	|save_freesv	|NULLOK SV* sv
1698: Used in SAVEFREOP(), used in op.c, pp_ctl.c
1699CpMb	|void	|save_freeop	|NULLOK OP* o
1700CpMb	|void	|save_freepv	|NULLOK char* pv
1701Ap	|void	|save_generic_svref|NN SV** sptr
1702Ap	|void	|save_generic_pvref|NN char** str
1703Ap	|void	|save_shared_pvref|NN char** str
1704Adp	|void	|save_gp	|NN GV* gv|I32 empty
1705Apdh	|HV*	|save_hash	|NN GV* gv
1706Ap	|void	|save_hints
1707Am	|void	|save_helem	|NN HV *hv|NN SV *key|NN SV **sptr
1708Ap	|void	|save_helem_flags|NN HV *hv|NN SV *key|NN SV **sptr|const U32 flags
1709Apdh	|void	|save_hptr	|NN HV** hptr
1710Cp	|void	|save_I16	|NN I16* intp
1711Cp	|void	|save_I32	|NN I32* intp
1712Cp	|void	|save_I8	|NN I8* bytep
1713Cp	|void	|save_int	|NN int* intp
1714Apdh	|void	|save_item	|NN SV* item
1715Cp	|void	|save_iv	|NN IV *ivp
1716AbpDdh	|void	|save_list	|NN SV** sarg|I32 maxsarg
1717CbpD	|void	|save_long	|NN long* longp
1718CpMb	|void	|save_mortalizesv|NN SV* sv
1719AbpD	|void	|save_nogv	|NN GV* gv
1720: Used in SAVEFREOP(), used in gv.c, op.c, perl.c, pp_ctl.c, pp_sort.c
1721ApMb	|void	|save_op
1722Apdh	|SV*	|save_scalar	|NN GV* gv
1723Cp	|void	|save_pptr	|NN char** pptr
1724Ap	|void	|save_vptr	|NN void *ptr
1725Cp	|void	|save_re_context
1726Ap	|void	|save_padsv_and_mortalize|PADOFFSET off
1727Cp	|void	|save_sptr	|NN SV** sptr
1728Xp	|void	|save_strlen	|NN STRLEN* ptr
1729Apdh	|SV*	|save_svref	|NN SV** sptr
1730Axpo	|void	|savetmps
1731Ap	|void	|save_pushptr	|NULLOK void *const ptr|const int type
1732Ap	|void	|save_pushi32ptr|const I32 i|NULLOK void *const ptr|const int type
1733: Used by SAVESWITCHSTACK() in pp.c
1734Ap	|void	|save_pushptrptr|NULLOK void *const ptr1 \
1735				|NULLOK void *const ptr2|const int type
1736#if defined(PERL_IN_SCOPE_C)
1737S	|void	|save_pushptri32ptr|NULLOK void *const ptr1|const I32 i \
1738				|NULLOK void *const ptr2|const int type
1739#endif
1740Xiop	|I32	|TOPMARK
1741Xiop	|I32	|POPMARK
1742: Used in perly.y
1743p	|OP*	|sawparens	|NULLOK OP* o
1744Apd	|OP*	|op_contextualize|NN OP* o|I32 context
1745: Used in perly.y
1746p	|OP*	|scalar		|NULLOK OP* o
1747#if defined(PERL_IN_OP_C)
1748S	|OP*	|scalarkids	|NULLOK OP* o
1749S	|OP*	|voidnonfinal	|NULLOK OP* o
1750#endif
1751: Used in pp_ctl.c
1752p	|OP*	|scalarvoid	|NN OP* o
1753Apd	|NV	|scan_bin	|NN const char* start|STRLEN len|NN STRLEN* retlen
1754Apd	|NV	|scan_hex	|NN const char* start|STRLEN len|NN STRLEN* retlen
1755Cp	|char*	|scan_num	|NN const char* s|NN YYSTYPE *lvalp
1756Apd	|NV	|scan_oct	|NN const char* start|STRLEN len|NN STRLEN* retlen
1757Axpd	|OP*	|op_scope	|NULLOK OP* o
1758ApdRx	|OP*	|op_wrap_finally|NN OP *block|NN OP *finally
1759: Only used by perl.c/miniperl.c, but defined in caretx.c
1760pe	|void	|set_caret_X
1761Apd	|void	|setdefout	|NN GV* gv
1762Ap	|HEK*	|share_hek	|NN const char* str|SSize_t len|U32 hash
1763#ifdef PERL_USE_3ARG_SIGHANDLER
1764: Used in perl.c
1765Tp	|Signal_t |sighandler	|int sig|NULLOK Siginfo_t *info|NULLOK void *uap
1766CTp	|Signal_t |csighandler	|int sig|NULLOK Siginfo_t *info|NULLOK void *uap
1767#else
1768Tp	|Signal_t |sighandler	|int sig
1769CTp	|Signal_t |csighandler	|int sig
1770#endif
1771Tp	|Signal_t |sighandler1	|int sig
1772CTp	|Signal_t |csighandler1	|int sig
1773Tp	|Signal_t |sighandler3	|int sig|NULLOK Siginfo_t *info|NULLOK void *uap
1774CTp	|Signal_t |csighandler3	|int sig|NULLOK Siginfo_t *info|NULLOK void *uap
1775CTp	|Signal_t |perly_sighandler	|int sig|NULLOK Siginfo_t *info|NULLOK void *uap|bool safe
1776Cp	|SV**	|stack_grow	|NN SV** sp|NN SV** p|SSize_t n
1777Ap	|I32	|start_subparse	|I32 is_format|U32 flags
1778Xp	|void	|init_named_cv	|NN CV *cv|NN OP *nameop
1779: Used in pp_ctl.c
1780p	|void	|sub_crush_depth|NN CV* cv
1781CpbMd	|bool	|sv_2bool	|NN SV *const sv
1782Cpd	|bool	|sv_2bool_flags	|NN SV *sv|I32 flags
1783Apd	|CV*	|sv_2cv		|NULLOK SV* sv|NN HV **const st|NN GV **const gvp \
1784				|const I32 lref
1785Apd	|IO*	|sv_2io		|NN SV *const sv
1786#if defined(PERL_IN_SV_C)
1787S	|bool	|glob_2number	|NN GV* const gv
1788#endif
1789CpMb	|IV	|sv_2iv		|NN SV *sv
1790Apd	|IV	|sv_2iv_flags	|NN SV *const sv|const I32 flags
1791Apd	|SV*	|sv_2mortal	|NULLOK SV *const sv
1792Apd	|NV	|sv_2nv_flags	|NN SV *const sv|const I32 flags
1793: Used in pp.c, pp_hot.c, sv.c
1794pxd	|SV*	|sv_2num	|NN SV *const sv
1795CpMb	|char*	|sv_2pv		|NN SV *sv|NULLOK STRLEN *lp
1796Cpd	|char*	|sv_2pv_flags	|NN SV *const sv|NULLOK STRLEN *const lp|const U32 flags
1797ApdMb	|char*	|sv_2pvutf8	|NN SV *sv|NULLOK STRLEN *const lp
1798Ap	|char*	|sv_2pvutf8_flags	|NN SV *sv|NULLOK STRLEN *const lp|const U32 flags
1799ApdMb	|char*	|sv_2pvbyte	|NN SV *sv|NULLOK STRLEN *const lp
1800Ap	|char*	|sv_2pvbyte_flags	|NN SV *sv|NULLOK STRLEN *const lp|const U32 flags
1801AbpD	|char*	|sv_pvn_nomg	|NN SV* sv|NULLOK STRLEN* lp
1802CpMb	|UV	|sv_2uv		|NN SV *sv
1803Apd	|UV	|sv_2uv_flags	|NN SV *const sv|const I32 flags
1804CbpdD	|IV	|sv_iv		|NN SV* sv
1805CbpdD	|UV	|sv_uv		|NN SV* sv
1806CbpdD	|NV	|sv_nv		|NN SV* sv
1807CbpdD	|char*	|sv_pvn		|NN SV *sv|NN STRLEN *lp
1808CbpdD	|char*	|sv_pvutf8n	|NN SV *sv|NN STRLEN *lp
1809CbpdD	|char*	|sv_pvbyten	|NN SV *sv|NN STRLEN *lp
1810Cpd	|I32	|sv_true	|NULLOK SV *const sv
1811#if defined(PERL_IN_SV_C)
1812Sd	|void	|sv_add_arena	|NN char *const ptr|const U32 size \
1813				|const U32 flags
1814#endif
1815ApdT	|void	|sv_backoff	|NN SV *const sv
1816Apd	|SV*	|sv_bless	|NN SV *const sv|NN HV *const stash
1817#if defined(PERL_DEBUG_READONLY_COW)
1818p	|void	|sv_buf_to_ro	|NN SV *sv
1819# if defined(PERL_IN_SV_C)
1820S	|void	|sv_buf_to_rw	|NN SV *sv
1821# endif
1822#endif
1823Afpd	|void	|sv_catpvf	|NN SV *const sv|NN const char *const pat|...
1824Apd	|void	|sv_vcatpvf	|NN SV *const sv|NN const char *const pat \
1825				|NULLOK va_list *const args
1826Apd	|void	|sv_catpv	|NN SV *const dsv|NULLOK const char* sstr
1827ApMdb	|void	|sv_catpvn	|NN SV *dsv|NN const char *sstr|STRLEN len
1828ApMdb	|void	|sv_catsv	|NN SV *dsv|NULLOK SV *sstr
1829Apd	|void	|sv_chop	|NN SV *const sv|NULLOK const char *const ptr
1830: Used only in perl.c
1831pd	|I32	|sv_clean_all
1832: Used only in perl.c
1833pd	|void	|sv_clean_objs
1834Apd	|void	|sv_clear	|NN SV *const orig_sv
1835#if defined(PERL_IN_SV_C)
1836S	|bool	|curse		|NN SV * const sv|const bool check_refcnt
1837#endif
1838AMpd	|I32	|sv_cmp		|NULLOK SV *const sv1|NULLOK SV *const sv2
1839Apd	|I32	|sv_cmp_flags	|NULLOK SV *const sv1|NULLOK SV *const sv2 \
1840				|const U32 flags
1841AMpd	|I32	|sv_cmp_locale	|NULLOK SV *const sv1|NULLOK SV *const sv2
1842Apd	|I32	|sv_cmp_locale_flags	|NULLOK SV *const sv1 \
1843				|NULLOK SV *const sv2|const U32 flags
1844#if defined(USE_LOCALE_COLLATE)
1845ApbMd	|char*	|sv_collxfrm	|NN SV *const sv|NN STRLEN *const nxp
1846Apd	|char*	|sv_collxfrm_flags	|NN SV *const sv|NN STRLEN *const nxp|I32 const flags
1847#endif
1848Apd	|int	|getcwd_sv	|NN SV* sv
1849Apd	|void	|sv_dec		|NULLOK SV *const sv
1850Apd	|void	|sv_dec_nomg	|NULLOK SV *const sv
1851Apd	|void	|sv_dump	|NULLOK SV* sv
1852ApdR	|bool	|sv_derived_from|NN SV* sv|NN const char *const name
1853ApdR	|bool	|sv_derived_from_sv|NN SV* sv|NN SV *namesv|U32 flags
1854ApdR	|bool	|sv_derived_from_pv|NN SV* sv|NN const char *const name|U32 flags
1855ApdR	|bool	|sv_derived_from_pvn|NN SV* sv|NN const char *const name \
1856                                    |const STRLEN len|U32 flags
1857ApdRx	|bool	|sv_isa_sv	|NN SV* sv|NN SV* namesv
1858ApdR	|bool	|sv_does	|NN SV* sv|NN const char *const name
1859ApdR	|bool	|sv_does_sv	|NN SV* sv|NN SV* namesv|U32 flags
1860ApdR	|bool	|sv_does_pv	|NN SV* sv|NN const char *const name|U32 flags
1861ApdR	|bool	|sv_does_pvn	|NN SV* sv|NN const char *const name|const STRLEN len \
1862                                |U32 flags
1863ApbMd	|I32	|sv_eq		|NULLOK SV* sv1|NULLOK SV* sv2
1864Apd	|I32	|sv_eq_flags	|NULLOK SV* sv1|NULLOK SV* sv2|const U32 flags
1865Apd	|void	|sv_free	|NULLOK SV *const sv
1866poxX	|void	|sv_free2	|NN SV *const sv|const U32 refcnt
1867: Used only in perl.c
1868pd	|void	|sv_free_arenas
1869Apd	|char*	|sv_gets	|NN SV *const sv|NN PerlIO *const fp|I32 append
1870Cpd	|char*	|sv_grow	|NN SV *const sv|STRLEN newlen
1871Cpd	|char*	|sv_grow_fresh	|NN SV *const sv|STRLEN newlen
1872Apd	|void	|sv_inc		|NULLOK SV *const sv
1873Apd	|void	|sv_inc_nomg	|NULLOK SV *const sv
1874ApMdb	|void	|sv_insert	|NN SV *const bigstr|const STRLEN offset \
1875				|const STRLEN len|NN const char *const little \
1876				|const STRLEN littlelen
1877Apd	|void	|sv_insert_flags|NN SV *const bigstr|const STRLEN offset|const STRLEN len \
1878				|NN const char *little|const STRLEN littlelen|const U32 flags
1879Apd	|int	|sv_isa		|NULLOK SV* sv|NN const char *const name
1880Apd	|int	|sv_isobject	|NULLOK SV* sv
1881Apd	|STRLEN	|sv_len		|NULLOK SV *const sv
1882Apd	|STRLEN	|sv_len_utf8	|NULLOK SV *const sv
1883Apd	|STRLEN	|sv_len_utf8_nomg|NN SV *const sv
1884Apd	|void	|sv_magic	|NN SV *const sv|NULLOK SV *const obj|const int how \
1885				|NULLOK const char *const name|const I32 namlen
1886Apd	|MAGIC *|sv_magicext	|NN SV *const sv|NULLOK SV *const obj|const int how \
1887				|NULLOK const MGVTBL *const vtbl|NULLOK const char *const name \
1888				|const I32 namlen
1889EiTp	|bool	|sv_only_taint_gmagic|NN SV *sv
1890: exported for re.pm
1891EXp	|MAGIC *|sv_magicext_mglob|NN SV *sv
1892ApdbMR	|SV*	|sv_mortalcopy	|NULLOK SV *const oldsv
1893ApdR	|SV*	|sv_mortalcopy_flags|NULLOK SV *const oldsv|U32 flags
1894ApdR	|SV*	|sv_newmortal
1895Cpd	|SV*	|sv_newref	|NULLOK SV *const sv
1896Amd	|bool	|sv_numeq	|NULLOK SV* sv1|NULLOK SV* sv2
1897Apd	|bool	|sv_numeq_flags	|NULLOK SV* sv1|NULLOK SV* sv2|const U32 flags
1898Ap	|char*	|sv_peek	|NULLOK SV* sv
1899Apd	|void	|sv_pos_u2b	|NULLOK SV *const sv|NN I32 *const offsetp|NULLOK I32 *const lenp
1900Apd	|STRLEN	|sv_pos_u2b_flags|NN SV *const sv|STRLEN uoffset \
1901				|NULLOK STRLEN *const lenp|U32 flags
1902Apd	|void	|sv_pos_b2u	|NULLOK SV *const sv|NN I32 *const offsetp
1903Apd	|STRLEN	|sv_pos_b2u_flags|NN SV *const sv|STRLEN const offset \
1904				 |U32 flags
1905CpMdb	|char*	|sv_pvn_force	|NN SV* sv|NULLOK STRLEN* lp
1906Cpd	|char*	|sv_pvutf8n_force|NN SV *const sv|NULLOK STRLEN *const lp
1907Cpd	|char*	|sv_pvbyten_force|NN SV *const sv|NULLOK STRLEN *const lp
1908Apd	|char*	|sv_recode_to_utf8	|NN SV* sv|NN SV *encoding
1909Apd	|bool	|sv_cat_decode	|NN SV* dsv|NN SV *encoding|NN SV *ssv|NN int *offset \
1910				|NN char* tstr|int tlen
1911ApdR	|const char*	|sv_reftype	|NN const SV *const sv|const int ob
1912Apd	|SV*	|sv_ref	|NULLOK SV *dst|NN const SV *const sv|const int ob
1913Apd	|void	|sv_replace	|NN SV *const sv|NN SV *const nsv
1914Apd	|void	|sv_report_used
1915Apd	|void	|sv_reset	|NN const char* s|NULLOK HV *const stash
1916p	|void	|sv_resetpvn	|NULLOK const char* s|STRLEN len \
1917				|NULLOK HV *const stash
1918Afpd	|void	|sv_setpvf	|NN SV *const sv|NN const char *const pat|...
1919Apd	|void	|sv_vsetpvf	|NN SV *const sv|NN const char *const pat|NULLOK va_list *const args
1920Apd	|void	|sv_setiv	|NN SV *const sv|const IV num
1921ApdbD	|void	|sv_setpviv	|NN SV *const sv|const IV num
1922Apd	|void	|sv_setuv	|NN SV *const sv|const UV num
1923Apd	|void	|sv_setnv	|NN SV *const sv|const NV num
1924Apd	|SV*	|sv_setref_iv	|NN SV *const rv|NULLOK const char *const classname|const IV iv
1925Apd	|SV*	|sv_setref_uv	|NN SV *const rv|NULLOK const char *const classname|const UV uv
1926Apd	|SV*	|sv_setref_nv	|NN SV *const rv|NULLOK const char *const classname|const NV nv
1927Apd	|SV*	|sv_setref_pv	|NN SV *const rv|NULLOK const char *const classname \
1928				|NULLOK void *const pv
1929Apd	|SV*	|sv_setref_pvn	|NN SV *const rv|NULLOK const char *const classname \
1930				|NN const char *const pv|const STRLEN n
1931Apd	|void	|sv_setpv	|NN SV *const sv|NULLOK const char *const ptr
1932Apd	|void	|sv_setpvn	|NN SV *const sv|NULLOK const char *const ptr|const STRLEN len
1933Apd	|void	|sv_setpvn_fresh|NN SV *const sv|NULLOK const char *const ptr|const STRLEN len
1934Apd	|char  *|sv_setpv_bufsize|NN SV *const sv|const STRLEN cur|const STRLEN len
1935Xp	|void	|sv_sethek	|NN SV *const sv|NULLOK const HEK *const hek
1936Apd	|void	|sv_setrv_noinc	|NN SV *const sv|NN SV *const ref
1937Apd	|void	|sv_setrv_inc	|NN SV *const sv|NN SV *const ref
1938Apd	|void	|sv_setrv_noinc_mg	|NN SV *const sv|NN SV *const ref
1939Apd	|void	|sv_setrv_inc_mg	|NN SV *const sv|NN SV *const ref
1940ApMdb	|void	|sv_setsv	|NN SV *dsv|NULLOK SV *ssv
1941Amd	|bool	|sv_streq	|NULLOK SV* sv1|NULLOK SV* sv2
1942Apd	|bool	|sv_streq_flags	|NULLOK SV* sv1|NULLOK SV* sv2|const U32 flags
1943CpMdb	|void	|sv_taint	|NN SV* sv
1944CpdR	|bool	|sv_tainted	|NN SV *const sv
1945Apd	|int	|sv_unmagic	|NN SV *const sv|const int type
1946Apd	|int	|sv_unmagicext	|NN SV *const sv|const int type|NULLOK const MGVTBL *vtbl
1947ApdMb	|void	|sv_unref	|NN SV* sv
1948Apd	|void	|sv_unref_flags	|NN SV *const ref|const U32 flags
1949Cpd	|void	|sv_untaint	|NN SV *const sv
1950Apd	|void	|sv_upgrade	|NN SV *const sv|svtype new_type
1951ApdMb	|void	|sv_usepvn	|NN SV* sv|NULLOK char* ptr|STRLEN len
1952Apd	|void	|sv_usepvn_flags|NN SV *const sv|NULLOK char* ptr|const STRLEN len\
1953				|const U32 flags
1954Apd	|void	|sv_vcatpvfn	|NN SV *const sv|NN const char *const pat|const STRLEN patlen \
1955				|NULLOK va_list *const args|NULLOK SV **const svargs|const Size_t sv_count \
1956				|NULLOK bool *const maybe_tainted
1957Apd	|void	|sv_vcatpvfn_flags|NN SV *const sv|NN const char *const pat|const STRLEN patlen \
1958				|NULLOK va_list *const args|NULLOK SV **const svargs|const Size_t sv_count \
1959				|NULLOK bool *const maybe_tainted|const U32 flags
1960Apd	|void	|sv_vsetpvfn	|NN SV *const sv|NN const char *const pat|const STRLEN patlen \
1961				|NULLOK va_list *const args|NULLOK SV **const svargs \
1962				|const Size_t sv_count|NULLOK bool *const maybe_tainted
1963CpR	|NV	|str_to_version	|NN SV *sv
1964Ap	|void	|regdump	|NN const regexp* r
1965CiTop	|struct regexp *|ReANY	|NN const REGEXP * const re
1966Apdh	|I32	|pregexec	|NN REGEXP * const prog|NN char* stringarg \
1967				|NN char* strend|NN char* strbeg \
1968				|SSize_t minend |NN SV* screamer|U32 nosave
1969Ap	|void	|pregfree	|NULLOK REGEXP* r
1970Cp	|void	|pregfree2	|NN REGEXP *rx
1971: FIXME - is anything in re using this now?
1972EXp	|REGEXP*|reg_temp_copy	|NULLOK REGEXP* dsv|NN REGEXP* ssv
1973Cp	|void	|regfree_internal|NN REGEXP *const rx
1974#if defined(USE_ITHREADS)
1975Cp	|void*	|regdupe_internal|NN REGEXP * const r|NN CLONE_PARAMS* param
1976#endif
1977EXp	|regexp_engine const *|current_re_engine
1978Apdh	|REGEXP*|pregcomp	|NN SV * const pattern|const U32 flags
1979p	|REGEXP*|re_op_compile	|NULLOK SV ** const patternp \
1980				|int pat_count|NULLOK OP *expr \
1981				|NN const regexp_engine* eng \
1982				|NULLOK REGEXP *old_re \
1983				|NULLOK bool *is_bare_re \
1984				|const U32 rx_flags|const U32 pm_flags
1985Ap	|REGEXP*|re_compile	|NN SV * const pattern|U32 orig_rx_flags
1986Cp	|char*	|re_intuit_start|NN REGEXP * const rx \
1987				|NULLOK SV* sv \
1988				|NN const char* const strbeg \
1989				|NN char* strpos \
1990				|NN char* strend \
1991				|const U32 flags \
1992				|NULLOK re_scream_pos_data *data
1993Cp	|SV*	|re_intuit_string|NN REGEXP  *const r
1994Cp	|I32	|regexec_flags	|NN REGEXP *const rx|NN char *stringarg \
1995				|NN char *strend|NN char *strbeg \
1996				|SSize_t minend|NN SV *sv \
1997				|NULLOK void *data|U32 flags
1998CpR	|regnode*|regnext	|NULLOK regnode* p
1999EXp	|SV*|reg_named_buff          |NN REGEXP * const rx|NULLOK SV * const key \
2000                                 |NULLOK SV * const value|const U32 flags
2001EXp	|SV*|reg_named_buff_iter     |NN REGEXP * const rx|NULLOK const SV * const lastkey \
2002                                 |const U32 flags
2003Cp	|SV*|reg_named_buff_fetch    |NN REGEXP * const rx|NN SV * const namesv|const U32 flags
2004Cp	|bool|reg_named_buff_exists  |NN REGEXP * const rx|NN SV * const key|const U32 flags
2005Cp	|SV*|reg_named_buff_firstkey |NN REGEXP * const rx|const U32 flags
2006Cp	|SV*|reg_named_buff_nextkey  |NN REGEXP * const rx|const U32 flags
2007Cp	|SV*|reg_named_buff_scalar   |NN REGEXP * const rx|const U32 flags
2008Cp	|SV*|reg_named_buff_all      |NN REGEXP * const rx|const U32 flags
2009
2010: FIXME - is anything in re using this now?
2011EXp	|void|reg_numbered_buff_fetch|NN REGEXP * const rx|const I32 paren|NULLOK SV * const sv
2012: FIXME - is anything in re using this now?
2013EXp	|void|reg_numbered_buff_store|NN REGEXP * const rx|const I32 paren|NULLOK SV const * const value
2014: FIXME - is anything in re using this now?
2015EXp	|I32|reg_numbered_buff_length|NN REGEXP * const rx|NN const SV * const sv|const I32 paren
2016
2017: FIXME - is anything in re using this now?
2018EXp	|SV*|reg_qr_package|NN REGEXP * const rx
2019EXpRT	|I16	|do_uniprop_match|NN const char * const key|const U16 key_len
2020EXpRT	|const char * const *|get_prop_values|const int table_index
2021EXpR	|SV *	|get_prop_definition|const int table_index
2022EXpRT	|const char *|get_deprecated_property_msg|const Size_t warning_offset
2023#if defined(PERL_IN_REGCOMP_C)
2024EiRT	|bool	|invlist_is_iterating|NN SV* const invlist
2025EiR	|SV*	|invlist_contents|NN SV* const invlist		    \
2026				 |const bool traditional_style
2027EixRT	|UV	|invlist_lowest|NN SV* const invlist
2028ERS	|SV*	|make_exactf_invlist	|NN RExC_state_t *pRExC_state \
2029					|NN regnode *node
2030ES	|regnode_offset|reg_la_NOTHING	|NN RExC_state_t *pRExC_state \
2031					|U32 flags|NN const char *type
2032ES	|regnode_offset|reg_la_OPFAIL	|NN RExC_state_t *pRExC_state \
2033					|U32 flags|NN const char *type
2034ES	|regnode_offset|reg	|NN RExC_state_t *pRExC_state \
2035				|I32 paren|NN I32 *flagp|U32 depth
2036ES	|regnode_offset|regnode_guts|NN RExC_state_t *pRExC_state          \
2037				|const STRLEN extra_len
2038#ifdef DEBUGGING
2039ES	|regnode_offset|regnode_guts_debug|NN RExC_state_t *pRExC_state     \
2040				|const U8 op				    \
2041				|const STRLEN extra_len
2042#endif
2043ES	|void	|change_engine_size|NN RExC_state_t *pRExC_state|const Ptrdiff_t size
2044ES	|regnode_offset|reganode|NN RExC_state_t *pRExC_state|U8 op \
2045				|U32 arg
2046ES	|regnode_offset|regpnode|NN RExC_state_t *pRExC_state|U8 op \
2047				|NN SV * arg
2048ES	|regnode_offset|reg2Lanode|NN RExC_state_t *pRExC_state		   \
2049				|const U8 op				   \
2050				|const U32 arg1				   \
2051				|const I32 arg2
2052ES	|regnode_offset|regatom	|NN RExC_state_t *pRExC_state \
2053				|NN I32 *flagp|U32 depth
2054ES	|regnode_offset|regbranch	|NN RExC_state_t *pRExC_state \
2055				|NN I32 *flagp|I32 first|U32 depth
2056ES	|void	 |set_ANYOF_arg	|NN RExC_state_t* const pRExC_state \
2057				|NN regnode* const node                    \
2058				|NULLOK SV* const cp_list                  \
2059				|NULLOK SV* const runtime_defns		   \
2060				|NULLOK SV* const only_utf8_locale_list
2061ES	|void	|output_posix_warnings					    \
2062				|NN RExC_state_t *pRExC_state		    \
2063				|NN AV* posix_warnings
2064EiT	|Size_t	 |find_first_differing_byte_pos|NN const U8 * s1|NN const U8 * s2| const Size_t max
2065ES	|AV*	 |add_multi_match|NULLOK AV* multi_char_matches		    \
2066				|NN SV* multi_string			    \
2067				|const STRLEN cp_count
2068ES	|regnode_offset|regclass|NN RExC_state_t *pRExC_state                 \
2069				|NN I32 *flagp|U32 depth|const bool stop_at_1 \
2070				|bool allow_multi_fold                        \
2071				|const bool silence_non_portable              \
2072				|const bool strict                            \
2073				|bool optimizable			      \
2074				|NULLOK SV** ret_invlist
2075ES	|U8|optimize_regclass	|NN RExC_state_t *pRExC_state		    \
2076				|NULLOK SV* cp_list			    \
2077				|NULLOK SV* only_utf8_locale_list	    \
2078				|NULLOK SV* upper_latin1_only_utf8_matches  \
2079				|const U32 has_runtime_dependency	    \
2080				|const U32 posixl			    \
2081				|NN U8 * anyof_flags			    \
2082				|NN bool * invert			    \
2083				|NN regnode_offset * ret		    \
2084				|NN I32 *flagp
2085ES	|SV *	|parse_uniprop_string|NN const char * const name	    \
2086				     |Size_t name_len			    \
2087				     |const bool is_utf8		    \
2088				     |const bool to_fold		    \
2089				     |const bool runtime		    \
2090				     |const bool deferrable		    \
2091				     |NULLOK AV ** strings		    \
2092				     |NN bool * user_defined_ptr	    \
2093				     |NN SV * msg			    \
2094				     |const STRLEN level
2095ES	|SV *	|handle_user_defined_property|NN const char * name	    \
2096					     |const STRLEN name_len	    \
2097					     |const bool is_utf8	    \
2098					     |const bool to_fold	    \
2099					     |const bool runtime	    \
2100					     |const bool deferrable	    \
2101					     |NN SV* contents		    \
2102					     |NN bool *user_defined_ptr	    \
2103					     |NN SV * msg		    \
2104					     |const STRLEN level
2105ERS	|REGEXP*|compile_wildcard|NN const char * subpattern|const STRLEN len\
2106				 |const bool ignore_case
2107ES	|I32	|execute_wildcard|NN REGEXP * const prog|NN char* stringarg \
2108				|NN char* strend|NN char* strbeg \
2109				|SSize_t minend |NN SV* screamer|U32 nosave
2110ES	|bool	|handle_names_wildcard					    \
2111				|NN const char * wname			    \
2112				|const STRLEN wname_len			    \
2113				|NN SV ** prop_definition		    \
2114				|NN AV ** strings
2115ES	|void|add_above_Latin1_folds|NN RExC_state_t *pRExC_state|const U8 cp \
2116				|NN SV** invlist
2117ES	|regnode_offset|handle_named_backref|NN RExC_state_t *pRExC_state   \
2118				|NN I32 *flagp				    \
2119				|NN char * backref_parse_start		    \
2120				|char ch
2121ESTR	|unsigned int|regex_set_precedence|const U8 my_operator
2122ES	|regnode_offset|handle_regex_sets|NN RExC_state_t *pRExC_state \
2123				|NULLOK SV ** return_invlist            \
2124				|NN I32 *flagp|U32 depth
2125ES	|void	|set_regex_pv	|NN RExC_state_t *pRExC_state|NN REGEXP *Rx
2126#  if defined(DEBUGGING) && defined(ENABLE_REGEX_SETS_DEBUGGING)
2127ES	|void	|dump_regex_sets_structures				    \
2128				|NN RExC_state_t *pRExC_state		    \
2129				|NN AV * stack				    \
2130				|const IV fence|NN AV * fence_stack
2131#  endif
2132ES	|void|parse_lparen_question_flags|NN RExC_state_t *pRExC_state
2133ES	|regnode_offset|reg_node|NN RExC_state_t *pRExC_state|U8 op
2134ES	|U32	|get_quantifier_value|NN RExC_state_t *pRExC_state	    \
2135				|NN const char * start|NN const char * end
2136ES	|regnode_offset|regpiece|NN RExC_state_t *pRExC_state \
2137				|NN I32 *flagp|U32 depth
2138ES	|bool	|grok_bslash_N	|NN RExC_state_t *pRExC_state		    \
2139				|NULLOK regnode_offset* nodep		    \
2140				|NULLOK UV *code_point_p		    \
2141				|NULLOK int* cp_count			    \
2142				|NN I32 *flagp				    \
2143				|const bool strict			    \
2144				|const U32 depth
2145ES	|void	|reginsert	|NN RExC_state_t *pRExC_state \
2146				|const U8 op				    \
2147				|const regnode_offset operand		    \
2148				|const U32 depth
2149ESR	|bool	|regtail	|NN RExC_state_t * pRExC_state		    \
2150				|NN const regnode_offset p		    \
2151				|NN const regnode_offset val		    \
2152				|const U32 depth
2153ES	|SV *	|reg_scan_name	|NN RExC_state_t *pRExC_state \
2154				|U32 flags
2155ES	|U32	|join_exact	|NN RExC_state_t *pRExC_state \
2156				|NN regnode *scan|NN UV *min_subtract  \
2157				|NN bool *unfolded_multi_char          \
2158				|U32 flags|NULLOK regnode *val|U32 depth
2159EST	|U8   |compute_EXACTish|NN RExC_state_t *pRExC_state
2160ES	|void	|nextchar	|NN RExC_state_t *pRExC_state
2161ES	|void	|skip_to_be_ignored_text|NN RExC_state_t *pRExC_state  \
2162				|NN char ** p			    \
2163				|const bool force_to_xmod
2164EiT	|char *	|reg_skipcomment|NN RExC_state_t *pRExC_state|NN char * p
2165ES	|void	|scan_commit	|NN const RExC_state_t *pRExC_state \
2166				|NN struct scan_data_t *data        \
2167				|NN SSize_t *minlenp		    \
2168				|int is_inf
2169ES	|void	|populate_ANYOF_from_invlist|NN regnode *node|NN SV** invlist_ptr
2170ES	|void	|ssc_anything	|NN regnode_ssc *ssc
2171ESRT	|int	|ssc_is_anything|NN const regnode_ssc *ssc
2172ES	|void	|ssc_init	|NN const RExC_state_t *pRExC_state \
2173				|NN regnode_ssc *ssc
2174ESRT	|int	|ssc_is_cp_posixl_init|NN const RExC_state_t *pRExC_state \
2175				|NN const regnode_ssc *ssc
2176ES	|void	|ssc_and	|NN const RExC_state_t *pRExC_state \
2177				|NN regnode_ssc *ssc                \
2178				|NN const regnode_charclass *and_with
2179ES	|void	|ssc_or		|NN const RExC_state_t *pRExC_state \
2180				|NN regnode_ssc *ssc \
2181				|NN const regnode_charclass *or_with
2182ES	|SV*	|get_ANYOF_cp_list_for_ssc                                 \
2183				|NN const RExC_state_t *pRExC_state \
2184				|NN const regnode_charclass* const node
2185ES	|void	|ssc_intersection|NN regnode_ssc *ssc \
2186				|NN SV* const invlist|const bool invert_2nd
2187ES	|void	|ssc_union	|NN regnode_ssc *ssc \
2188				|NN SV* const invlist|const bool invert_2nd
2189ES	|void	|ssc_add_range	|NN regnode_ssc *ssc \
2190				|UV const start|UV const end
2191ES	|void	|ssc_cp_and	|NN regnode_ssc *ssc \
2192				|UV const cp
2193EST	|void	|ssc_clear_locale|NN regnode_ssc *ssc
2194ETS	|bool	|is_ssc_worth_it|NN const RExC_state_t * pRExC_state \
2195				|NN const regnode_ssc * ssc
2196ES	|void	|ssc_finalize	|NN RExC_state_t *pRExC_state \
2197				|NN regnode_ssc *ssc
2198ES	|SSize_t|study_chunk	|NN RExC_state_t *pRExC_state \
2199				|NN regnode **scanp|NN SSize_t *minlenp \
2200				|NN SSize_t *deltap|NN regnode *last \
2201				|NULLOK struct scan_data_t *data \
2202                                |I32 stopparen|U32 recursed_depth \
2203				|NULLOK regnode_ssc *and_withp \
2204				|U32 flags|U32 depth|bool was_mutate_ok
2205ES	|void	|rck_elide_nothing|NN regnode *node
2206ESR	|SV *	|get_ANYOFM_contents|NN const regnode * n
2207ESRT	|U32	|add_data	|NN RExC_state_t* const pRExC_state \
2208				|NN const char* const s|const U32 n
2209frS	|void	|re_croak	|bool utf8|NN const char* pat|...
2210ES	|int	|handle_possible_posix					    \
2211				|NN RExC_state_t *pRExC_state		    \
2212				|NN const char* const s			    \
2213				|NULLOK char ** updated_parse_ptr	    \
2214				|NULLOK AV** posix_warnings		    \
2215				|const bool check_only
2216ES	|I32	|make_trie	|NN RExC_state_t *pRExC_state \
2217				|NN regnode *startbranch|NN regnode *first \
2218				|NN regnode *last|NN regnode *tail \
2219				|U32 word_count|U32 flags|U32 depth
2220ES	|regnode *|construct_ahocorasick_from_trie|NN RExC_state_t *pRExC_state \
2221                                |NN regnode *source|U32 depth
2222ETSR	|int	|edit_distance	|NN const UV *src		    \
2223				|NN const UV *tgt		    \
2224				|const STRLEN x			    \
2225				|const STRLEN y			    \
2226				|const SSize_t maxDistance
2227#  ifdef DEBUGGING
2228EFp	|int	|re_indentf	|NN const char *fmt|U32 depth|...
2229ES	|void        |regdump_intflags|NULLOK const char *lead| const U32 flags
2230ES	|void	|regdump_extflags|NULLOK const char *lead| const U32 flags
2231ES	|const regnode*|dumpuntil|NN const regexp *r|NN const regnode *start \
2232				|NN const regnode *node \
2233				|NULLOK const regnode *last \
2234				|NULLOK const regnode *plast \
2235				|NN SV* sv|I32 indent|U32 depth
2236ES	|void	|put_code_point	|NN SV* sv|UV c
2237ES	|bool	|put_charclass_bitmap_innards|NN SV* sv		    \
2238				|NULLOK char* bitmap		    \
2239				|NULLOK SV* nonbitmap_invlist	    \
2240				|NULLOK SV* only_utf8_locale_invlist\
2241				|NULLOK const regnode * const node  \
2242				|const U8 flags			    \
2243				|const bool force_as_is_display
2244ES	|SV*	|put_charclass_bitmap_innards_common		    \
2245				|NN SV* invlist			    \
2246				|NULLOK SV* posixes		    \
2247				|NULLOK SV* only_utf8		    \
2248				|NULLOK SV* not_utf8		    \
2249				|NULLOK SV* only_utf8_locale	    \
2250				|const bool invert
2251ES	|void	|put_charclass_bitmap_innards_invlist		    \
2252				|NN SV *sv			    \
2253				|NN SV* invlist
2254ES	|void	|put_range	|NN SV* sv|UV start|const UV end    \
2255				|const bool allow_literals
2256ES	|void	|dump_trie	|NN const struct _reg_trie_data *trie\
2257				|NULLOK HV* widecharmap|NN AV *revcharmap\
2258				|U32 depth
2259ES	|void	|dump_trie_interim_list|NN const struct _reg_trie_data *trie\
2260				|NULLOK HV* widecharmap|NN AV *revcharmap\
2261				|U32 next_alloc|U32 depth
2262ES	|void	|dump_trie_interim_table|NN const struct _reg_trie_data *trie\
2263				|NULLOK HV* widecharmap|NN AV *revcharmap\
2264				|U32 next_alloc|U32 depth
2265ESR	|bool	|regtail_study	|NN RExC_state_t *pRExC_state \
2266				|NN regnode_offset p|NN const regnode_offset val|U32 depth
2267#  endif
2268#  ifndef PERL_EXT_RE_BUILD
2269EiRT	|UV*	|_invlist_array_init	|NN SV* const invlist|const bool will_have_0
2270EiRT	|UV	|invlist_max	|NN SV* const invlist
2271EiRT	|IV*	|get_invlist_previous_index_addr|NN SV* invlist
2272EiT	|void	|invlist_set_previous_index|NN SV* const invlist|const IV index
2273EiRT	|IV	|invlist_previous_index|NN SV* const invlist
2274EiT	|void	|invlist_trim	|NN SV* invlist
2275Ei	|void	|invlist_clear	|NN SV* invlist
2276ES	|void	|_append_range_to_invlist   |NN SV* const invlist|const UV start|const UV end
2277ES	|void	|invlist_replace_list_destroys_src|NN SV *dest|NN SV *src
2278S	|void	|initialize_invlist_guts|NN SV* invlist|const Size_t initial_size
2279#  endif
2280#endif
2281#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C)
2282EiR	|SV*	|add_cp_to_invlist	|NULLOK SV* invlist|const UV cp
2283Ei	|void	|invlist_extend    |NN SV* const invlist|const UV len
2284Ei	|void	|invlist_set_len|NN SV* const invlist|const UV len|const bool offset
2285EiRT	|UV	|invlist_highest|NN SV* const invlist
2286#endif
2287#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || defined(PERL_IN_UTF8_C)
2288m	|void	|_invlist_intersection	|NN SV* const a|NN SV* const b|NN SV** i
2289EXp	|void	|_invlist_intersection_maybe_complement_2nd \
2290		|NULLOK SV* const a|NN SV* const b          \
2291		|const bool complement_b|NN SV** i
2292Cm	|void	|_invlist_union	|NULLOK SV* const a|NN SV* const b|NN SV** output
2293EXp	|void	|_invlist_union_maybe_complement_2nd        \
2294		|NULLOK SV* const a|NN SV* const b          \
2295		|const bool complement_b|NN SV** output
2296m	|void	|_invlist_subtract|NN SV* const a|NN SV* const b|NN SV** result
2297EXp	|void	|_invlist_invert|NN SV* const invlist
2298EXpR	|SV*	|_new_invlist	|IV initial_size
2299EXpR	|SV*	|_add_range_to_invlist	|NULLOK SV* invlist|UV start|UV end
2300EXpR	|SV*	|_setup_canned_invlist|const STRLEN size|const UV element0|NN UV** other_elements_ptr
2301#endif
2302#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_TOKE_C)
2303EpRX	|bool	|grok_bslash_x	|NN char** s			\
2304				|NN const char* const send	\
2305				|NN UV* uv			\
2306				|NN const char** message	\
2307				|NULLOK U32 * packed_warn	\
2308				|const bool strict		\
2309				|const bool allow_UV_MAX	\
2310				|const bool utf8
2311EpRX	|bool	|grok_bslash_c	|const char source		\
2312				|NN U8 * result			\
2313				|NN const char** message	\
2314				|NULLOK U32 * packed_warn
2315EpRX	|bool	|grok_bslash_o	|NN char** s			\
2316				|NN const char* const send	\
2317				|NN UV* uv			\
2318				|NN const char** message        \
2319				|NULLOK U32 * packed_warn	\
2320				|const bool strict              \
2321				|const bool allow_UV_MAX	\
2322				|const bool utf8
2323EpRX	|const char *|form_alien_digit_msg|const U8 which	\
2324				|const STRLEN valids_len	\
2325				|NN const char * const first_bad\
2326				|NN const char * const send	\
2327				|const bool UTF			\
2328				|const bool braced
2329#endif
2330#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C)
2331EpRX	|const char *|form_cp_too_large_msg|const U8 which	\
2332				|NULLOK const char * string	\
2333				|const Size_t len		\
2334				|const UV cp
2335#endif
2336#if defined(PERL_IN_REGCOMP_C) || defined (PERL_IN_DUMP_C) || defined(PERL_IN_OP_C)
2337EXp	|void	|_invlist_dump	|NN PerlIO *file|I32 level   \
2338				|NN const char* const indent \
2339				|NN SV* const invlist
2340#endif
2341#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_OP_C)
2342EiRT	|STRLEN*|get_invlist_iter_addr	|NN SV* invlist
2343EiT	|void	|invlist_iterinit|NN SV* invlist
2344EiRT	|bool	|invlist_iternext|NN SV* invlist|NN UV* start|NN UV* end
2345EiT	|void	|invlist_iterfinish|NN SV* invlist
2346#endif
2347#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C) || defined(PERL_IN_UTF8_C)
2348EXpR	|SV*	|_new_invlist_C_array|NN const UV* const list
2349EXp	|bool	|_invlistEQ	|NN SV* const a|NN SV* const b|const bool complement_b
2350#endif
2351#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PP_C) || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
2352EiT	|const char *|get_regex_charset_name|const U32 flags|NN STRLEN* const lenp
2353#endif
2354#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)	\
2355 || defined(PERL_IN_PP_C) || defined(PERL_IN_OP_C)		\
2356 || defined(PERL_IN_TOKE_C) || defined(PERL_IN_UTF8_C)		\
2357 || defined(PERL_IN_DOOP_C)
2358EiRT	|UV*	|invlist_array	|NN SV* const invlist
2359EiRT	|bool	|is_invlist	|NULLOK SV* const invlist
2360EiRT	|bool*	|get_invlist_offset_addr|NN SV* invlist
2361EiRT	|UV	|_invlist_len	|NN SV* const invlist
2362EiRT	|bool	|_invlist_contains_cp|NN SV* const invlist|const UV cp
2363EXpRT	|SSize_t|_invlist_search	|NN SV* const invlist|const UV cp
2364#endif
2365#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
2366#  ifndef PERL_EXT_RE_BUILD
2367Ep	|SV*	|get_regclass_nonbitmap_data				   \
2368				|NULLOK const regexp *prog		   \
2369				|NN const struct regnode *node		   \
2370				|bool doinit				   \
2371				|NULLOK SV **listsvp			   \
2372				|NULLOK SV **lonly_utf8_locale		   \
2373				|NULLOK SV **output_invlist
2374#  else
2375Ep	|SV*	|get_re_gclass_nonbitmap_data				   \
2376				|NULLOK const regexp *prog		   \
2377				|NN const struct regnode *node		   \
2378				|bool doinit				   \
2379				|NULLOK SV **listsvp			   \
2380				|NULLOK SV **lonly_utf8_locale		   \
2381				|NULLOK SV **output_invlist
2382#endif
2383Ep	|void	|regprop	|NULLOK const regexp *prog|NN SV* sv|NN const regnode* o|NULLOK const regmatch_info *reginfo \
2384				|NULLOK const RExC_state_t *pRExC_state
2385Efp	|int	|re_printf	|NN const char *fmt|...
2386#endif
2387#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C)
2388ERp	|bool	|is_grapheme	|NN const U8 * strbeg|NN const U8 * s|NN const U8 *strend|const UV cp
2389#endif
2390#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
2391EXTp	|UV	|_to_fold_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const unsigned int flags
2392#endif
2393#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_SV_C)
2394EpX	|SV*	|invlist_clone	|NN SV* const invlist|NULLOK SV* newlist
2395#endif
2396#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
2397EXpRT	|bool	|regcurly	|NN const char *s|NN const char *e|NULLOK const char * result[5]
2398#endif
2399#if defined(PERL_IN_REGEXEC_C)
2400ERS	|bool	|isFOO_utf8_lc	|const U8 classnum|NN const U8* character|NN const U8* e
2401ERTS	|U8 *	|find_next_masked|NN U8 * s				\
2402				 |NN const U8 * send			\
2403				 |const U8 byte|const U8 mask
2404ERTS	|U8 *|find_span_end	|NN U8* s|NN const U8 * send|const U8 span_byte
2405ERTS	|U8 *|find_span_end_mask|NN U8 * s|NN const U8 * send	\
2406				|const U8 span_byte|const U8 mask
2407ERS	|SSize_t|regmatch	|NN regmatch_info *reginfo|NN char *startpos|NN regnode *prog
2408WERS	|I32	|regrepeat	|NN regexp *prog|NN char **startposp \
2409				|NN const regnode *p \
2410				|NN char *loceol		\
2411				|NN regmatch_info *const reginfo \
2412				|I32 max
2413ERS	|bool	|regtry		|NN regmatch_info *reginfo|NN char **startposp
2414ERS	|bool	|reginclass	|NULLOK regexp * const prog  \
2415				|NN const regnode * const n  \
2416				|NN const U8 * const p       \
2417				|NN const U8 * const p_end   \
2418				|bool const utf8_target
2419WES	|CHECKPOINT|regcppush	|NN const regexp *rex|I32 parenfloor\
2420				|U32 maxopenparen
2421WES	|void	|regcppop	|NN regexp *rex|NN U32 *maxopenparen_p
2422WES	|void	|regcp_restore	|NN regexp *rex|I32 ix|NN U32 *maxopenparen_p
2423ERST	|U8*	|reghop3	|NN U8 *s|SSize_t off|NN const U8 *lim
2424ERST	|U8*	|reghop4	|NN U8 *s|SSize_t off|NN const U8 *llim \
2425				|NN const U8 *rlim
2426ERST	|U8*	|reghopmaybe3	|NN U8 *s|SSize_t off|NN const U8 * const lim
2427ERS	|char*	|find_byclass	|NN regexp * prog|NN const regnode *c \
2428				|NN char *s|NN const char *strend \
2429				|NULLOK regmatch_info *reginfo
2430ES	|void	|to_utf8_substr	|NN regexp * prog
2431ES	|bool	|to_byte_substr	|NN regexp * prog
2432ERST	|I32	|reg_check_named_buff_matched	|NN const regexp *rex \
2433						|NN const regnode *scan
2434ESR	|bool	|isGCB		|const GCB_enum before			\
2435				|const GCB_enum after			\
2436				|NN const U8 * const strbeg		\
2437				|NN const U8 * const curpos		\
2438				|const bool utf8_target
2439ESR	|GCB_enum|backup_one_GCB|NN const U8 * const strbeg			\
2440				|NN U8 ** curpos				\
2441				|const bool utf8_target
2442ESR	|bool	|isLB		|LB_enum before				\
2443				|LB_enum after				\
2444				|NN const U8 * const strbeg		\
2445				|NN const U8 * const curpos		\
2446				|NN const U8 * const strend		\
2447				|const bool utf8_target
2448ESR	|LB_enum|advance_one_LB |NN U8 ** curpos				\
2449				|NN const U8 * const strend			\
2450				|const bool utf8_target
2451ESR	|LB_enum|backup_one_LB  |NN const U8 * const strbeg			\
2452				|NN U8 ** curpos				\
2453				|const bool utf8_target
2454ESR	|bool	|isSB		|SB_enum before				\
2455				|SB_enum after				\
2456				|NN const U8 * const strbeg			\
2457				|NN const U8 * const curpos			\
2458				|NN const U8 * const strend			\
2459				|const bool utf8_target
2460ESR	|SB_enum|advance_one_SB |NN U8 ** curpos				\
2461				|NN const U8 * const strend			\
2462				|const bool utf8_target
2463ESR	|SB_enum|backup_one_SB  |NN const U8 * const strbeg			\
2464				|NN U8 ** curpos				\
2465				|const bool utf8_target
2466ESR	|bool	|isWB		|WB_enum previous				\
2467				|WB_enum before				\
2468				|WB_enum after				\
2469				|NN const U8 * const strbeg			\
2470				|NN const U8 * const curpos			\
2471				|NN const U8 * const strend			\
2472				|const bool utf8_target
2473ESR	|WB_enum|advance_one_WB |NN U8 ** curpos				\
2474				|NN const U8 * const strend			\
2475				|const bool utf8_target				\
2476				|const bool skip_Extend_Format
2477ESR	|WB_enum|backup_one_WB  |NN WB_enum * previous			\
2478				|NN const U8 * const strbeg			\
2479				|NN U8 ** curpos				\
2480				|const bool utf8_target
2481EiT	|I32	|foldEQ_latin1_s2_folded|NN const char* a|NN const char* b|I32 len
2482#  ifdef DEBUGGING
2483ES	|void	|dump_exec_pos	|NN const char *locinput|NN const regnode *scan|NN const char *loc_regeol\
2484				|NN const char *loc_bostr|NN const char *loc_reg_starttry|const bool do_utf8|const U32 depth
2485ES	|void	|debug_start_match|NN const REGEXP *prog|const bool do_utf8\
2486				|NN const char *start|NN const char *end\
2487				|NN const char *blurb
2488
2489EFp	|int	|re_exec_indentf|NN const char *fmt|U32 depth|...
2490#  endif
2491#endif
2492#if defined(PERL_IN_REGEXEC_C)
2493ESR	|bool	|isFOO_lc	|const U8 classnum|const U8 character
2494#endif
2495
2496Ap	|void	|taint_env
2497Ap	|void	|taint_proper	|NULLOK const char* f|NN const char *const s
2498EXp	|char *	|_byte_dump_string					\
2499				|NN const U8 * const start		\
2500				|const STRLEN len			\
2501				|const bool format
2502
2503#if defined(PERL_IN_UTF8_C)
2504iTR	|int	|does_utf8_overflow|NN const U8 * const s		\
2505				   |NN const U8 * e			\
2506				   |const bool consider_overlongs
2507iTR	|int	|is_utf8_overlong|NN const U8 * const s			\
2508				|const STRLEN len
2509iTR	|int	|isFF_overlong	|NN const U8 * const s|const STRLEN len
2510SR	|char *	|unexpected_non_continuation_text			\
2511		|NN const U8 * const s					\
2512		|STRLEN print_len					\
2513		|const STRLEN non_cont_byte_pos				\
2514		|const STRLEN expect_len
2515#if 0	/* Not currently used, but may be needed in the future */
2516S	|void	|warn_on_first_deprecated_use				    \
2517				|NN const char * const name		    \
2518				|NN const char * const alternative	    \
2519				|const bool use_locale			    \
2520				|NN const char * const file		    \
2521				|const unsigned line
2522#endif
2523S	|UV	|to_case_cp_list|const UV original				\
2524				|NULLOK const U32 ** const remaining_list	\
2525				|NULLOK Size_t * remaining_count		\
2526				|NN SV *invlist					\
2527				|NN const I32 * const invmap			\
2528				|NULLOK const U32 * const * const aux_tables	\
2529				|NULLOK const U8 * const aux_table_lengths	\
2530				|NN const char * const normal
2531S	|UV	|_to_utf8_case  |const UV original				\
2532				|NULLOK const U8 *p				\
2533				|NN U8* ustrp					\
2534				|NN STRLEN *lenp				\
2535				|NN SV *invlist					\
2536				|NN const I32 * const invmap			\
2537				|NULLOK const U32 * const * const aux_tables	\
2538				|NULLOK const U8 * const aux_table_lengths	\
2539				|NN const char * const normal
2540S	|UV	|turkic_fc	|NN const U8 * const p |NN const U8 * const e|NN U8* ustrp|NN STRLEN *lenp
2541S	|UV	|turkic_lc	|NN const U8 * const p0|NN const U8 * const e|NN U8* ustrp|NN STRLEN *lenp
2542S	|UV	|turkic_uc	|NN const U8 * const p |NN const U8 * const e|NN U8* ustrp|NN STRLEN *lenp
2543#endif
2544Cp	|UV	|_to_utf8_lower_flags|NN const U8 *p|NULLOK const U8* e		\
2545				|NN U8* ustrp|NULLOK STRLEN *lenp|bool flags
2546Cp	|UV	|_to_utf8_upper_flags	|NN const U8 *p|NULLOK const U8 *e	\
2547				|NN U8* ustrp|NULLOK STRLEN *lenp|bool flags
2548Cp	|UV	|_to_utf8_title_flags	|NN const U8 *p|NULLOK const U8* e	\
2549				|NN U8* ustrp|NULLOK STRLEN *lenp|bool flags
2550Cp	|UV	|_to_utf8_fold_flags|NN const U8 *p|NULLOK const U8 *e		\
2551				|NN U8* ustrp|NULLOK STRLEN *lenp|U8 flags
2552#if defined(PERL_IN_MG_C) || defined(PERL_IN_PP_C)
2553pT	|bool	|translate_substr_offsets|STRLEN curlen|IV pos1_iv \
2554					 |bool pos1_is_uv|IV len_iv \
2555					 |bool len_is_uv|NN STRLEN *posp \
2556					 |NN STRLEN *lenp
2557#endif
2558#if defined(UNLINK_ALL_VERSIONS)
2559Cp	|I32	|unlnk		|NN const char* f
2560#endif
2561AbpdD	|SSize_t|unpack_str	|NN const char *pat|NN const char *patend|NN const char *s \
2562				|NULLOK const char *strbeg|NN const char *strend|NULLOK char **new_s \
2563				|I32 ocnt|U32 flags
2564Apd	|SSize_t|unpackstring	|NN const char *pat|NN const char *patend|NN const char *s \
2565				|NN const char *strend|U32 flags
2566Ap	|void	|unsharepvn	|NULLOK const char* sv|I32 len|U32 hash
2567: Used in gv.c, hv.c
2568p	|void	|unshare_hek	|NULLOK HEK* hek
2569: Used in perly.y
2570p	|void	|utilize	|int aver|I32 floor|NULLOK OP* version|NN OP* idop|NULLOK OP* arg
2571Cp	|void	|_force_out_malformed_utf8_message			    \
2572		|NN const U8 *const p|NN const U8 * const e|const U32 flags \
2573		|const bool die_here
2574EXp	|U8*	|utf16_to_utf8_base|NN U8* p|NN U8 *d|Size_t bytelen|NN Size_t *newlen	\
2575				|const bool high|const bool low
2576EMXp	|U8*	|utf16_to_utf8	|NN U8* p|NN U8 *d|Size_t bytelen|NN Size_t *newlen
2577EMXp	|U8*	|utf16_to_utf8_reversed|NN U8* p|NN U8 *d|Size_t bytelen|NN Size_t *newlen
2578EXpx	|U8*	|utf8_to_utf16_base|NN U8* s|NN U8 *d|Size_t bytelen|NN Size_t *newlen	\
2579				|const bool high|const bool low
2580AdpR	|STRLEN	|utf8_length	|NN const U8* s|NN const U8 *e
2581AipdR	|IV	|utf8_distance	|NN const U8 *a|NN const U8 *b
2582AipdRT	|U8*	|utf8_hop	|NN const U8 *s|SSize_t off
2583AipdRT	|U8*	|utf8_hop_back|NN const U8 *s|SSize_t off|NN const U8 *start
2584AipdRT	|U8*	|utf8_hop_forward|NN const U8 *s|SSize_t off|NN const U8 *end
2585AipdRT	|U8*	|utf8_hop_safe	|NN const U8 *s|SSize_t off|NN const U8 *start|NN const U8 *end
2586Apxd	|U8*	|utf8_to_bytes	|NN U8 *s|NN STRLEN *lenp
2587Apd	|int	|bytes_cmp_utf8	|NN const U8 *b|STRLEN blen|NN const U8 *u \
2588				|STRLEN ulen
2589AMxdp	|U8*	|bytes_from_utf8|NN const U8 *s|NN STRLEN *lenp|NN bool *is_utf8p
2590CxTdp	|U8*	|bytes_from_utf8_loc|NN const U8 *s			    \
2591				    |NN STRLEN *lenp			    \
2592				    |NN bool *is_utf8p			    \
2593				    |NULLOK const U8 ** first_unconverted
2594Apxd	|U8*	|bytes_to_utf8	|NN const U8 *s|NN STRLEN *lenp
2595ApdDb	|UV	|utf8_to_uvchr	|NN const U8 *s|NULLOK STRLEN *retlen
2596CbpdD	|UV	|utf8_to_uvuni	|NN const U8 *s|NULLOK STRLEN *retlen
2597CbpD	|UV	|valid_utf8_to_uvuni	|NN const U8 *s|NULLOK STRLEN *retlen
2598AMpd	|UV	|utf8_to_uvchr_buf	|NN const U8 *s|NN const U8 *send|NULLOK STRLEN *retlen
2599Cip	|UV	|utf8_to_uvchr_buf_helper|NN const U8 *s|NN const U8 *send|NULLOK STRLEN *retlen
2600CpdD	|UV	|utf8_to_uvuni_buf	|NN const U8 *s|NN const U8 *send|NULLOK STRLEN *retlen
2601p	|bool	|check_utf8_print	|NN const U8 *s|const STRLEN len
2602
2603AdMTp	|UV	|utf8n_to_uvchr	|NN const U8 *s				    \
2604				|STRLEN curlen				    \
2605				|NULLOK STRLEN *retlen			    \
2606				|const U32 flags
2607AdMTp	|UV	|utf8n_to_uvchr_error|NN const U8 *s			    \
2608				|STRLEN curlen				    \
2609				|NULLOK STRLEN *retlen			    \
2610				|const U32 flags			    \
2611				|NULLOK U32 * errors
2612ATdip	|UV	|utf8n_to_uvchr_msgs|NN const U8 *s			    \
2613				|STRLEN curlen				    \
2614				|NULLOK STRLEN *retlen			    \
2615				|const U32 flags			    \
2616				|NULLOK U32 * errors			    \
2617				|NULLOK AV ** msgs
2618CTp	|UV	|_utf8n_to_uvchr_msgs_helper				    \
2619				|NN const U8 *s				    \
2620				|STRLEN curlen				    \
2621				|NULLOK STRLEN *retlen			    \
2622				|const U32 flags			    \
2623				|NULLOK U32 * errors			    \
2624				|NULLOK AV ** msgs
2625CipTRd	|UV	|valid_utf8_to_uvchr	|NN const U8 *s|NULLOK STRLEN *retlen
2626CdbDp	|UV	|utf8n_to_uvuni|NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags
2627
2628Adm	|U8*	|uvchr_to_utf8	|NN U8 *d|UV uv
2629Cp	|U8*	|uvuni_to_utf8	|NN U8 *d|UV uv
2630Adm	|U8*	|uvchr_to_utf8_flags	|NN U8 *d|UV uv|UV flags
2631Adm	|U8*	|uvchr_to_utf8_flags_msgs|NN U8 *d|UV uv|UV flags|NULLOK HV ** msgs
2632CMpd	|U8*	|uvoffuni_to_utf8_flags	|NN U8 *d|UV uv|UV flags
2633Cp	|U8*	|uvoffuni_to_utf8_flags_msgs|NN U8 *d|UV input_uv|const UV flags|NULLOK HV** msgs
2634CdpbD	|U8*	|uvuni_to_utf8_flags	|NN U8 *d|UV uv|UV flags
2635Apd	|char*	|pv_uni_display	|NN SV *dsv|NN const U8 *spv|STRLEN len|STRLEN pvlim|UV flags
2636ApdR	|char*	|sv_uni_display	|NN SV *dsv|NN SV *ssv|STRLEN pvlim|UV flags
2637EXpR	|Size_t	|_inverse_folds	|const UV cp				    \
2638				|NN U32 * first_folds_to		    \
2639				|NN const U32 ** remaining_folds_to
2640: Used by Data::Alias
2641EXp	|void	|vivify_defelem	|NN SV* sv
2642: Used in pp.c
2643pR	|SV*	|vivify_ref	|NN SV* sv|U32 to_what
2644: Used in pp_sys.c
2645p	|I32	|wait4pid	|Pid_t pid|NN int* statusp|int flags
2646: Used in locale.c and perl.c
2647p	|U32	|parse_unicode_opts|NN const char **popt
2648Ap	|U32	|seed
2649XpTo	|double	|drand48_r	|NN perl_drand48_t *random_state
2650XpTo	|void	|drand48_init_r |NN perl_drand48_t *random_state|U32 seed
2651: Only used in perl.c
2652p	|void	|get_hash_seed        |NN unsigned char * const seed_buffer
2653: Used in doio.c, pp_hot.c, pp_sys.c
2654p	|void	|report_evil_fh	|NULLOK const GV *gv
2655: Used in doio.c, pp_hot.c, pp_sys.c
2656p	|void	|report_wrongway_fh|NULLOK const GV *gv|const char have
2657: Used in mg.c, pp.c, pp_hot.c, regcomp.c
2658XEpd	|void	|report_uninit	|NULLOK const SV *uninit_sv
2659#if defined(PERL_IN_OP_C) || defined(PERL_IN_SV_C)
2660p	|void	|report_redefined_cv|NN const SV *name \
2661				    |NN const CV *old_cv \
2662				    |NULLOK SV * const *new_const_svp
2663#endif
2664Apd	|void	|warn_sv	|NN SV *baseex
2665Afpd	|void	|warn		|NN const char* pat|...
2666Apd	|void	|vwarn		|NN const char* pat|NULLOK va_list* args
2667Adfp	|void	|warner		|U32 err|NN const char* pat|...
2668Adfp	|void	|ck_warner	|U32 err|NN const char* pat|...
2669Adfp	|void	|ck_warner_d	|U32 err|NN const char* pat|...
2670Adp	|void	|vwarner	|U32 err|NN const char* pat|NULLOK va_list* args
2671#ifdef USE_C_BACKTRACE
2672pd	|Perl_c_backtrace*|get_c_backtrace|int max_depth|int skip
2673dm	|void	|free_c_backtrace|NN Perl_c_backtrace* bt
2674Apd	|SV*	|get_c_backtrace_dump|int max_depth|int skip
2675Apd	|bool	|dump_c_backtrace|NN PerlIO* fp|int max_depth|int skip
2676#endif
2677: FIXME
2678p	|void	|watch		|NN char** addr
2679Amd	|I32	|whichsig	|NN const char* sig
2680Apd	|I32    |whichsig_sv    |NN SV* sigsv
2681Apd	|I32    |whichsig_pv    |NN const char* sig
2682Apd	|I32    |whichsig_pvn   |NN const char* sig|STRLEN len
2683: used to check for NULs in pathnames and other names
2684AiRdp	|bool	|is_safe_syscall|NN const char *pv|STRLEN len|NN const char *what|NN const char *op_name
2685#ifdef PERL_CORE
2686iTR	|bool	|should_warn_nl|NN const char *pv
2687#endif
2688: Used in pp_ctl.c
2689p	|void	|write_to_stderr|NN SV* msv
2690: Used in op.c
2691p	|int	|yyerror	|NN const char *const s
2692p	|void	|yyquit
2693pr	|void	|abort_execution|NN const char * const msg|NN const char * const name
2694p	|int	|yyerror_pv	|NN const char *const s|U32 flags
2695p	|int	|yyerror_pvn	|NULLOK const char *const s|STRLEN len|U32 flags
2696: Used in perly.y, and by Data::Alias
2697EXp	|int	|yylex
2698p	|void	|yyunlex
2699: Used in perl.c, pp_ctl.c
2700p	|int	|yyparse	|int gramtype
2701: Only used in scope.c
2702p	|void	|parser_free	|NN const yy_parser *parser
2703#ifdef PERL_CORE
2704p	|void	|parser_free_nexttoke_ops|NN yy_parser *parser \
2705					 |NN OPSLAB *slab
2706#endif
2707#if defined(PERL_IN_TOKE_C)
2708S	|int	|yywarn		|NN const char *const s|U32 flags
2709#endif
2710#if defined(MYMALLOC)
2711Ap	|void	|dump_mstats	|NN const char* s
2712Ap	|int	|get_mstats	|NN perl_mstats_t *buf|int buflen|int level
2713#endif
2714ATdpa	|Malloc_t|safesysmalloc	|MEM_SIZE nbytes
2715ATdpa	|Malloc_t|safesyscalloc	|MEM_SIZE elements|MEM_SIZE size
2716ATdpR	|Malloc_t|safesysrealloc|Malloc_t where|MEM_SIZE nbytes
2717AdTp	|Free_t	|safesysfree	|Malloc_t where
2718CrTp	|void	|croak_memory_wrap
2719Cp	|int	|runops_standard
2720Cp	|int	|runops_debug
2721Afpd	|void	|sv_catpvf_mg	|NN SV *const sv|NN const char *const pat|...
2722Apd	|void	|sv_vcatpvf_mg	|NN SV *const sv|NN const char *const pat \
2723				|NULLOK va_list *const args
2724Apd	|void	|sv_catpv_mg	|NN SV *const dsv|NULLOK const char *const sstr
2725ApdbM	|void	|sv_catpvn_mg	|NN SV *dsv|NN const char *sstr|STRLEN len
2726ApdbM	|void	|sv_catsv_mg	|NN SV *dsv|NULLOK SV *sstr
2727Afpd	|void	|sv_setpvf_mg	|NN SV *const sv|NN const char *const pat|...
2728Apd	|void	|sv_vsetpvf_mg	|NN SV *const sv|NN const char *const pat \
2729				|NULLOK va_list *const args
2730Apd	|void	|sv_setiv_mg	|NN SV *const sv|const IV i
2731ApdbD	|void	|sv_setpviv_mg	|NN SV *const sv|const IV iv
2732Apd	|void	|sv_setuv_mg	|NN SV *const sv|const UV u
2733Apd	|void	|sv_setnv_mg	|NN SV *const sv|const NV num
2734Apd	|void	|sv_setpv_mg	|NN SV *const sv|NULLOK const char *const ptr
2735Apd	|void	|sv_setpvn_mg	|NN SV *const sv|NN const char *const ptr|const STRLEN len
2736Apd	|void	|sv_setsv_mg	|NN SV *const dsv|NULLOK SV *const ssv
2737ApdbM	|void	|sv_usepvn_mg	|NN SV *sv|NULLOK char *ptr|STRLEN len
2738ApR	|MGVTBL*|get_vtbl	|int vtbl_id
2739Apd	|char*	|pv_display	|NN SV *dsv|NN const char *pv|STRLEN cur|STRLEN len \
2740				|STRLEN pvlim
2741Apd	|char*	|pv_escape	|NULLOK SV *dsv|NN char const * const str\
2742                                |const STRLEN count|const STRLEN max\
2743                                |NULLOK STRLEN * const escaped\
2744                                |const U32 flags
2745Apd	|char*  |pv_pretty      |NN SV *dsv|NN char const * const str\
2746                                |const STRLEN count|const STRLEN max\
2747                                |NULLOK char const * const start_color\
2748                                |NULLOK char const * const end_color\
2749                                |const U32 flags
2750Cfp	|void	|dump_indent	|I32 level|NN PerlIO *file|NN const char* pat|...
2751Cp	|void	|dump_vindent	|I32 level|NN PerlIO *file|NN const char* pat \
2752				|NULLOK va_list *args
2753Cp	|void	|do_gv_dump	|I32 level|NN PerlIO *file|NN const char *name\
2754				|NULLOK GV *sv
2755Cp	|void	|do_gvgv_dump	|I32 level|NN PerlIO *file|NN const char *name\
2756				|NULLOK GV *sv
2757Cp	|void	|do_hv_dump	|I32 level|NN PerlIO *file|NN const char *name\
2758				|NULLOK HV *sv
2759Cp	|void	|do_magic_dump	|I32 level|NN PerlIO *file|NULLOK const MAGIC *mg|I32 nest \
2760				|I32 maxnest|bool dumpops|STRLEN pvlim
2761Cp	|void	|do_op_dump	|I32 level|NN PerlIO *file|NULLOK const OP *o
2762Cp	|void	|do_pmop_dump	|I32 level|NN PerlIO *file|NULLOK const PMOP *pm
2763Cp	|void	|do_sv_dump	|I32 level|NN PerlIO *file|NULLOK SV *sv|I32 nest \
2764				|I32 maxnest|bool dumpops|STRLEN pvlim
2765Ap	|void	|magic_dump	|NULLOK const MAGIC *mg
2766Cp	|void	|reginitcolors
2767CpdRMb	|char*	|sv_2pv_nolen	|NN SV* sv
2768CpdRMb	|char*	|sv_2pvutf8_nolen|NN SV* sv
2769CpdRMb	|char*	|sv_2pvbyte_nolen|NN SV* sv
2770CpMdbR	|char*	|sv_pv		|NN SV *sv
2771CpMdbR	|char*	|sv_pvutf8	|NN SV *sv
2772CpMdbR	|char*	|sv_pvbyte	|NN SV *sv
2773ApMdb	|STRLEN	|sv_utf8_upgrade|NN SV *sv
2774Amd	|STRLEN	|sv_utf8_upgrade_nomg|NN SV *sv
2775ApdMb	|bool	|sv_utf8_downgrade|NN SV *const sv|const bool fail_ok
2776Amd	|bool	|sv_utf8_downgrade_nomg|NN SV *const sv|const bool fail_ok
2777Apd	|bool	|sv_utf8_downgrade_flags|NN SV *const sv|const bool fail_ok|const U32 flags
2778Apd	|void	|sv_utf8_encode |NN SV *const sv
2779Apd	|bool	|sv_utf8_decode |NN SV *const sv
2780ApdMb	|void	|sv_force_normal|NN SV *sv
2781Apd	|void	|sv_force_normal_flags|NN SV *const sv|const U32 flags
2782pX	|SSize_t|tmps_grow_p	|SSize_t ix
2783Apd	|SV*	|sv_rvweaken	|NN SV *const sv
2784Apd	|SV*	|sv_rvunweaken	|NN SV *const sv
2785ATpxd	|SV*	|sv_get_backrefs|NN SV *const sv
2786AiTMdp	|SV *	|SvREFCNT_inc	|NULLOK SV *sv
2787AiTMdp	|SV *	|SvREFCNT_inc_NN|NN SV *sv
2788AiTMdp	|void	|SvREFCNT_inc_void|NULLOK SV *sv
2789AiMdp	|void	|SvREFCNT_dec	|NULLOK SV *sv
2790AiMdp	|void	|SvREFCNT_dec_NN|NN SV *sv
2791AiTp	|void	|SvAMAGIC_on	|NN SV *sv
2792AiTp	|void	|SvAMAGIC_off	|NN SV *sv
2793Aipd	|bool	|SvTRUE		|NULLOK SV *sv
2794Aipd	|bool	|SvTRUE_nomg	|NULLOK SV *sv
2795Aipd	|bool	|SvTRUE_NN	|NN SV *sv
2796Cip	|bool	|SvTRUE_common	|NN SV *sv|const bool sv_2bool_is_fallback
2797: This is indirectly referenced by globals.c. This is somewhat annoying.
2798p	|int	|magic_killbackrefs|NN SV *sv|NN MAGIC *mg
2799Ap	|OP*	|newANONATTRSUB	|I32 floor|NULLOK OP *proto|NULLOK OP *attrs|NULLOK OP *block
2800Adm	|CV*	|newATTRSUB	|I32 floor|NULLOK OP *o|NULLOK OP *proto|NULLOK OP *attrs|NULLOK OP *block
2801pdX	|CV*	|newATTRSUB_x	|I32 floor|NULLOK OP *o|NULLOK OP *proto \
2802				 |NULLOK OP *attrs|NULLOK OP *block \
2803				 |bool o_is_gv
2804Ap	|CV *	|newMYSUB	|I32 floor|NN OP *o|NULLOK OP *proto \
2805				|NULLOK OP *attrs|NULLOK OP *block
2806p	|CV*	|newSTUB	|NN GV *gv|bool fake
2807: Used in perly.y
2808p	|OP *	|my_attrs	|NN OP *o|NULLOK OP *attrs
2809#if defined(USE_ITHREADS)
2810CpR	|PERL_CONTEXT*|cx_dup	|NULLOK PERL_CONTEXT* cx|I32 ix|I32 max|NN CLONE_PARAMS* param
2811ApR	|PERL_SI*|si_dup	|NULLOK PERL_SI* si|NN CLONE_PARAMS* param
2812ApR	|ANY*	|ss_dup		|NN PerlInterpreter* proto_perl|NN CLONE_PARAMS* param
2813ApR	|void*	|any_dup	|NULLOK void* v|NN const PerlInterpreter* proto_perl
2814ApR	|HE*	|he_dup		|NULLOK const HE* e|bool shared|NN CLONE_PARAMS* param
2815ApR	|HEK*	|hek_dup	|NULLOK HEK* e|NN CLONE_PARAMS* param
2816Adp	|void	|re_dup_guts	|NN const REGEXP *sstr|NN REGEXP *dstr \
2817				|NN CLONE_PARAMS* param
2818Ap	|PerlIO*|fp_dup		|NULLOK PerlIO *const fp|const char type|NN CLONE_PARAMS *const param
2819ApR	|DIR*	|dirp_dup	|NULLOK DIR *const dp|NN CLONE_PARAMS *const param
2820ApR	|GP*	|gp_dup		|NULLOK GP *const gp|NN CLONE_PARAMS *const param
2821ApR	|MAGIC*	|mg_dup		|NULLOK MAGIC *mg|NN CLONE_PARAMS *const param
2822#if defined(PERL_IN_SV_C)
2823S	|SV **	|sv_dup_inc_multiple|NN SV *const *source|NN SV **dest \
2824				|SSize_t items|NN CLONE_PARAMS *const param
2825SR	|SV*	|sv_dup_common	|NN const SV *const ssv \
2826				|NN CLONE_PARAMS *const param
2827#endif
2828ApR	|SV*	|sv_dup		|NULLOK const SV *const ssv|NN CLONE_PARAMS *const param
2829ApR	|SV*	|sv_dup_inc	|NULLOK const SV *const ssv \
2830				|NN CLONE_PARAMS *const param
2831Ap	|void	|rvpv_dup	|NN SV *const dsv|NN const SV *const ssv|NN CLONE_PARAMS *const param
2832Ap	|yy_parser*|parser_dup	|NULLOK const yy_parser *const proto|NN CLONE_PARAMS *const param
2833#endif
2834ApR	|PTR_TBL_t*|ptr_table_new
2835ApR	|void*	|ptr_table_fetch|NN PTR_TBL_t *const tbl|NULLOK const void *const sv
2836Ap	|void	|ptr_table_store|NN PTR_TBL_t *const tbl|NULLOK const void *const oldsv \
2837				|NN void *const newsv
2838Ap	|void	|ptr_table_split|NN PTR_TBL_t *const tbl
2839Ap	|void	|ptr_table_free|NULLOK PTR_TBL_t *const tbl
2840#if defined(HAVE_INTERP_INTERN)
2841Ap	|void	|sys_intern_clear
2842Ap	|void	|sys_intern_init
2843#  if defined(USE_ITHREADS)
2844Ap	|void	|sys_intern_dup	|NN struct interp_intern* src|NN struct interp_intern* dst
2845#  endif
2846#endif
2847
2848: The reason for the 'u' flag is that this passes "aTHX_ x" to its callee: not
2849: a legal C parameter
2850Admu	|const XOP *	|Perl_custom_op_xop	|NN const OP *o
2851AbpRdD	|const char *	|custom_op_name	|NN const OP *o
2852AbpRdD	|const char *	|custom_op_desc	|NN const OP *o
2853pRX	|XOPRETANY	|custom_op_get_field	|NN const OP *o|const xop_flags_enum field
2854Adop	|void	|custom_op_register	|NN Perl_ppaddr_t ppaddr \
2855			|NN const XOP *xop
2856
2857Adp	|void	|sv_nosharing	|NULLOK SV *sv
2858AdpbD	|void	|sv_nolocking	|NULLOK SV *sv
2859Adp	|bool	|sv_destroyable	|NULLOK SV *sv
2860AdpbD	|void	|sv_nounlocking	|NULLOK SV *sv
2861Adp	|int	|nothreadhook
2862p	|void	|init_constants
2863
2864#if defined(PERL_IN_DOOP_C)
2865SR	|Size_t	|do_trans_simple	|NN SV * const sv|NN const OPtrans_map * const tbl
2866SR	|Size_t	|do_trans_count		|NN SV * const sv|NN const OPtrans_map * const tbl
2867SR	|Size_t	|do_trans_complex	|NN SV * const sv|NN const OPtrans_map * const tbl
2868SR	|Size_t	|do_trans_invmap	|NN SV * const sv|NN AV * const map
2869SR	|Size_t	|do_trans_count_invmap  |NN SV * const sv|NN AV * const map
2870#endif
2871
2872#if defined(PERL_IN_GV_C)
2873S	|void	|gv_init_svtype	|NN GV *gv|const svtype sv_type
2874S	|void	|gv_magicalize_isa	|NN GV *gv
2875S	|bool|parse_gv_stash_name|NN HV **stash|NN GV **gv \
2876                     |NN const char **name|NN STRLEN *len \
2877                     |NN const char *nambeg|STRLEN full_len \
2878                     |const U32 is_utf8|const I32 add
2879S	|bool|find_default_stash|NN HV **stash|NN const char *name \
2880                     |STRLEN len|const U32 is_utf8|const I32 add \
2881                     |const svtype sv_type
2882S	|bool|gv_magicalize|NN GV *gv|NN HV *stash|NN const char *name \
2883                     |STRLEN len \
2884                     |const svtype sv_type
2885S	|void|maybe_multimagic_gv|NN GV *gv|NN const char *name|const svtype sv_type
2886S	|bool|gv_is_in_main|NN const char *name|STRLEN len \
2887                      |const U32 is_utf8
2888S	|void	|require_tie_mod|NN GV *gv|NN const char varname \
2889				|NN const char * name|STRLEN len \
2890				|const U32 flags
2891#endif
2892
2893#if defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C)
2894po	|SV*	|hfree_next_entry	|NN HV *hv|NN STRLEN *indexp
2895#endif
2896
2897#if defined(PERL_IN_HV_C)
2898S	|void	|hsplit		|NN HV *hv|STRLEN const oldsize|STRLEN newsize
2899S	|void	|hv_free_entries|NN HV *hv
2900S	|SV*	|hv_free_ent_ret|NN HV *hv|NN HE *entry
2901#if !defined(PURIFY)
2902SR	|HE*	|new_he
2903#endif
2904SaTR	|HEK*	|save_hek_flags	|NN const char *str|I32 len|U32 hash|int flags
2905ST	|void	|hv_magic_check	|NN HV *hv|NN bool *needs_copy|NN bool *needs_store
2906S	|void	|unshare_hek_or_pvn|NULLOK const HEK* hek|NULLOK const char* str|I32 len|U32 hash
2907SR	|HEK*	|share_hek_flags|NN const char *str|STRLEN len|U32 hash|int flags
2908rS	|void	|hv_notallowed	|int flags|NN const char *key|I32 klen|NN const char *msg
2909iT	|U32|ptr_hash|PTRV u
2910S	|struct xpvhv_aux*|hv_auxinit|NN HV *hv
2911Sx	|SV*	|hv_delete_common|NULLOK HV *hv|NULLOK SV *keysv \
2912		|NULLOK const char *key|STRLEN klen|int k_flags|I32 d_flags \
2913		|U32 hash
2914Sx	|void	|clear_placeholders	|NN HV *hv|U32 items
2915#endif
2916
2917#if defined(PERL_IN_MG_C)
2918S	|void	|save_magic_flags|I32 mgs_ix|NN SV *sv|U32 flags
2919S	|int	|magic_methpack	|NN SV *sv|NN const MAGIC *mg|NN SV *meth
2920S	|SV*	|magic_methcall1|NN SV *sv|NN const MAGIC *mg \
2921				|NN SV *meth|U32 flags \
2922				|int n|NULLOK SV *val
2923S	|void	|restore_magic	|NULLOK const void *p
2924S	|void	|unwind_handler_stack|NULLOK const void *p
2925S	|void	|fixup_errno_string|NN SV* sv
2926
2927#endif
2928
2929#if defined(USE_ITHREADS)
2930Cip	|AV*	|cop_file_avn	|NN const COP *cop
2931#endif
2932
2933#if defined(PERL_IN_OP_C)
2934SRT	|bool	|is_handle_constructor|NN const OP *o|I32 numargs
2935SR	|I32	|assignment_type|NULLOK const OP *o
2936S	|void	|forget_pmop	|NN PMOP *const o
2937S	|void	|find_and_forget_pmops	|NN OP *o
2938S	|void	|cop_free	|NN COP *cop
2939S	|OP*	|modkids	|NULLOK OP *o|I32 type
2940S	|OP*	|scalarboolean	|NN OP *o
2941SR	|OP*	|search_const	|NN OP *o
2942SR	|OP*	|new_logop	|I32 type|I32 flags|NN OP **firstp|NN OP **otherp
2943S	|void	|simplify_sort	|NN OP *o
2944SRT	|bool	|scalar_mod_type|NULLOK const OP *o|I32 type
2945S	|OP *	|my_kid		|NULLOK OP *o|NULLOK OP *attrs|NN OP **imopsp
2946S	|OP *	|dup_attrlist	|NN OP *o
2947S	|void	|apply_attrs	|NN HV *stash|NN SV *target|NULLOK OP *attrs
2948S	|void	|apply_attrs_my	|NN HV *stash|NN OP *target|NULLOK OP *attrs|NN OP **imopsp
2949S	|void	|bad_type_pv	|I32 n|NN const char *t|NN const OP *o|NN const OP *kid
2950S	|void	|bad_type_gv	|I32 n|NN GV *gv|NN const OP *kid|NN const char *t
2951S	|void	|no_bareword_allowed|NN OP *o
2952SR	|OP*	|no_fh_allowed|NN OP *o
2953SR	|OP*	|too_few_arguments_pv|NN OP *o|NN const char* name|U32 flags
2954S	|OP*	|too_many_arguments_pv|NN OP *o|NN const char* name|U32 flags
2955S	|bool	|looks_like_bool|NN const OP* o
2956S	|OP*	|newGIVWHENOP	|NULLOK OP* cond|NN OP *block \
2957				|I32 enter_opcode|I32 leave_opcode \
2958				|PADOFFSET entertarg
2959S	|OP*	|ref_array_or_hash|NULLOK OP* cond
2960S	|bool	|process_special_blocks	|I32 floor \
2961					|NN const char *const fullname\
2962					|NN GV *const gv|NN CV *const cv
2963S	|void	|clear_special_blocks	|NN const char *const fullname\
2964					|NN GV *const gv|NN CV *const cv
2965#endif
2966p	|void   |no_bareword_filehandle|NN const char *fhname
2967XpR	|void*	|Slab_Alloc	|size_t sz
2968Xp	|void	|Slab_Free	|NN void *op
2969#if defined(PERL_DEBUG_READONLY_OPS)
2970#    if defined(PERL_CORE)
2971pe	|void	|Slab_to_ro	|NN OPSLAB *slab
2972pe	|void	|Slab_to_rw	|NN OPSLAB *const slab
2973#    endif
2974: Used in OpREFCNT_inc() in sv.c
2975poex	|OP *	|op_refcnt_inc	|NULLOK OP *o
2976: FIXME - can be static.
2977poex	|PADOFFSET	|op_refcnt_dec	|NN OP *o
2978#endif
2979
2980#if defined(PERL_IN_PERL_C)
2981S	|void	|find_beginning	|NN SV* linestr_sv|NN PerlIO *rsfp
2982S	|void	|forbid_setid	|const char flag|const bool suidscript
2983S	|void	|incpush	|NN const char *const dir|STRLEN len \
2984				|U32 flags
2985S	|SV*	|mayberelocate	|NN const char *const dir|STRLEN len \
2986				|U32 flags
2987S	|void	|incpush_use_sep|NN const char *p|STRLEN len|U32 flags
2988S	|void	|init_interp
2989S	|void	|init_ids
2990S	|void	|init_main_stash
2991S	|void	|init_perllib
2992S	|void	|init_postdump_symbols|int argc|NN char **argv|NULLOK char **env
2993S	|void	|init_predump_symbols
2994rS	|void	|my_exit_jump
2995S	|void	|nuke_stacks
2996S	|PerlIO *|open_script	|NN const char *scriptname|bool dosearch \
2997				|NN bool *suidscript
2998Sr	|void	|usage
2999#ifndef SETUID_SCRIPTS_ARE_SECURE_NOW
3000So	|void	|validate_suid	|NN PerlIO *rsfp
3001#endif
3002Sr	|void	|minus_v
3003
3004S	|void*	|parse_body	|NULLOK char **env|XSINIT_t xsinit
3005rS	|void	|run_body	|I32 oldscope
3006#  ifndef PERL_IS_MINIPERL
3007S	|SV *	|incpush_if_exists|NN AV *const av|NN SV *dir|NN SV *const stem
3008#  endif
3009#endif
3010
3011#if defined(PERL_IN_PP_C)
3012S	|size_t	|do_chomp	|NN SV *retval|NN SV *sv|bool chomping
3013S	|OP*	|do_delete_local
3014SR	|SV*	|refto		|NN SV* sv
3015#endif
3016#if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C)
3017: Used in pp_hot.c
3018pReo	|GV*	|softref2xv	|NN SV *const sv|NN const char *const what \
3019				|const svtype type|NN SV ***spp
3020iTR	|bool	|lossless_NV_to_IV|const NV nv|NN IV * ivp
3021#endif
3022#if defined(PERL_IN_PP_HOT_C)
3023IR	|bool	|should_we_output_Debug_r|NN regexp * prog
3024#endif
3025
3026#if defined(PERL_IN_PP_PACK_C)
3027S	|SSize_t|unpack_rec	|NN struct tempsym* symptr|NN const char *s \
3028				|NN const char *strbeg|NN const char *strend|NULLOK const char **new_s
3029S	|SV **	|pack_rec	|NN SV *cat|NN struct tempsym* symptr|NN SV **beglist|NN SV **endlist
3030S	|SV*	|mul128		|NN SV *sv|U8 m
3031S	|SSize_t|measure_struct	|NN struct tempsym* symptr
3032S	|bool	|next_symbol	|NN struct tempsym* symptr
3033SR	|SV*	|is_an_int	|NN const char *s|STRLEN l
3034S	|int	|div128		|NN SV *pnum|NN bool *done
3035S	|const char *|group_end	|NN const char *patptr|NN const char *patend \
3036				|char ender
3037SR	|const char *|get_num	|NN const char *patptr|NN SSize_t *lenptr
3038TS	|bool	|need_utf8	|NN const char *pat|NN const char *patend
3039TS	|char	|first_symbol	|NN const char *pat|NN const char *patend
3040SR	|char *	|sv_exp_grow	|NN SV *sv|STRLEN needed
3041STR	|char *	|my_bytes_to_utf8|NN const U8 *start|STRLEN len|NN char *dest \
3042				|const bool needs_swap
3043#endif
3044
3045#if defined(PERL_IN_PP_CTL_C)
3046SdR	|OP*	|docatch	|Perl_ppaddr_t firstpp
3047SR	|OP*	|dofindlabel	|NN OP *o|NN const char *label|STRLEN len \
3048                                |U32 flags|NN OP **opstack|NN OP **oplimit
3049S	|MAGIC *|doparseform	|NN SV *sv
3050STR	|bool	|num_overflow	|NV value|I32 fldsize|I32 frcsize
3051SR	|I32	|dopoptoeval	|I32 startingblock
3052SR	|I32	|dopoptogivenfor|I32 startingblock
3053SR	|I32	|dopoptolabel	|NN const char *label|STRLEN len|U32 flags
3054SR	|I32	|dopoptoloop	|I32 startingblock
3055SR	|I32	|dopoptosub_at	|NN const PERL_CONTEXT* cxstk|I32 startingblock
3056SR	|I32	|dopoptowhen	|I32 startingblock
3057S	|void	|save_lines	|NULLOK AV *array|NN SV *sv
3058S	|bool	|doeval_compile	|U8 gimme \
3059				|NULLOK CV* outside|U32 seq|NULLOK HV* hh
3060SR	|PerlIO *|check_type_and_open|NN SV *name
3061#ifndef PERL_DISABLE_PMC
3062SR	|PerlIO *|doopen_pm	|NN SV *name
3063#endif
3064iRT	|bool	|path_is_searchable|NN const char *name
3065SR	|I32	|run_user_filter|int idx|NN SV *buf_sv|int maxlen
3066SR	|PMOP*	|make_matcher	|NN REGEXP* re
3067SR	|bool	|matcher_matches_sv|NN PMOP* matcher|NN SV* sv
3068S	|void	|destroy_matcher|NN PMOP* matcher
3069S	|OP*	|do_smartmatch	|NULLOK HV* seen_this \
3070				|NULLOK HV* seen_other|const bool copied
3071#endif
3072
3073#if defined(PERL_IN_PP_HOT_C)
3074S	|void	|do_oddball	|NN SV **oddkey|NN SV **firstkey
3075i	|HV*	|opmethod_stash	|NN SV* meth
3076#endif
3077
3078#if defined(PERL_IN_PP_SORT_C)
3079I	|I32	|sv_ncmp	|NN SV *const a|NN SV *const b
3080I	|I32	|sv_ncmp_desc	|NN SV *const a|NN SV *const b
3081I	|I32	|sv_i_ncmp	|NN SV *const a|NN SV *const b
3082I	|I32	|sv_i_ncmp_desc	|NN SV *const a|NN SV *const b
3083I	|I32	|amagic_ncmp	|NN SV *const a|NN SV *const b
3084I	|I32	|amagic_ncmp_desc	|NN SV *const a|NN SV *const b
3085I	|I32	|amagic_i_ncmp	|NN SV *const a|NN SV *const b
3086I	|I32	|amagic_i_ncmp_desc	|NN SV *const a|NN SV *const b
3087I	|I32	|amagic_cmp	|NN SV *const str1|NN SV *const str2
3088I	|I32	|amagic_cmp_desc	|NN SV *const str1|NN SV *const str2
3089I	|I32	|cmp_desc	|NN SV *const str1|NN SV *const str2
3090#  ifdef USE_LOCALE_COLLATE
3091I	|I32	|amagic_cmp_locale     |NN SV *const str1|NN SV *const str2
3092I	|I32	|amagic_cmp_locale_desc|NN SV *const str1|NN SV *const str2
3093I	|I32	|cmp_locale_desc|NN SV *const str1|NN SV *const str2
3094#  endif
3095S	|I32	|sortcv		|NN SV *const a|NN SV *const b
3096S	|I32	|sortcv_xsub	|NN SV *const a|NN SV *const b
3097S	|I32	|sortcv_stacked	|NN SV *const a|NN SV *const b
3098I	|void	|sortsv_flags_impl	|NULLOK SV** array|size_t num_elts|NN SVCOMPARE_t cmp|U32 flags
3099#endif
3100
3101#if defined(PERL_IN_PP_SYS_C)
3102S	|OP*	|doform		|NN CV *cv|NN GV *gv|NULLOK OP *retop
3103#  if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
3104SR	|int	|dooneliner	|NN const char *cmd|NN const char *filename
3105#  endif
3106S	|SV *	|space_join_names_mortal|NULLOK char *const *array
3107#endif
3108Fp	|OP *	|tied_method|NN SV *methname|NN SV **sp \
3109				|NN SV *const sv|NN const MAGIC *const mg \
3110				|const U32 flags|U32 argc|...
3111
3112#if defined(PERL_IN_DUMP_C)
3113S	|CV*	|deb_curcv	|I32 ix
3114S	|void	|debprof	|NN const OP *o
3115S	|UV	|sequence_num	|NULLOK const OP *o
3116S	|SV*	|pm_description	|NN const PMOP *pm
3117#endif
3118
3119#if defined(PERL_IN_SCOPE_C)
3120S	|SV*	|save_scalar_at	|NN SV **sptr|const U32 flags
3121#endif
3122
3123#if defined(PERL_IN_GV_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_PAD_C) || defined(PERL_IN_OP_C)
3124: Used in gv.c
3125po	|void	|sv_add_backref	|NN SV *const tsv|NN SV *const sv
3126#endif
3127
3128#if defined(PERL_IN_HV_C) || defined(PERL_IN_MG_C) || defined(PERL_IN_SV_C)
3129: Used in hv.c and mg.c
3130pox	|void	|sv_kill_backrefs	|NN SV *const sv|NULLOK AV *const av
3131#endif
3132
3133#if defined(PERL_IN_SV_C) || defined (PERL_IN_OP_C)
3134pR	|SV *	|varname	|NULLOK const GV *const gv|const char gvtype \
3135				|PADOFFSET targ|NULLOK const SV *const keyname \
3136				|SSize_t aindex|int subscript_type
3137#endif
3138
3139pX	|void	|sv_del_backref	|NN SV *const tsv|NN SV *const sv
3140#if defined(PERL_IN_SV_C)
3141TiR	|char *	|uiv_2buf	|NN char *const buf|const IV iv|UV uv|const int is_uv|NN char **const peob
3142i	|void	|sv_unglob	|NN SV *const sv|U32 flags
3143S	|const char *|sv_display	|NN SV *const sv|NN char *tmpbuf|STRLEN tmpbuf_size
3144S	|void	|not_a_number	|NN SV *const sv
3145S	|void	|not_incrementable	|NN SV *const sv
3146S	|I32	|visit		|NN SVFUNC_t f|const U32 flags|const U32 mask
3147#  ifdef DEBUGGING
3148S	|void	|del_sv	|NN SV *p
3149#  endif
3150#  if !defined(NV_PRESERVES_UV)
3151#    ifdef DEBUGGING
3152S	|int	|sv_2iuv_non_preserve	|NN SV *const sv|I32 numtype
3153#    else
3154S	|int	|sv_2iuv_non_preserve	|NN SV *const sv
3155#    endif
3156#  endif
3157SR	|STRLEN	|expect_number	|NN const char **const pattern
3158ST	|STRLEN	|sv_pos_u2b_forwards|NN const U8 *const start \
3159		|NN const U8 *const send|NN STRLEN *const uoffset \
3160		|NN bool *const at_end|NN bool *canonical_position
3161ST	|STRLEN	|sv_pos_u2b_midway|NN const U8 *const start \
3162		|NN const U8 *send|STRLEN uoffset|const STRLEN uend
3163S	|STRLEN	|sv_pos_u2b_cached|NN SV *const sv|NN MAGIC **const mgp \
3164		|NN const U8 *const start|NN const U8 *const send \
3165		|STRLEN uoffset|STRLEN uoffset0|STRLEN boffset0
3166S	|void	|utf8_mg_len_cache_update|NN SV *const sv|NN MAGIC **const mgp \
3167		|const STRLEN ulen
3168S	|void	|utf8_mg_pos_cache_update|NN SV *const sv|NN MAGIC **const mgp \
3169		|const STRLEN byte|const STRLEN utf8|const STRLEN blen
3170S	|STRLEN	|sv_pos_b2u_midway|NN const U8 *const s|NN const U8 *const target \
3171		|NN const U8 *end|STRLEN endu
3172S	|void	|assert_uft8_cache_coherent|NN const char *const func \
3173		|STRLEN from_cache|STRLEN real|NN SV *const sv
3174ST	|char *	|F0convert	|NV nv|NN char *const endbuf|NN STRLEN *const len
3175Cp	|SV *	|more_sv
3176S	|bool	|sv_2iuv_common	|NN SV *const sv
3177S	|void	|glob_assign_glob|NN SV *const dsv|NN SV *const ssv \
3178		|const int dtype
3179SRT	|PTR_TBL_ENT_t *|ptr_table_find|NN PTR_TBL_t *const tbl|NULLOK const void *const sv
3180S	|void	|anonymise_cv_maybe	|NN GV *gv|NN CV *cv
3181#endif
3182
3183: Used in sv.c and hv.c
3184Cpo	|void *	|more_bodies	|const svtype sv_type|const size_t body_size \
3185				|const size_t arena_size
3186EXpR	|SV*	|get_and_check_backslash_N_name|NN const char* s	\
3187				|NN const char* e			\
3188				|const bool is_utf8			\
3189				|NN const char** error_msg
3190EXpR	|HV*	|load_charnames	|NN SV * char_name			\
3191				|NN const char * context		\
3192				|const STRLEN context_len		\
3193				|NN const char ** error_msg
3194
3195: For use ONLY in B::Hooks::Parser, by special dispensation
3196EXpxR	|char*	|scan_str	|NN char *start|int keep_quoted \
3197				|int keep_delims|int re_reparse \
3198				|NULLOK char **delimp
3199EXpx	|char*	|scan_word	|NN char *s|NN char *dest|STRLEN destlen \
3200				|int allow_package|NN STRLEN *slp
3201EXpxR	|char*	|skipspace_flags|NN char *s|U32 flags
3202#if defined(PERL_IN_TOKE_C)
3203S	|void	|check_uni
3204S	|void	|force_next	|I32 type
3205S	|char*	|force_version	|NN char *s|int guessing
3206S	|char*	|force_strict_version	|NN char *s
3207S	|char*	|force_word	|NN char *start|int token|int check_keyword \
3208				|int allow_pack
3209S	|SV*	|tokeq		|NN SV *sv
3210SR	|char*	|scan_const	|NN char *start
3211SR	|SV*	|get_and_check_backslash_N_name_wrapper|NN const char* s \
3212				|NN const char* const e
3213SR	|char*	|scan_formline	|NN char *s
3214SR	|char*	|scan_heredoc	|NN char *s
3215S	|char*	|scan_ident	|NN char *s|NN char *dest	\
3216				|STRLEN destlen|I32 ck_uni
3217SR	|char*	|scan_inputsymbol|NN char *start
3218SR	|char*	|scan_pat	|NN char *start|I32 type
3219SR	|char*	|scan_subst	|NN char *start
3220SR	|char*	|scan_trans	|NN char *start
3221S	|void	|update_debugger_info|NULLOK SV *orig_sv \
3222				|NULLOK const char *const buf|STRLEN len
3223SR	|char*	|swallow_bom	|NN U8 *s
3224#ifndef PERL_NO_UTF16_FILTER
3225S	|I32	|utf16_textfilter|int idx|NN SV *sv|int maxlen
3226S	|U8*	|add_utf16_textfilter|NN U8 *const s|bool reversed
3227#endif
3228S	|void	|checkcomma	|NN const char *s|NN const char *name \
3229				|NN const char *what
3230S	|void	|force_ident	|NN const char *s|int kind
3231S	|void	|force_ident_maybe_lex|char pit
3232S	|void	|incline	|NN const char *s|NN const char *end
3233S	|int	|intuit_method	|NN char *s|NULLOK SV *ioname|NULLOK CV *cv
3234S	|int	|intuit_more	|NN char *s|NN char *e
3235S	|I32	|lop		|I32 f|U8 x|NN char *s
3236rS	|void	|missingterm	|NULLOK char *s|STRLEN len
3237S	|void	|no_op		|NN const char *const what|NULLOK char *s
3238S	|int	|pending_ident
3239SR	|I32	|sublex_done
3240SR	|I32	|sublex_push
3241SR	|I32	|sublex_start
3242SR	|char *	|filter_gets	|NN SV *sv|STRLEN append
3243SR	|HV *	|find_in_my_stash|NN const char *pkgname|STRLEN len
3244SR	|char *	|tokenize_use	|int is_use|NN char *s
3245So	|SV*	|new_constant	|NULLOK const char *s|STRLEN len	    \
3246				|NN const char *key|STRLEN keylen|NN SV *sv \
3247				|NULLOK SV *pv|NULLOK const char *type	    \
3248				|STRLEN typelen				    \
3249				|NULLOK const char ** error_msg
3250S	|int	|ao		|int toketype
3251S	|void|parse_ident|NN char **s|NN char **d \
3252                     |NN char * const e|int allow_package \
3253				|bool is_utf8|bool check_dollar \
3254				|bool tick_warn
3255#  if defined(PERL_CR_FILTER)
3256S	|I32	|cr_textfilter	|int idx|NULLOK SV *sv|int maxlen
3257S	|void	|strip_return	|NN SV *sv
3258#  endif
3259#  if defined(DEBUGGING)
3260S	|int	|tokereport	|I32 rv|NN const YYSTYPE* lvalp
3261Sf	|void	|printbuf	|NN const char *const fmt|NN const char *const s
3262#  endif
3263#endif
3264EdXxp	|bool	|validate_proto	|NN SV *name|NULLOK SV *proto|bool warn \
3265		|bool curstash
3266
3267#if defined(PERL_IN_UNIVERSAL_C)
3268SG	|bool	|isa_lookup	|NULLOK HV *stash|NULLOK SV *namesv|NULLOK const char * name \
3269                                        |STRLEN len|U32 flags
3270SG   |bool   |sv_derived_from_svpvn  |NULLOK SV *sv			\
3271				     |NULLOK SV *namesv			\
3272				     |NULLOK const char * name		\
3273				     |const STRLEN len			\
3274				     |U32 flags
3275#endif
3276
3277#if defined(PERL_IN_LOCALE_C)
3278#  ifdef USE_LOCALE
3279ST	|const char*|category_name |const int category
3280S	|const char*|switch_category_locale_to_template|const int switch_category|const int template_category|NULLOK const char * template_locale
3281S	|void	|restore_switched_locale|const int category|NULLOK const char * const original_locale
3282#  endif
3283#  ifdef HAS_NL_LANGINFO
3284ST	|const char*|my_nl_langinfo|const nl_item item|bool toggle
3285#  else
3286ST	|const char*|my_nl_langinfo|const int item|bool toggle
3287#  endif
3288iTR	|const char *|save_to_buffer|NULLOK const char * string	\
3289				    |NULLOK char **buf		\
3290				    |NN Size_t *buf_size	\
3291				    |const Size_t offset
3292#  if defined(USE_LOCALE)
3293S	|char*	|stdize_locale	|NN char* locs
3294S	|void	|new_collate	|NULLOK const char* newcoll
3295S	|void	|new_ctype	|NN const char* newctype
3296S	|void	|set_numeric_radix|const bool use_locale
3297S	|void	|new_numeric	|NULLOK const char* newnum
3298#    ifdef USE_POSIX_2008_LOCALE
3299ST	|const char*|emulate_setlocale|const int category		\
3300				    |NULLOK const char* locale		\
3301				    |unsigned int index			\
3302				    |const bool is_index_valid
3303#    endif
3304#    ifdef WIN32
3305S	|char*	|win32_setlocale|int category|NULLOK const char* locale
3306#    endif
3307#    ifdef DEBUGGING
3308S	|void	|print_collxfrm_input_and_return		\
3309			    |NN const char * const s		\
3310			    |NN const char * const e		\
3311			    |NULLOK const STRLEN * const xlen	\
3312			    |const bool is_utf8
3313S	|void	|print_bytes_for_locale	|NN const char * const s	\
3314					|NN const char * const e	\
3315					|const bool is_utf8
3316STR	|char *	|setlocale_debug_string	|const int category		    \
3317					|NULLOK const char* const locale    \
3318					|NULLOK const char* const retval
3319#    endif
3320#  endif
3321#endif
3322
3323#if        defined(USE_LOCALE)		\
3324    && (   defined(PERL_IN_LOCALE_C)	\
3325        || defined(PERL_IN_MG_C)	\
3326	|| defined (PERL_EXT_POSIX)	\
3327	|| defined (PERL_EXT_LANGINFO))
3328Cp	|bool	|_is_cur_LC_category_utf8|int category
3329#endif
3330
3331
3332#if defined(PERL_IN_UTIL_C)
3333S	|SV*	|mess_alloc
3334S	|SV *	|with_queued_errors|NN SV *ex
3335S	|bool	|invoke_exception_hook|NULLOK SV *ex|bool warn
3336#  if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL)
3337ST	|void	|mem_log_common	|enum mem_log_type mlt|const UV n|const UV typesize \
3338				|NN const char *type_name|NULLOK const SV *sv \
3339				|Malloc_t oldalloc|Malloc_t newalloc \
3340				|NN const char *filename|const int linenumber \
3341				|NN const char *funcname
3342#  endif
3343#endif
3344
3345#if defined(PERL_MEM_LOG)
3346pT	|Malloc_t	|mem_log_alloc	|const UV nconst|UV typesize|NN const char *type_name|Malloc_t newalloc|NN const char *filename|const int linenumber|NN const char *funcname
3347pT	|Malloc_t	|mem_log_realloc	|const UV n|const UV typesize|NN const char *type_name|Malloc_t oldalloc|Malloc_t newalloc|NN const char *filename|const int linenumber|NN const char *funcname
3348pT	|Malloc_t	|mem_log_free	|Malloc_t oldalloc|NN const char *filename|const int linenumber|NN const char *funcname
3349#endif
3350
3351#if defined(PERL_IN_UTF8_C)
3352SR	|HV *	|new_msg_hv |NN const char * const message		    \
3353			    |U32 categories				    \
3354			    |U32 flag
3355SR	|UV	|check_locale_boundary_crossing				    \
3356		|NN const U8* const p					    \
3357		|const UV result					    \
3358		|NN U8* const ustrp					    \
3359		|NN STRLEN *lenp
3360iR	|bool	|is_utf8_common	|NN const U8 *const p			    \
3361				|NN const U8 *const e			    \
3362				|NULLOK SV* const invlist
3363#endif
3364
3365EXiTp	|void	|append_utf8_from_native_byte|const U8 byte|NN U8** dest
3366
3367Apd	|void	|sv_set_undef	|NN SV *sv
3368Apd	|void	|sv_setsv_flags	|NN SV *dsv|NULLOK SV *ssv|const I32 flags
3369Apd	|void	|sv_catpvn_flags|NN SV *const dsv|NN const char *sstr|const STRLEN len \
3370				|const I32 flags
3371Apd	|void	|sv_catpv_flags	|NN SV *dsv|NN const char *sstr \
3372				|const I32 flags
3373Apd	|void	|sv_catsv_flags	|NN SV *const dsv|NULLOK SV *const sstr|const I32 flags
3374Amd	|STRLEN	|sv_utf8_upgrade_flags|NN SV *const sv|const I32 flags
3375Adp	|STRLEN	|sv_utf8_upgrade_flags_grow|NN SV *const sv|const I32 flags|STRLEN extra
3376Apd	|char*	|sv_pvn_force_flags|NN SV *const sv|NULLOK STRLEN *const lp|const U32 flags
3377AdpMb	|void	|sv_copypv	|NN SV *const dsv|NN SV *const ssv
3378Amd	|void	|sv_copypv_nomg	|NN SV *const dsv|NN SV *const ssv
3379Apd	|void	|sv_copypv_flags	|NN SV *const dsv|NN SV *const ssv|const I32 flags
3380Cpo	|char*	|my_atof2	|NN const char *orig|NN NV* value
3381Cp	|char*	|my_atof3	|NN const char *orig|NN NV* value|const STRLEN len
3382ApT	|int	|my_socketpair	|int family|int type|int protocol|int fd[2]
3383ApT	|int	|my_dirfd	|NULLOK DIR* dir
3384#ifdef PERL_ANY_COW
3385: Used in regexec.c
3386pxXE	|SV*	|sv_setsv_cow	|NULLOK SV* dsv|NN SV* ssv
3387#endif
3388
3389Aop	|const char *|PerlIO_context_layers|NULLOK const char *mode
3390
3391#if defined(USE_PERLIO)
3392Apdh	|int	|PerlIO_close		|NULLOK PerlIO *f
3393Ap	|int	|PerlIO_fill		|NULLOK PerlIO *f
3394Apdh	|int	|PerlIO_fileno		|NULLOK PerlIO *f
3395Apdh	|int	|PerlIO_eof		|NULLOK PerlIO *f
3396Apdh	|int	|PerlIO_error		|NULLOK PerlIO *f
3397Apdh	|int	|PerlIO_flush		|NULLOK PerlIO *f
3398Apdh	|void	|PerlIO_clearerr	|NULLOK PerlIO *f
3399Apdh	|void	|PerlIO_set_cnt		|NULLOK PerlIO *f|SSize_t cnt
3400Apdh	|void	|PerlIO_set_ptrcnt	|NULLOK PerlIO *f|NULLOK STDCHAR *ptr \
3401					|SSize_t cnt
3402Apdh	|void	|PerlIO_setlinebuf	|NULLOK PerlIO *f
3403Apdh	|SSize_t|PerlIO_read		|NULLOK PerlIO *f|NN void *vbuf \
3404					|Size_t count
3405Apdh	|SSize_t|PerlIO_write		|NULLOK PerlIO *f|NN const void *vbuf \
3406					|Size_t count
3407Ap	|SSize_t|PerlIO_unread		|NULLOK PerlIO *f|NN const void *vbuf \
3408					|Size_t count
3409Apdh	|Off_t	|PerlIO_tell		|NULLOK PerlIO *f
3410Apdh	|int	|PerlIO_seek		|NULLOK PerlIO *f|Off_t offset|int whence
3411Xp	|void	|PerlIO_save_errno	|NULLOK PerlIO *f
3412Xp	|void	|PerlIO_restore_errno	|NULLOK PerlIO *f
3413
3414Apdh	|STDCHAR *|PerlIO_get_base	|NULLOK PerlIO *f
3415Apdh	|STDCHAR *|PerlIO_get_ptr	|NULLOK PerlIO *f
3416ApRdh	|SSize_t	  |PerlIO_get_bufsiz	|NULLOK PerlIO *f
3417ApRdh	|SSize_t	  |PerlIO_get_cnt	|NULLOK PerlIO *f
3418
3419ApRdh	|PerlIO *|PerlIO_stdin
3420ApRdh	|PerlIO *|PerlIO_stdout
3421ApRdh	|PerlIO *|PerlIO_stderr
3422#endif /* USE_PERLIO */
3423
3424: Only used in dump.c
3425p	|void	|deb_stack_all
3426#if defined(PERL_IN_DEB_C)
3427S	|void	|deb_stack_n	|NN SV** stack_base|I32 stack_min \
3428				|I32 stack_max|I32 mark_min|I32 mark_max
3429#endif
3430
3431: pad API
3432ApdR	|PADLIST*|pad_new	|int flags
3433#ifdef DEBUGGING
3434pTX	|void|set_padlist| NN CV * cv | NULLOK PADLIST * padlist
3435#endif
3436#if defined(PERL_IN_PAD_C)
3437Sd	|PADOFFSET|pad_alloc_name|NN PADNAME *name|U32 flags \
3438				|NULLOK HV *typestash|NULLOK HV *ourstash
3439#endif
3440Apd	|PADOFFSET|pad_add_name_pvn|NN const char *namepv|STRLEN namelen\
3441				|U32 flags|NULLOK HV *typestash\
3442				|NULLOK HV *ourstash
3443Apd	|PADOFFSET|pad_add_name_pv|NN const char *name\
3444				|const U32 flags|NULLOK HV *typestash\
3445				|NULLOK HV *ourstash
3446Apd	|PADOFFSET|pad_add_name_sv|NN SV *name\
3447				|U32 flags|NULLOK HV *typestash\
3448				|NULLOK HV *ourstash
3449Axpd	|PADOFFSET|pad_alloc	|I32 optype|U32 tmptype
3450Apd	|PADOFFSET|pad_add_anon	|NN CV* func|I32 optype
3451p	|void	|pad_add_weakref|NN CV* func
3452#if defined(PERL_IN_PAD_C)
3453Sd	|void	|pad_check_dup	|NN PADNAME *name|U32 flags \
3454				|NULLOK const HV *ourstash
3455#endif
3456Apd	|PADOFFSET|pad_findmy_pvn|NN const char* namepv|STRLEN namelen|U32 flags
3457Apd	|PADOFFSET|pad_findmy_pv|NN const char* name|U32 flags
3458Apd	|PADOFFSET|pad_findmy_sv|NN SV* name|U32 flags
3459ApdD	|PADOFFSET|find_rundefsvoffset	|
3460Apd	|SV*	|find_rundefsv	|
3461#if defined(PERL_IN_PAD_C)
3462Sd	|PADOFFSET|pad_findlex	|NN const char *namepv|STRLEN namelen|U32 flags \
3463				|NN const CV* cv|U32 seq|int warn \
3464				|NULLOK SV** out_capture \
3465				|NN PADNAME** out_name|NN int *out_flags
3466#endif
3467#ifdef DEBUGGING
3468Cpd	|SV*	|pad_sv		|PADOFFSET po
3469Cpd	|void	|pad_setsv	|PADOFFSET po|NN SV* sv
3470#endif
3471pd	|void	|pad_block_start|int full
3472Apd	|U32	|intro_my
3473pd	|OP *	|pad_leavemy
3474pd	|void	|pad_swipe	|PADOFFSET po|bool refadjust
3475#if defined(PERL_IN_PAD_C)
3476Sd	|void	|pad_reset
3477#endif
3478Axpd	|void	|pad_tidy	|padtidy_type type
3479pd	|void	|pad_free	|PADOFFSET po
3480pd	|void	|do_dump_pad	|I32 level|NN PerlIO *file|NULLOK PADLIST *padlist|int full
3481#if defined(PERL_IN_PAD_C)
3482#  if defined(DEBUGGING)
3483Sd	|void	|cv_dump	|NN const CV *cv|NN const char *title
3484#  endif
3485#endif
3486#if defined(PERL_IN_PAD_C) || defined(PERL_IN_OP_C)
3487iT	|bool	|PadnameIN_SCOPE|NN const PADNAME * const pn|const U32 seq
3488#endif
3489Apd	|CV*	|cv_clone	|NN CV* proto
3490p	|CV*	|cv_clone_into	|NN CV* proto|NN CV *target
3491pd	|void	|pad_fixup_inner_anons|NN PADLIST *padlist|NN CV *old_cv|NN CV *new_cv
3492pdX	|void	|pad_push	|NN PADLIST *padlist|int depth
3493ApbdDR	|HV*	|pad_compname_type|const PADOFFSET po
3494AxpdRT	|PADNAME *|padnamelist_fetch|NN PADNAMELIST *pnl|SSize_t key
3495Xop	|void	|padnamelist_free|NN PADNAMELIST *pnl
3496Axpd	|PADNAME **|padnamelist_store|NN PADNAMELIST *pnl|SSize_t key \
3497				     |NULLOK PADNAME *val
3498Xop	|void	|padname_free	|NN PADNAME *pn
3499#if defined(USE_ITHREADS)
3500pdR	|PADNAME *|padname_dup	|NN PADNAME *src|NN CLONE_PARAMS *param
3501pdR	|PADNAMELIST *|padnamelist_dup|NN PADNAMELIST *srcpad \
3502				      |NN CLONE_PARAMS *param
3503pdR	|PADLIST *|padlist_dup	|NN PADLIST *srcpad \
3504				|NN CLONE_PARAMS *param
3505#endif
3506p	|PAD **	|padlist_store	|NN PADLIST *padlist|I32 key \
3507				|NULLOK PAD *val
3508
3509ApdR	|CV*	|find_runcv	|NULLOK U32 *db_seqp
3510pR	|CV*	|find_runcv_where|U8 cond|IV arg \
3511				 |NULLOK U32 *db_seqp
3512: Only used in perl.c
3513p	|void	|free_tied_hv_pool
3514#if defined(DEBUGGING)
3515: Used in mg.c
3516pR	|int	|get_debug_opts	|NN const char **s|bool givehelp
3517#endif
3518Ap	|void	|save_set_svflags|NN SV *sv|U32 mask|U32 val
3519#ifdef DEBUGGING
3520Apod	|void	|hv_assert	|NN HV *hv
3521#endif
3522
3523ApdR	|SV*	|hv_scalar	|NN HV *hv
3524p	|void	|hv_pushkv	|NN HV *hv|U32 flags
3525ApdRx	|SV*	|hv_bucket_ratio|NN HV *hv
3526ApoR	|I32*	|hv_riter_p	|NN HV *hv
3527ApoR	|HE**	|hv_eiter_p	|NN HV *hv
3528Apo	|void	|hv_riter_set	|NN HV *hv|I32 riter
3529Apo	|void	|hv_eiter_set	|NN HV *hv|NULLOK HE *eiter
3530Ap	|void   |hv_rand_set    |NN HV *hv|U32 new_xhv_rand
3531Ap	|void	|hv_name_set	|NN HV *hv|NULLOK const char *name|U32 len|U32 flags
3532pd	|void	|hv_ename_add	|NN HV *hv|NN const char *name|U32 len \
3533				|U32 flags
3534pd	|void	|hv_ename_delete|NN HV *hv|NN const char *name|U32 len \
3535				|U32 flags
3536: Used in dump.c and hv.c
3537pox	|AV**	|hv_backreferences_p	|NN HV *hv
3538#if defined(PERL_IN_DUMP_C) || defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_SCOPE_C)
3539pox	|void	|hv_kill_backrefs	|NN HV *hv
3540#endif
3541Apd	|void	|hv_clear_placeholders	|NN HV *hv
3542XpoR	|SSize_t*|hv_placeholders_p	|NN HV *hv
3543ApoR	|I32	|hv_placeholders_get	|NN const HV *hv
3544Apo	|void	|hv_placeholders_set	|NN HV *hv|I32 ph
3545
3546: This is indirectly referenced by globals.c. This is somewhat annoying.
3547p	|SV*	|magic_scalarpack|NN HV *hv|NN MAGIC *mg
3548
3549#if defined(PERL_IN_SV_C)
3550S	|SV *	|find_hash_subscript|NULLOK const HV *const hv \
3551		|NN const SV *const val
3552S	|SSize_t|find_array_subscript|NULLOK const AV *const av \
3553		|NN const SV *const val
3554Sxd	|SV*	|find_uninit_var|NULLOK const OP *const obase \
3555		|NULLOK const SV *const uninit_sv|bool match \
3556		|NN const char **desc_p
3557#endif
3558
3559Adp	|GV*	|gv_fetchpvn_flags|NN const char* name|STRLEN len|I32 flags|const svtype sv_type
3560Adp	|GV*	|gv_fetchsv|NN SV *name|I32 flags|const svtype sv_type
3561
3562#ifdef DEBUG_LEAKING_SCALARS_FORK_DUMP
3563: Used in sv.c
3564p	|void	|dump_sv_child	|NN SV *sv
3565#endif
3566
3567#ifdef PERL_DONT_CREATE_GVSV
3568ApbM	|GV*	|gv_SVadd	|NULLOK GV *gv
3569#endif
3570#if defined(PERL_IN_UTIL_C)
3571S	|bool	|ckwarn_common	|U32 w
3572#endif
3573CpoP	|bool	|ckwarn		|U32 w
3574CpoP	|bool	|ckwarn_d	|U32 w
3575: FIXME - exported for ByteLoader - public or private?
3576XEopxR	|STRLEN *|new_warnings_bitfield|NULLOK STRLEN *buffer \
3577				|NN const char *const bits|STRLEN size
3578
3579AMpTdf	|int	|my_snprintf	|NN char *buffer|const Size_t len|NN const char *format|...
3580AMpTd	|int	|my_vsnprintf	|NN char *buffer|const Size_t len|NN const char *format|va_list ap
3581#ifdef USE_QUADMATH
3582pTd	|bool	|quadmath_format_valid|NN const char* format
3583pTd	|bool|quadmath_format_needed|NN const char* format
3584#endif
3585
3586: Used in mg.c, sv.c
3587pe	|void	|my_clearenv
3588
3589#ifdef MULTIPLICITY
3590Apo	|void*	|my_cxt_init	|NN int *indexp|size_t size
3591#endif
3592#if defined(PERL_IN_UTIL_C)
3593So	|void	|xs_version_bootcheck|U32 items|U32 ax|NN const char *xs_p \
3594				|STRLEN xs_len
3595#endif
3596FXpoT	|I32	|xs_handshake	|const U32 key|NN void * v_my_perl\
3597				|NN const char * file| ...
3598Xp	|void	|xs_boot_epilog	|const I32 ax
3599#ifndef HAS_STRLCAT
3600ApTd	|Size_t	|my_strlcat	|NULLOK char *dst|NULLOK const char *src|Size_t size
3601#endif
3602
3603#ifndef HAS_STRLCPY
3604ApTd	|Size_t |my_strlcpy     |NULLOK char *dst|NULLOK const char *src|Size_t size
3605#endif
3606
3607#ifndef HAS_STRNLEN
3608AipTd	|Size_t |my_strnlen     |NN const char *str|Size_t maxlen
3609#endif
3610
3611#ifndef HAS_MKOSTEMP
3612pTo	|int	|my_mkostemp	|NN char *templte|int flags
3613#endif
3614#ifndef HAS_MKSTEMP
3615pTo	|int	|my_mkstemp	|NN char *templte
3616#endif
3617
3618APpdT	|bool	|isinfnan	|NV nv
3619pd	|bool	|isinfnansv	|NN SV *sv
3620
3621#if !defined(HAS_SIGNBIT)
3622AxdToP	|int	|Perl_signbit	|NV f
3623#endif
3624
3625: Used by B
3626XExop	|void	|emulate_cop_io	|NN const COP *const c|NN SV *const sv
3627: Used by SvRX and SvRXOK
3628XExop	|REGEXP *|get_re_arg|NULLOK SV *sv
3629
3630Coph	|SV*	|mro_get_private_data|NN struct mro_meta *const smeta \
3631				     |NN const struct mro_alg *const which
3632Aopdh	|SV*	|mro_set_private_data|NN struct mro_meta *const smeta \
3633				     |NN const struct mro_alg *const which \
3634				     |NN SV *const data
3635Aop	|const struct mro_alg *|mro_get_from_name|NN SV *name
3636Aopd	|void	|mro_register	|NN const struct mro_alg *mro
3637Aop	|void	|mro_set_mro	|NN struct mro_meta *const meta \
3638				|NN SV *const name
3639: Used in HvMROMETA(), which is public.
3640Xpo	|struct mro_meta*	|mro_meta_init	|NN HV* stash
3641#if defined(USE_ITHREADS)
3642: Only used in sv.c
3643p	|struct mro_meta*	|mro_meta_dup	|NN struct mro_meta* smeta|NN CLONE_PARAMS* param
3644#endif
3645Apd	|AV*	|mro_get_linear_isa|NN HV* stash
3646#if defined(PERL_IN_MRO_C)
3647Sd	|AV*	|mro_get_linear_isa_dfs|NN HV* stash|U32 level
3648S	|void	|mro_clean_isarev|NN HV * const isa   \
3649				 |NN const char * const name \
3650				 |const STRLEN len \
3651				 |NULLOK HV * const exceptions \
3652				 |U32 hash|U32 flags
3653S	|void	|mro_gather_and_rename|NN HV * const stashes \
3654				      |NN HV * const seen_stashes \
3655				      |NULLOK HV *stash \
3656				      |NULLOK HV *oldstash \
3657				      |NN SV *namesv
3658#endif
3659: Used in hv.c, mg.c, pp.c, sv.c
3660pd	|void   |mro_isa_changed_in|NN HV* stash
3661Apd	|void	|mro_method_changed_in	|NN HV* stash
3662pde	|void	|mro_package_moved	|NULLOK HV * const stash|NULLOK HV * const oldstash|NN const GV * const gv|U32 flags
3663: Only used in perl.c
3664p	|void   |boot_core_mro
3665CpoT	|void	|sys_init	|NN int* argc|NN char*** argv
3666CpoT	|void	|sys_init3	|NN int* argc|NN char*** argv|NN char*** env
3667CpoT	|void	|sys_term
3668Apxd	|const char *|cop_fetch_label|NN COP *const cop \
3669		|NULLOK STRLEN *len|NULLOK U32 *flags
3670: Only used  in op.c and the perl compiler
3671Apxd	|void|cop_store_label \
3672		|NN COP *const cop|NN const char *label|STRLEN len|U32 flags
3673
3674epo	|int	|keyword_plugin_standard|NN char* keyword_ptr|STRLEN keyword_len|NN OP** op_ptr
3675
3676#if defined(USE_ITHREADS)
3677#  if defined(PERL_IN_SV_C)
3678S	|void	|unreferenced_to_tmp_stack|NN AV *const unreferenced
3679#  endif
3680ARTop	|CLONE_PARAMS *|clone_params_new|NN PerlInterpreter *const from \
3681		|NN PerlInterpreter *const to
3682ATop	|void	|clone_params_del|NN CLONE_PARAMS *param
3683#endif
3684
3685: Used in perl.c and toke.c
3686Fop	|void	|populate_isa	|NN const char *name|STRLEN len|...
3687
3688: Some static inline functions need predeclaration because they are used
3689: inside other static inline functions.
3690#if defined(PERL_CORE) || defined (PERL_EXT)
3691Ei	|STRLEN	|sv_or_pv_pos_u2b|NN SV *sv|NN const char *pv|STRLEN pos \
3692				 |NULLOK STRLEN *lenp
3693#endif
3694
3695Ap	|void	|clear_defarray	|NN AV* av|bool abandon
3696
3697Apx	|void	|leave_adjust_stacks|NN SV **from_sp|NN SV **to_sp \
3698                |U8 gimme|int filter
3699
3700#ifndef PERL_NO_INLINE_FUNCTIONS
3701Cixp	|U8	|gimme_V         |
3702Cixp	|PERL_CONTEXT *	|cx_pushblock|U8 type|U8 gimme|NN SV** sp|I32 saveix
3703Cixp	|void	|cx_popblock|NN PERL_CONTEXT *cx
3704Cixp	|void	|cx_topblock|NN PERL_CONTEXT *cx
3705Cixp	|void	|cx_pushsub      |NN PERL_CONTEXT *cx|NN CV *cv \
3706				 |NULLOK OP *retop|bool hasargs
3707Cixp	|void	|cx_popsub_common|NN PERL_CONTEXT *cx
3708Cixp	|void	|cx_popsub_args  |NN PERL_CONTEXT *cx
3709Cixp	|void	|cx_popsub       |NN PERL_CONTEXT *cx
3710Cixp	|void	|cx_pushformat   |NN PERL_CONTEXT *cx|NN CV *cv \
3711				 |NULLOK OP *retop|NULLOK GV *gv
3712Cixp	|void	|cx_popformat    |NN PERL_CONTEXT *cx
3713Cixp	|void	|cx_pusheval     |NN PERL_CONTEXT *cx \
3714				 |NULLOK OP *retop|NULLOK SV *namesv
3715Cixp	|void	|cx_pushtry      |NN PERL_CONTEXT *cx|NULLOK OP *retop
3716Cixp	|void	|cx_popeval      |NN PERL_CONTEXT *cx
3717Cixp	|void	|cx_pushloop_plain|NN PERL_CONTEXT *cx
3718Cixp	|void	|cx_pushloop_for |NN PERL_CONTEXT *cx \
3719				 |NN void *itervarp|NULLOK SV *itersave
3720Cixp	|void	|cx_poploop      |NN PERL_CONTEXT *cx
3721Cixp	|void	|cx_pushwhen     |NN PERL_CONTEXT *cx
3722Cixp	|void	|cx_popwhen      |NN PERL_CONTEXT *cx
3723Cixp	|void	|cx_pushgiven    |NN PERL_CONTEXT *cx|NULLOK SV *orig_defsv
3724Cixp	|void	|cx_popgiven     |NN PERL_CONTEXT *cx
3725#endif
3726
3727#ifdef USE_DTRACE
3728XEop	|void   |dtrace_probe_call |NN CV *cv|bool is_call
3729XEop	|void   |dtrace_probe_load |NN const char *name|bool is_loading
3730XEop	|void   |dtrace_probe_op   |NN const OP *op
3731XEop	|void   |dtrace_probe_phase|enum perl_phase phase
3732#endif
3733
3734XEop	|STRLEN*|dup_warnings	|NULLOK STRLEN* warnings
3735
3736#ifndef USE_ITHREADS
3737Amd	|void	|CopFILEGV_set	|NN COP * c|NN GV * gv
3738#endif
3739
3740Amd|const char *const|phase_name|enum perl_phase
3741
3742: ex: set ts=8 sts=4 sw=4 noet:
3743