xref: /openbsd-src/gnu/usr.bin/perl/embed.fnc (revision 3d61058aa5c692477b6d18acfbbdb653a9930ff9)
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 functions) 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: All the possible flags and their meanings are given below.
43:
44: A function taking no parameters will have no 'arg' elements.
45: A line may be continued onto the next by ending it with a backslash.
46: Leading and trailing whitespace will be ignored in each component.
47:
48: Most entries here have a macro created with the entry name.  This presents
49: name space collision potentials which haven't been well thought out, but are
50: now documented here.  In practice this has rarely been an issue.  At least,
51: with a macro, the XS author can #undef it, unlike a function.
52:
53: The default without flags is to declare a function for internal perl-core use
54: only.  The short name is visible only when the PERL_CORE symbol is defined.
55: On some platforms, such as Linux and Darwin, all non-static functions
56: are currently externally visible.  Because of this, and also for programs
57: that embed perl, most non-static functions should have the 'p' flag to avoid
58: namespace clashes.
59:
60: There are several advantages to using a macro instead of the full Perl_foo or
61: S_foo form: it hides the need to know if the called function requires a
62: thread context parameter or not, and the code using it is more readable
63: because of fewer parameters being visible.  And if there is some bug in it
64: that gets fixed in a later release, ppport.h can be changed to automatically
65: backport the fixed version to modules.  The only disadvantage khw can think
66: of is the namespace pollution one.
67:
68: WARNING: Any macro created in a header file is visible to XS code, unless
69: care is taken to wrap it within C preprocessor guards like the following
70:
71:    #if defined(PERL_CORE)
72:    ...
73:    #endif
74:
75: A common pattern is to use defines like 'PERL_IN_FILE_C' (with FILE_C being
76: appropriately replaced with the real filename).  Most, if not all, of the
77: perl core C files define such a symbol before importing perl.h. Some groups
78: of files define more generalized flags which are referenced in this file and
79: the files generated from it.
80:
81: In general you should restrict the exposure of your exports as much as
82: possible, although older code may not do so.  Be aware that non-static
83: exports can be "over exported" and things will likely work out fine, but
84: inline and static macros will cause errors unless restricted to the specific
85: file they are intended for, and the generated PERL_ARGS_ macros will only
86: be available to inline functions in the appropriate context.
87:
88: From time to time it may be necessary to change or expand which files can
89: see a function, therefore we prefer the '#if defined()' form of condition
90: instead of the '#ifdef' form as the latter only works with one symbol and
91: the former can be combined with more than one.  It is also why you may see
92: functions with an 's' or 'i' export type grouped together into a single
93: conditional block separate from most of the other functions from the same
94: file with 'p' in them.
95:
96: The 'A' flag is used to make a function and its short name visible everywhere
97:         on all platforms.  This should be used to make it part of Perl's API
98:         contract with XS developers.  The documentation for these is usually
99:         placed in perlapi.  If no documentation exists, that fact is also
100:         noted in perlapi.
101:
102: The 'C' flag is used instead for functions and their short names that need to
103:         be accessible everywhere, typically because they are called from a
104:         publicly available macro or inline function, but they are not for
105:         public use by themselves.  The documentation for these is placed in
106:         perlintern.  If no documentation exists, that fact is also noted in
107:         perlintern.
108:
109:         These really need the 'p' flag to avoid name space collisions.
110:
111:         Some of these have been constructed so that the wrapper macro names
112:         begin with an underscore to lessen the chances of a name collision.
113:         However, this is contrary to the C standard, and those should be
114:         changed.
115:
116: The 'E' flag is used instead for a function and its short name that is
117:         supposed to be used only in the core plus extensions compiled with
118:         the PERL_EXT symbol defined.  Again, on some platforms, the function
119:         will be visible everywhere, so one of the 'p' or 'S' flags is
120:         generally needed.  Also note that an XS writer can always cheat and
121:         pretend to be an extension by #defining PERL_EXT.
122:
123: The 'X' flag is similar to the 'C' flag in that the function (whose entry
124:         better have the 'p' flag) is accessible everywhere on all platforms.
125:         However the short name macro that normally gets generated is
126:         suppressed outside the core.  (Except it is also visible in PERL_EXT
127:         extensions if the 'E' flag is also specified.)  This flag is used for
128:         functions that are called from a public macro, the name of which
129:         isn't derived from the function name.  You'll have to write the macro
130:         yourself, and from within it, refer to the function in its full
131:         'Perl_' form with any necessary thread context parameter.
132:
133: Just below is a description of the relevant parts of the automatic
134: documentation generation system which heavily involves this file.  Below that
135: is a description of all the flags used in this file.
136:
137: Scattered around the perl source are lines of the form:
138:
139:   =for apidoc name
140:   =for apidoc_item name
141:
142: followed by pod for that function.  The purpose of these lines and the text
143: that immediately follows them is to furnish documentation for functions
144: and macros listed here in embed.fnc.  The lines tend to be placed near the
145: source for the item they describe.  autodoc.pl is run as part of the standard
146: build process to extract this documentation and build perlapi.pod from the
147: elements that are in the API (flagged as A in this file), and perlintern.pod
148: from the other elements.
149:
150: 'name' in the apidoc line corresponds to an item listed in this file, so that
151: the signature and flags need only be specified once, here, and automatically
152: they get placed into the generated pod.
153:
154: 'apidoc_item' is used for subsidiary entries, which share the same pod as the
155: plain apidoc one does.  Thus the documentation for functions which do
156: essentially the same thing, but with minor differences can all be placed in
157: the same entry.  This avoids needless repetition, making the pod shorter, and
158: makes it easier to compare and contrast the different forms, and less jumping
159: around the pod file for the person reading it.  The apidoc_item lines must
160: all come after the apidoc line and before the pod for the entry.  There need
161: not be empty lines between the apidoc line and any of its apidoc_item lines.
162:
163: The entries in this file that have corresponding '=for apidoc' entries must
164: have the 'd' flag set in this file.
165:
166: In C files, the apidoc lines are inside comment blocks.  They may also be
167: placed in pod files.  In those, the =for causes lines from there until the
168: next line beginning with an '=' to not be considered part of that pod.
169:
170: The 'h' flag is used to hide (suppress) the pod associated with =apidoc lines
171: from being placed in the generated perlapi or perlintern.  There are several
172: reasons you might want to do this, given in the 'h' flag description below,
173: but one is for the case where the =apidoc occurs in a file that contains
174: regular pod.  Without that flag, the associated pod will be placed in both
175: it, and perlapi or perlintern.  That may be what you want, but it gives you
176: the flexibility to choose that, or instead have just a link to the source pod
177: inserted in perlapi or perlintern.  This allows single-source browsing for
178: someone; they don't have to scan multiple pods trying to find something
179: suitable.
180:
181: There are also lines of this form scattered around the perl
182: source:
183:
184:   =for apidoc_section Section Name
185:   =head1 Section Name
186:
187: These aren't tied to this embed.fnc file, and so are documented in autodoc.pl.
188:
189: What goes into the documentation of a particular function ends with the next
190: line that begins with an '='.  In particular, an '=cut' line ends that
191: documentation without introducing something new.
192:
193: Various macros and other elements aren't listed here in embed.fnc.  They are
194: documented in the same manner, but since they don't have this file to get
195: information from, the defining lines have the syntax and meaning they do in
196: this file, so it can be specified:
197:
198:   =for apidoc flags|return_type|name|arg1|arg2|...|argN
199:   =for apidoc_item flags|return_type|name|arg1|arg2|...|argN
200:
201: The 'name' in any such line must not be the same as any in this file (i.e.,
202: no redundant definitions), and one of the flags on the apidoc lines must be
203: 'm' or 'y', indicating it is not a function.
204:
205: All but the name field of an apidoc_item line are optional, and if empty,
206: inherits from the controlling plain apidoc line.   The flags field is
207: generally empty, and in fact, the only flags it can have are ones directly
208: related to its display.  For example it might have the T flag to indicate no
209: thread context parameter is used, whereas the apidoc entry does have a thread
210: context.  Here is an example:
211:
212: =for apidoc    Am|char*      |SvPV       |SV* sv|STRLEN len
213: =for apidoc_item |const char*|SvPV_const |SV* sv|STRLEN len
214: =for apidoc_item |char*      |SvPV_nolen |SV* sv
215:
216: Since these are macros, the arguments need not be legal C parameters.  To
217: indicate this to downstream software that inspects these lines, there are a
218: few conventions.  An example would be:
219:
220:   =for apidoc Am|void|Newxc|void* ptr|int nitems|type|cast
221:
222: In this example, a real call of Newxc, 'type' would be specified as something
223: like 'int' or 'char', and 'cast' by perhaps 'struct foo'.
224:
225: The complete list of conventions is:
226:  type     the argument names a type
227:  cast     the argument names a type which the macro casts to
228:  SP       the argument is the stack pointer, SP
229:  block    the argument is a C brace-enclosed block
230:  number   the argument is a C numeric constant, like 3
231:  token    the argument is a generic C preprocessor token, like abc
232:  "string" the argument is a literal C double-quoted string; what's important
233:	    here are the quotes; for clarity, you can say whatever you want
234:	    inside them
235:
236: Unlike other arguments, none of these is of the form 'int name'.  There is no
237: name.
238:
239: If any argument or return value is not one of the above, and isn't legal C
240: language, the entry still can be specified, using the 'u' flag.
241:
242: 'return_type' in these lines can be empty, unlike in this file:
243:
244: =for apidoc Amnu||START_EXTERN_C
245:
246: Devel::PPPort also looks at both this file and the '=for apidoc' lines.  In
247: part it is to construct lists of elements that are or are not backported.
248:
249: makedef.pl uses this file for constructing the export list which lists the
250: symbols that should be available on all platforms.
251:
252: porting/diag.t checks some things for consistency based on this file.
253:
254: The remainder of these introductory comments detail all the possible flags:
255:
256:   'A'  Both long and short names are accessible fully everywhere (usually
257:        part of the public API). If the function is not part of the public
258:        API, instead use 'C', 'E', or 'X'.
259:
260:        * adds entry to the list of symbols available on all platforms unless
261:          'e' or 'm' are also specified;
262:        * any doc entry goes in perlapi.pod rather than perlintern.pod. If
263:          there isn't a doc entry, autodoc.pl lists this in perlapi as
264:          existing and being undocumented; unless 'x' is also specified, in
265:          which case it simply isn't listed.
266:        * makes the short name defined for everywhere, not just for PERL_CORE
267:          or PERL_EXT
268:
269:   'a'  Allocates memory a la malloc/calloc. Also implies 'R'. This flag
270:        should only be on a function which returns "empty" memory which has no
271:        other pointers to it, and which does not contain any pointers to other
272:        things. So for example realloc() can not be 'a'.
273:
274:          proto.h: add __attribute__malloc__
275:
276:   'b'  Binary backward compatibility. This is used for functions which are
277:        kept only to not have to change legacy applications that call them. If
278:        there are no such legacy applications in a Perl installation for all
279:        functions flagged with this, the installation can run Configure with
280:        the -Accflags='-DNO_MATHOMS' parameter to not even compile them.
281:
282:        Sometimes the function has been subsumed by a more general one (say,
283:        by adding a flags parameter), and a macro exists with the original
284:        short name API, and it calls the new function, bypassing this one, and
285:        the original 'Perl_' form is being deprecated. In this case also
286:        specify the 'M' flag.
287:
288:        Without the M flag, these functions should be deprecated, and it is an
289:        error to not also specify the 'D' flag.
290:
291:        The 'b' functions are normally moved to mathoms.c, but if
292:        circumstances dictate otherwise, they can be anywhere, provided the
293:        whole function is wrapped with
294:
295:	    #ifndef NO_MATHOMS
296:	    ...
297:	    #endif
298:
299:        Note that this flag no longer automatically adds a 'Perl_' prefix to
300:        the name. Additionally specify 'p' to do that.
301:
302:        This flag effectively causes nothing to happen if the perl interpreter
303:        is compiled with -DNO_MATHOMS (which causes any functions with this
304:        flag to not be compiled); otherwise these happen:
305:
306:        * add entry to the list of symbols available on all platforms;
307:        * create PERL_ARGS_ASSERT_foo;
308:        * add embed.h entry (unless overridden by the 'M' or 'o' flags)
309:
310:   'C'  Intended for core use only. This indicates to XS writers that they
311:        shouldn't be using this function. Devel::PPPort informs them of this,
312:        for example. Some functions have to be accessible everywhere even if
313:        they are not intended for public use. An example is helper functions
314:        that are called from inline ones that are publicly available.
315:
316:        * add entry to the list of symbols available on all platforms unless e
317:          or m are also specified;
318:        * any doc entry goes in perlintern.pod rather than perlapi.pod. If
319:          there isn't a doc entry, autodoc.pl lists this in perlintern as
320:          existing and being undocumented
321:        * makes the short name defined for everywhere, not just for PERL_CORE
322:          or PERL_EXT
323:
324:   'D'  Function is deprecated:
325:
326:        proto.h: add __attribute__deprecated__
327:        autodoc.pl adds a note to this effect in the doc entry
328:
329:   'd'  Function has documentation (somewhere) in the source:
330:
331:        Enables 'no docs for foo" warning in autodoc.pl if the documentation
332:        isn't found.
333:
334:   'E'  Visible to extensions included in the Perl core:
335:
336:         in embed.h, change "#ifdef PERL_CORE"
337:         into               "#if defined(PERL_CORE) || defined(PERL_EXT)"
338:
339:        To be usable from dynamically loaded extensions, either:
340:        1) it must be static to its containing file ('i' or 'S' flag); or
341:        2) be combined with the 'X' flag.
342:
343:   'e'  Not exported
344:
345:         suppress entry in the list of symbols available on all platforms
346:
347:   'f'  Function takes a format string. If the function name =~ qr/strftime/
348:        then it is assumed to take a strftime-style format string as the 1st
349:        arg; otherwise it's assumed to take a printf style format string, not
350:        necessarily the 1st arg.  All the arguments following the second form
351:	 (including possibly '...') are assumed to be for the format.
352:
353:         embed.h: any entry in here for the second form is suppressed because
354:	           of varargs
355:         proto.h: add __attribute__format__ (or ...null_ok__)
356:
357:   'F'  Function has a '...' parameter, but don't assume it is a format. This
358:        is to make sure that new functions with formats can't be added without
359:        considering if they are format functions or not. A reason to use this
360:        flag even on a format function is if the format would generate error:
361:        format string argument is not a string type
362:
363:   'G'  Suppress empty PERL_ARGS_ASSERT_foo macro. Normally such a macro is
364:        generated for all entries for functions 'foo' in this file. If there
365:        is a pointer argument to 'foo', it needs to be declared in this file
366:        as either NN or NULLOK, and the function definition must call its
367:        corresponding PERL_ARGS_ASSERT_foo macro (a porting test ensures this)
368:        which asserts at runtime (under DEBUGGING builds) that NN arguments
369:        are not NULL. If there aren't NN arguments, use of this macro is
370:        optional. Rarely, a function will define its own PERL_ARGS_ASSERT_foo
371:        macro, and in those cases, adding this flag to its entry in this file
372:        will suppress the normal one. It is not possible to suppress the
373:        generated macro if it isn't optional, that is, if there is at least
374:        one NN argument.
375:
376:          proto.h: PERL_ARGS_ASSERT macro is not defined unless the function
377:		   has NN arguments
378:
379:   'h'  Hide any documentation that would normally go into perlapi or
380:        perlintern. This is typically used when the documentation is actually
381:        in another pod. If you don't use the 'h', that documentation is
382:        displayed in both places; with the flag, it stays in the pod, and a
383:        link to that pod is instead placed in perlapi or perlintern. This
384:        allows one to browse perlapi or perlintern and see all the potentially
385:        relevant elements. A good example is perlapio. It has documentation
386:        about PerlIO functions with other text giving context. There's no
387:        point in writing a second entry for perlapi, but it would be good if
388:        someone browsing perlapi knew about the function and where it is
389:        documented. By adding '=for apidoc' lines in perlapio, the appropriate
390:        text could be simply copied into perlapi if deemed appropriate, or
391:        just a link added there when the 'h' flag is specified.
392:
393:        This flag is useful for symbolic names for flags. A single =for apidoc
394:        line can be added to the pod where the meaning is discussed, and
395:        perlapi will list the name, with a link to the pod. Another use would
396:        be if there are a bunch of macros which follow a common paradigm in
397:        their naming, so rather than having an entry for each slight
398:        variation, there is an overarching one. This flag is useful for
399:        downstream programs, such as Devel::PPPort.
400:
401:   'i'  inline static. This is used for functions that the compiler is being
402:        requested to inline. If the function is in a header file its
403:        definition will be visible (unless guarded by #if..#endif) to all XS
404:        code. (A typical guard will be that it is being included in a
405:        particular C file(s) or in the perl core.) Therefore, all non-guarded
406:        functions should also have the 'p' flag specified to avoid polluting
407:        the XS code name space. Otherwise an error is generated if the 'S'
408:        flag is not also specified.
409:
410:          proto.h: function is declared as PERL_STATIC_INLINE
411:
412:   'I'  This flag works exactly the same as 'i' but it also adds
413:        __attribute__((always_inline)) or __forceinline if either of them is
414:        supported by the compiler.
415:
416:          proto.h: function is declared as PERL_STATIC_FORCE_INLINE and
417:                  __attribute__always_inline__ is added
418:
419:   'm'  Implemented as a macro; there is no function associated with this
420:        name, and hence no long Perl_ or S_ name. However, if the macro name
421:        itself begins with 'Perl_', autodoc.pl will show a thread context
422:        parameter unless the 'T' flag is specified.
423:
424:         suppress proto.h entry (actually, not suppressed, but commented out)
425:         suppress entry in the list of exported symbols available on all platforms
426:         suppress embed.h entry, as the implementation should furnish the macro
427:
428:   'M'  The implementation is furnishing its own macro instead of relying on
429:        the automatically generated short name macro (which simply expands to
430:        call the real name function). One reason to do this is if the
431:        parameters need to be cast from what the caller has, or if there is a
432:        macro that bypasses this function (whose long name is being retained
433:        for backward compatibility for those who call it with that name). An
434:        example is when a new function is created with an extra parameter and
435:        a wrapper macro is added that has the old API, but calls the new one
436:        with the exta parameter set to a default.
437:
438:        This flag requires the 'p' flag to be specified, as there would be no
439:        need to do this if the function weren't publicly accessible before.
440:
441:        The entry is processed based on the other flags, but the:
442:           embed.h entry is suppressed
443:
444:   'N'  The name in the entry isn't strictly a name
445:
446:        Normally, the name of the function or macro must contain all \w
447:        characters, and a warning is raised otherwise. This flag suppresses
448:        that warning, so that weird things can be documented
449:
450:   'n'  Has no arguments (used only in =for apidoc entries)
451:
452:        The macro (it can't be a function) is used without any parameters nor
453:        empty parentheses.
454:
455:        Perhaps a better name for this flag would have been '0'. The reason
456:        the flag was not changed to that from 'n', is if D:P were to be
457:        regenerated on an older perl, it still would use the new embed.fnc
458:        shipped with it, but would be using the flags from the older perl
459:        source code.
460:
461:   'O'  Has a perl_ compatibility macro.
462:
463:        The really OLD name for API funcs.
464:
465:        autodoc.pl adds a note that the perl_ form of this function is
466:        deprecated.
467:
468:   'o'  Has no Perl_foo or S_foo compatibility macro:
469:
470:	 This is used for whatever reason to force the function to be called
471:	 with the long name.  Perhaps there is a varargs issue.  Use the 'M'
472:	 flag instead for wrapper macros, and legacy-only functions should
473:	 also use 'b'.
474:
475:          embed.h: suppress "#define foo Perl_foo"
476:
477:        autodoc.pl adds a note that this function must be explicitly called as
478:        Perl_$name, and with an aTHX_ parameter unless the 'T' flag is also
479:        specified.
480:
481:        mnemonic: 'omit' generated macro
482:
483:   'P'  Pure function:
484:
485:        A pure function has no effects except the return value, and the return
486:        value depends only on params and/or globals. This is a hint to the
487:        compiler that it can optimize calls to this function out of common
488:        subexpressions. Consequently if this flag is wrongly specified, it can
489:        lead to subtle bugs that vary by platform, compiler, compiler version,
490:        and optimization level. Also, a future commit could easily change a
491:        currently-pure function without even noticing this flag. So it should
492:        be used sparingly, only for functions that are unlikely to ever become
493:        not pure by future commits. It should not be used for static
494:        functions, as the compiler already has the information needed to make
495:        the 'pure' determination and doesn't need any hint; so it doesn't add
496:        value in those cases, and could be dangerous if it causes the compiler
497:        to skip doing its own checks. It should not be used on functions that
498:        touch SVs, as those can trigger unexpected magic. Also implies "R":
499:
500:          proto.h: add __attribute__pure__
501:
502:   'p'  Function in source code has a Perl_ prefix:
503:
504:          proto.h: function is declared as Perl_foo rather than foo
505:          embed.h: "#define foo Perl_foo" entries added
506:
507:   'R'  Return value must not be ignored (also implied by 'a' and 'P' flags):
508:
509:        gcc has a bug (which they claim is a feature) in which casting the
510:        result of one of these to (void) doesn't silence the warning that the
511:        result is ignored. (Perl has a workaround for this bug, see
512:        PERL_UNUSED_RESULT docs)
513:
514:          proto.h: add __attribute__warn_unused_result__
515:
516:   'r'  Function never returns:
517:
518:          proto.h: add __attribute__noreturn__
519:
520:   'S'  Static function: function in source code has a S_ prefix:
521:
522:          proto.h: function is declared as S_foo rather than foo,
523:                STATIC is added to declaration;
524:          embed.h: "#define foo S_foo" entries added
525:
526:   's'  Static function, but function in source code has a Perl_ prefix:
527:
528:	 This is used for functions that have always had a Perl_ prefix, but
529:	 have been moved to a header file and declared static.
530:
531:          proto.h: function is declared as Perl_foo rather than foo
532:                STATIC is added to declaration;
533:          embed.h: "#define foo Perl_foo" entries added
534:
535:   'T'  Has no implicit interpreter/thread context argument:
536:
537:          suppress the pTHX part of "foo(pTHX...)" in proto.h;
538:          In the PERL_IMPLICIT_SYS branch of embed.h, generates
539:             "#define foo Perl_foo",      rather than
540:             "#define foo(a,b,c) Perl_foo(aTHX_ a,b,c)
541:
542:   'u'  The macro's (it has to be a macro) return value or parameters are
543:        unorthodox, and aren't in the list above of recognized weird ones. For
544:        example, they aren't C parameters, or the macro expands to something
545:        that isn't a symbol.
546:
547:        For example, the expansion of STR_WITH_LEN is a comma separated pair
548:        of values, so would have this flag; or some macros take preprocessor
549:        tokens, so would have this flag.
550:
551:        This also is used for entries that require processing for use, such as
552:        being compiled by xsubpp. This flag is an indication to downstream
553:        tools, such as Devel::PPPort, that this requires special handling.
554:
555:   'U'  autodoc.pl will not output a usage example
556:
557:   'v'  Guard the macro by !MULTIPLICITY || PERL_CORE if it uses __VA_ARGS__.
558:        This flag exists for backward-compatibility to ensure that code does
559:        not break when calling older functions without an aTHX in scope. It
560:        should not be added to newly-added functions as they will have no such
561:        compatibility issues.
562:
563:   'W'  Add a comma_pDEPTH argument to function prototypes, and a comma_aDEPTH argument
564:        to the function calls. This means that under DEBUGGING a depth
565:        argument is added to the functions, which is used for example by the
566:        regex engine for debugging and trace output. A non DEBUGGING build
567:        will not pass the unused argument. Currently restricted to functions
568:        with at least one argument.
569:
570:   'X'  Explicitly exported:
571:
572:          add entry to the list of symbols available on all platforms, unless
573:          'e' or 'm'
574:
575:        This is often used for private functions that are used by public
576:        macros. In those cases the macros must use the long form of the name
577:        (Perl_blah(aTHX_ ...)).
578:
579:   'x'  Experimental, may change:
580:
581:          Any doc entry is marked that it may change. An undocumented
582:          experimental function is listed in perlintern rather than perlapi,
583:          even if it is allegedly API.
584:
585:   'y'  Typedef.  The element names a type rather than being a macro
586:
587:   ';'  autodoc.pl adds a terminating semi-colon to the usage example in the
588:        documentation.
589:
590:   '#'  The number sign flag indicates that this is a pre-processor symbol
591:        that is just #define'd or #undef'd. Must NOT be the first symbol on
592:        the line.
593:
594:   '?'  The question mark flag is used internally by Devel::PPPort to
595:        indicate that it does not have enough information to generate a
596:        proper test case.
597:
598: In this file, pointer parameters that must not be passed NULLs should be
599: prefixed with NN.
600:
601: And, pointer parameters that may be NULL should be prefixed with NULLOK.
602: This has no effect on output yet.  It's a notation for the maintainers to
603: know "I have defined whether NULL is OK or not" rather than having neither
604: NULL or NULLOK, which is ambiguous.
605:
606: Numeric arguments may also be prefixed with NZ, which will cause the
607: appropriate asserts to be generated to validate that this is the case.
608:
609: Flags should be sorted asciibetically.
610:
611: Please keep the next line *BLANK*
612
613pr	|void	|abort_execution|NULLOK SV *msg_sv			\
614				|NN const char * const name
615px	|LOGOP *|alloc_LOGOP	|I32 type				\
616				|NULLOK OP *first			\
617				|NULLOK OP *other
618: Used in toke.c and perly.y
619p	|PADOFFSET|allocmy	|NN const char * const name		\
620				|const STRLEN len			\
621				|const U32 flags
622Xdp	|bool	|amagic_applies |NN SV *sv				\
623				|int method				\
624				|int flags
625Adp	|SV *	|amagic_call	|NN SV *left				\
626				|NN SV *right				\
627				|int method				\
628				|int dir
629Adp	|SV *	|amagic_deref_call					\
630				|NN SV *ref				\
631				|int method
632p	|bool	|amagic_is_enabled					\
633				|int method
634
635ETXip	|void	|append_utf8_from_native_byte				\
636				|const U8 byte				\
637				|NN U8 **dest
638: FIXME - this is only called by pp_chown. They should be merged.
639p	|SSize_t|apply		|I32 type				\
640				|NN SV **mark				\
641				|NN SV **sp
642Apx	|void	|apply_attrs_string					\
643				|NN const char *stashpv 		\
644				|NN CV *cv				\
645				|NN const char *attrstr 		\
646				|STRLEN len
647Adp	|OP *	|apply_builtin_cv_attributes				\
648				|NN CV *cv				\
649				|NULLOK OP *attrlist
650CTp	|void	|atfork_lock
651CTp	|void	|atfork_unlock
652Cop	|SV **	|av_arylen_p	|NN AV *av
653Adp	|void	|av_clear	|NN AV *av
654ARdip	|Size_t |av_count	|NN AV *av
655Adeop	|void	|av_create_and_push					\
656				|NN AV ** const avp			\
657				|NN SV * const val
658Adeop	|SV **	|av_create_and_unshift_one				\
659				|NN AV ** const avp			\
660				|NN SV * const val
661Adp	|SV *	|av_delete	|NN AV *av				\
662				|SSize_t key				\
663				|I32 flags
664Adp	|void	|av_dump	|NULLOK AV *av
665ARdp	|bool	|av_exists	|NN AV *av				\
666				|SSize_t key
667Adp	|void	|av_extend	|NN AV *av				\
668				|SSize_t key
669p	|void	|av_extend_guts |NULLOK AV *av				\
670				|SSize_t key				\
671				|NN SSize_t *maxp			\
672				|NN SV ***allocp			\
673				|NN SV ***arrayp
674ARdp	|SV **	|av_fetch	|NN AV *av				\
675				|SSize_t key				\
676				|I32 lval
677CRdip	|SV **	|av_fetch_simple|NN AV *av				\
678				|SSize_t key				\
679				|I32 lval
680Adp	|void	|av_fill	|NN AV *av				\
681				|SSize_t fill
682Cop	|IV *	|av_iter_p	|NN AV *av
683ARdp	|SSize_t|av_len 	|NN AV *av
684ARdp	|AV *	|av_make	|SSize_t size				\
685				|NN SV **strp
686CRdip	|AV *	|av_new_alloc	|SSize_t size				\
687				|bool zeroflag
688p	|SV *	|av_nonelem	|NN AV *av				\
689				|SSize_t ix
690Adp	|SV *	|av_pop 	|NN AV *av
691Adp	|void	|av_push	|NN AV *av				\
692				|NN SV *val
693Adip	|void	|av_push_simple |NN AV *av				\
694				|NN SV *val
695: Used in scope.c, and by Data::Alias
696EXp	|void	|av_reify	|NN AV *av
697ipx	|void	|av_remove_offset					\
698				|NN AV *av
699ARdp	|SV *	|av_shift	|NN AV *av
700Adp	|SV **	|av_store	|NN AV *av				\
701				|SSize_t key				\
702				|NULLOK SV *val
703Cdip	|SV **	|av_store_simple|NN AV *av				\
704				|SSize_t key				\
705				|NULLOK SV *val
706ARdm	|SSize_t|av_tindex	|NN AV *av
707ARdm	|SSize_t|av_top_index	|NN AV *av
708Adp	|void	|av_undef	|NN AV *av
709Adp	|void	|av_unshift	|NN AV *av				\
710				|SSize_t num
711: Used in perly.y
712Rp	|OP *	|bind_match	|I32 type				\
713				|NN OP *left				\
714				|NN OP *right
715: Used in perly.y
716ARdp	|OP *	|block_end	|I32 floor				\
717				|NULLOK OP *seq
718CRp	|U8	|block_gimme
719Adopx	|void	|blockhook_register					\
720				|NN BHK *hk
721: Used in perly.y
722ARdp	|int	|block_start	|int full
723p	|void	|boot_core_builtin
724: Only used in perl.c
725p	|void	|boot_core_mro
726: Used in perl.c
727p	|void	|boot_core_PerlIO
728: Used in perl.c
729p	|void	|boot_core_UNIVERSAL
730p	|OP *	|build_infix_plugin					\
731				|NN OP *lhs				\
732				|NN OP *rhs				\
733				|NN void *tokendata
734EXp	|const char *|_byte_dump_string 				\
735				|NULLOK const U8 * const start		\
736				|const STRLEN len			\
737				|const bool format
738Adp	|int	|bytes_cmp_utf8 |NN const U8 *b 			\
739				|STRLEN blen				\
740				|NN const U8 *u 			\
741				|STRLEN ulen
742AMdpx	|U8 *	|bytes_from_utf8|NN const U8 *s 			\
743				|NN STRLEN *lenp			\
744				|NN bool *is_utf8p
745CTdpx	|U8 *	|bytes_from_utf8_loc					\
746				|NN const U8 *s 			\
747				|NN STRLEN *lenp			\
748				|NN bool *is_utf8p			\
749				|NULLOK const U8 **first_unconverted
750Adpx	|U8 *	|bytes_to_utf8	|NN const U8 *s 			\
751				|NN STRLEN *lenp
752AOdp	|SSize_t|call_argv	|NN const char *sub_name		\
753				|I32 flags				\
754				|NN char **argv
755
756: "Very" special - can't use the O flag for this one:
757: (The rename from perl_atexit to Perl_call_atexit was in 864dbfa3ca8032ef)
758Adp	|void	|call_atexit	|ATEXIT_t fn				\
759				|NULLOK void *ptr
760Adp	|const PERL_CONTEXT *|caller_cx 				\
761				|I32 level				\
762				|NULLOK const PERL_CONTEXT **dbcxp
763Cp	|void	|call_list	|I32 oldscope				\
764				|NN AV *paramList
765AOdp	|SSize_t|call_method	|NN const char *methname		\
766				|I32 flags
767CTadop	|Malloc_t|calloc	|MEM_SIZE elements			\
768				|MEM_SIZE size
769AOdp	|SSize_t|call_pv	|NN const char *sub_name		\
770				|I32 flags
771AOdp	|SSize_t|call_sv	|NN SV *sv				\
772				|I32 flags
773: Used in several source files
774Rp	|bool	|cando		|Mode_t mode				\
775				|bool effective 			\
776				|NN const Stat_t *statbufp
777CRTp	|I32	|cast_i32	|NV f
778CRTp	|IV	|cast_iv	|NV f
779CRTp	|U32	|cast_ulong	|NV f
780CRTp	|UV	|cast_uv	|NV f
781p	|bool	|check_utf8_print					\
782				|NN const U8 *s 			\
783				|const STRLEN len
784op	|OP *	|ck_entersub_args_core					\
785				|NN OP *entersubop			\
786				|NN GV *namegv				\
787				|NN SV *protosv
788Adp	|OP *	|ck_entersub_args_list					\
789				|NN OP *entersubop
790Adp	|OP *	|ck_entersub_args_proto 				\
791				|NN OP *entersubop			\
792				|NN GV *namegv				\
793				|NN SV *protosv
794Adp	|OP *	|ck_entersub_args_proto_or_list 			\
795				|NN OP *entersubop			\
796				|NN GV *namegv				\
797				|NN SV *protosv
798
799CPop	|bool	|ckwarn 	|U32 w
800CPop	|bool	|ckwarn_d	|U32 w
801Adfpv	|void	|ck_warner	|U32 err				\
802				|NN const char *pat			\
803				|...
804Adfpv	|void	|ck_warner_d	|U32 err				\
805				|NN const char *pat			\
806				|...
807
808: Some static inline functions need predeclaration because they are used
809: inside other static inline functions.
810
811Cp	|void	|clear_defarray |NN AV *av				\
812				|bool abandon
813Cipx	|void	|clear_defarray_simple					\
814				|NN AV *av
815p	|const COP *|closest_cop|NN const COP *cop			\
816				|NULLOK const OP *o			\
817				|NULLOK const OP *curop 		\
818				|bool opnext
819Rp	|OP *	|cmpchain_extend|I32 type				\
820				|NN OP *ch				\
821				|NULLOK OP *right
822Rp	|OP *	|cmpchain_finish|NN OP *ch
823Rp	|OP *	|cmpchain_start |I32 type				\
824				|NULLOK OP *left			\
825				|NULLOK OP *right
826ERTXp	|const char *|cntrl_to_mnemonic 				\
827				|const U8 c
828Adpx	|const char *|cop_fetch_label					\
829				|NN COP * const cop			\
830				|NULLOK STRLEN *len			\
831				|NULLOK U32 *flags
832: Only used  in op.c and the perl compiler
833Adpx	|void	|cop_store_label|NN COP * const cop			\
834				|NN const char *label			\
835				|STRLEN len				\
836				|U32 flags
837: Used in pp.c
838dp	|SV *	|core_prototype |NULLOK SV *sv				\
839				|NN const char *name			\
840				|const int code 			\
841				|NULLOK int * const opnum
842: Used in gv.c
843p	|OP *	|coresub_op	|NN SV * const coreargssv		\
844				|const int code 			\
845				|const int opnum
846: Used in op.c and perl.c
847px	|void	|create_eval_scope					\
848				|NULLOK OP *retop			\
849				|NN SV **sp				\
850				|U32 flags
851: croak()'s first parm can be NULL.  Otherwise, mod_perl breaks.
852Adfprv	|void	|croak		|NULLOK const char *pat 		\
853				|...
854Tfprv	|void	|croak_caller	|NULLOK const char *pat 		\
855				|...
856CTrs	|void	|croak_memory_wrap
857Tpr	|void	|croak_no_mem
858Tpr	|void	|croak_no_mem_ext					\
859				|NN const char *context 		\
860				|STRLEN len
861ATdpr	|void	|croak_no_modify
862TXpr	|void	|croak_popstack
863Adpr	|void	|croak_sv	|NN SV *baseex
864ATdpr	|void	|croak_xs_usage |NN const CV * const cv 		\
865				|NN const char * const params
866CTp	|Signal_t|csighandler1	|int sig
867CTp	|Signal_t|csighandler3	|int sig				\
868				|NULLOK Siginfo_t *info 		\
869				|NULLOK void *uap
870EXp	|regexp_engine const *|current_re_engine
871RXp	|XOPRETANY|custom_op_get_field					\
872				|NN const OP *o 			\
873				|const xop_flags_enum field
874Adop	|void	|custom_op_register					\
875				|NN Perl_ppaddr_t ppaddr		\
876				|NN const XOP *xop
877: Used in sv.c
878EXpx	|void	|cv_ckproto_len_flags					\
879				|NN const CV *cv			\
880				|NULLOK const GV *gv			\
881				|NULLOK const char *p			\
882				|const STRLEN len			\
883				|const U32 flags
884Adp	|CV *	|cv_clone	|NN CV *proto
885p	|CV *	|cv_clone_into	|NN CV *proto				\
886				|NN CV *target
887ARTdp	|SV *	|cv_const_sv	|NULLOK const CV * const cv
888RTp	|SV *	|cv_const_sv_or_av					\
889				|NULLOK const CV * const cv
890AMTdip	|I32 *	|CvDEPTH	|NN const CV * const sv
891dp	|void	|cv_forget_slab |NULLOK CV *cv
892Adp	|void	|cv_get_call_checker					\
893				|NN CV *cv				\
894				|NN Perl_call_checker *ckfun_p		\
895				|NN SV **ckobj_p
896Adp	|void	|cv_get_call_checker_flags				\
897				|NN CV *cv				\
898				|U32 gflags				\
899				|NN Perl_call_checker *ckfun_p		\
900				|NN SV **ckobj_p			\
901				|NN U32 *ckflags_p
902AMdip	|GV *	|CvGV		|NN CV *sv
903Xop	|GV *	|cvgv_from_hek	|NN CV *cv
904Xp	|void	|cvgv_set	|NN CV *cv				\
905				|NULLOK GV *gv
906Adp	|SV *	|cv_name	|NN CV *cv				\
907				|NULLOK SV *sv				\
908				|U32 flags
909Adp	|void	|cv_set_call_checker					\
910				|NN CV *cv				\
911				|NN Perl_call_checker ckfun		\
912				|NN SV *ckobj
913Adp	|void	|cv_set_call_checker_flags				\
914				|NN CV *cv				\
915				|NN Perl_call_checker ckfun		\
916				|NN SV *ckobj				\
917				|U32 ckflags
918Xp	|void	|cvstash_set	|NN CV *cv				\
919				|NULLOK HV *stash
920Adp	|void	|cv_undef	|NN CV *cv
921p	|void	|cv_undef_flags |NN CV *cv				\
922				|U32 flags
923Cp	|void	|cx_dump	|NN PERL_CONTEXT *cx
924: Used by CXINC, which appears to be in widespread use
925CRp	|I32	|cxinc
926Adfpv	|void	|deb		|NN const char *pat			\
927				|...
928Cdp	|I32	|debop		|NN const OP *o
929Cdp	|void	|debprofdump
930Adp	|I32	|debstack
931
932: Only used in dump.c
933p	|void	|deb_stack_all
934Cp	|I32	|debstackptrs
935p	|void	|debug_hash_seed|bool via_debug_h
936Rp	|SV *	|defelem_target |NN SV *sv				\
937				|NULLOK MAGIC *mg
938: Used in op.c, perl.c
939px	|void	|delete_eval_scope
940ATdp	|char * |delimcpy	|NN char *to				\
941				|NN const char *to_end			\
942				|NN const char *from			\
943				|NN const char *from_end		\
944				|const int delim			\
945				|NN I32 *retlen
946ETXdp	|char * |delimcpy_no_escape					\
947				|NN char *to				\
948				|NN const char *to_end			\
949				|NN const char *from			\
950				|NN const char *from_end		\
951				|const int delim			\
952				|NN I32 *retlen
953Cp	|void	|despatch_signals
954Adfprv	|OP *	|die		|NULLOK const char *pat 		\
955				|...
956Adpr	|OP *	|die_sv 	|NN SV *baseex
957: Used in util.c
958pr	|void	|die_unwind	|NN SV *msv
959: FIXME
960Mbp	|bool	|do_aexec	|NULLOK SV *really			\
961				|NN SV **mark				\
962				|NN SV **sp
963: Used in pp_sys.c
964p	|bool	|do_aexec5	|NULLOK SV *really			\
965				|NN SV **mark				\
966				|NN SV **sp				\
967				|int fd 				\
968				|int do_report
969: Used in pp.c
970Adp	|bool	|do_close	|NULLOK GV *gv				\
971				|bool is_explicit
972dp	|void	|do_dump_pad	|I32 level				\
973				|NN PerlIO *file			\
974				|NULLOK PADLIST *padlist		\
975				|int full
976: Defined in doio.c, used only in pp_sys.c
977p	|bool	|do_eof 	|NN GV *gv
978: Used in perly.y
979p	|OP *	|dofile 	|NN OP *term				\
980				|I32 force_builtin
981Cp	|void	|do_gv_dump	|I32 level				\
982				|NN PerlIO *file			\
983				|NN const char *name			\
984				|NULLOK GV *sv
985Cp	|void	|do_gvgv_dump	|I32 level				\
986				|NN PerlIO *file			\
987				|NN const char *name			\
988				|NULLOK GV *sv
989Cp	|void	|do_hv_dump	|I32 level				\
990				|NN PerlIO *file			\
991				|NN const char *name			\
992				|NULLOK HV *sv
993CRTp	|bool	|doing_taint	|int argc				\
994				|NULLOK char **argv			\
995				|NULLOK char **env
996
997Adp	|void	|do_join	|NN SV *sv				\
998				|NN SV *delim				\
999				|NN SV **mark				\
1000				|NN SV **sp
1001Cp	|void	|do_magic_dump	|I32 level				\
1002				|NN PerlIO *file			\
1003				|NULLOK const MAGIC *mg 		\
1004				|I32 nest				\
1005				|I32 maxnest				\
1006				|bool dumpops				\
1007				|STRLEN pvlim
1008: Used in pp.c and pp_hot.c, prototype generated by regen/opcode.pl
1009: p	|OP*	|do_kv
1010: used in pp.c, pp_hot.c
1011Rp	|I32	|do_ncmp	|NN SV * const left			\
1012				|NN SV * const right
1013Cp	|void	|do_op_dump	|I32 level				\
1014				|NN PerlIO *file			\
1015				|NULLOK const OP *o
1016AMbp	|bool	|do_open	|NN GV *gv				\
1017				|NN const char *name			\
1018				|I32 len				\
1019				|int as_raw				\
1020				|int rawmode				\
1021				|int rawperm				\
1022				|NULLOK PerlIO *supplied_fp
1023px	|bool	|do_open6	|NN GV *gv				\
1024				|NN const char *oname			\
1025				|STRLEN len				\
1026				|NULLOK PerlIO *supplied_fp		\
1027				|NULLOK SV **svp			\
1028				|U32 num
1029Ap	|bool	|do_openn	|NN GV *gv				\
1030				|NN const char *oname			\
1031				|I32 len				\
1032				|int as_raw				\
1033				|int rawmode				\
1034				|int rawperm				\
1035				|NULLOK PerlIO *supplied_fp		\
1036				|NULLOK SV **svp			\
1037				|I32 num
1038px	|bool	|do_open_raw	|NN GV *gv				\
1039				|NN const char *oname			\
1040				|STRLEN len				\
1041				|int rawmode				\
1042				|int rawperm				\
1043				|NULLOK Stat_t *statbufp
1044Cp	|void	|do_pmop_dump	|I32 level				\
1045				|NN PerlIO *file			\
1046				|NULLOK const PMOP *pm
1047: Used in pp_hot.c and pp_sys.c
1048p	|bool	|do_print	|NULLOK SV *sv				\
1049				|NN PerlIO *fp
1050: Used in pp_sys.c
1051Rp	|OP *	|do_readline
1052Cp	|OP *	|doref		|NN OP *o				\
1053				|I32 type				\
1054				|bool set_op_ref
1055: Defined in doio.c, used only in pp_sys.c
1056p	|bool	|do_seek	|NULLOK GV *gv				\
1057				|Off_t pos				\
1058				|int whence
1059Adp	|void	|do_sprintf	|NN SV *sv				\
1060				|SSize_t len				\
1061				|NN SV **sarg
1062Cp	|void	|do_sv_dump	|I32 level				\
1063				|NN PerlIO *file			\
1064				|NULLOK SV *sv				\
1065				|I32 nest				\
1066				|I32 maxnest				\
1067				|bool dumpops				\
1068				|STRLEN pvlim
1069: Defined in doio.c, used only in pp_sys.c
1070p	|Off_t	|do_sysseek	|NN GV *gv				\
1071				|Off_t pos				\
1072				|int whence
1073: Defined in doio.c, used only in pp_sys.c
1074Rp	|Off_t	|do_tell	|NN GV *gv
1075: Defined in doop.c, used only in pp.c
1076p	|Size_t |do_trans	|NN SV *sv
1077ERTXp	|I16	|do_uniprop_match					\
1078				|NN const char * const key		\
1079				|const U16 key_len
1080Cdhp	|void	|dounwind	|I32 cxix
1081: Used in my.c and pp.c
1082p	|UV	|do_vecget	|NN SV *sv				\
1083				|STRLEN offset				\
1084				|int size
1085: Defined in doop.c, used only in mg.c (with /* XXX slurp this routine */)
1086p	|void	|do_vecset	|NN SV *sv
1087: Defined in doop.c, used only in pp.c
1088p	|void	|do_vop 	|I32 optype				\
1089				|NN SV *sv				\
1090				|NN SV *left				\
1091				|NN SV *right
1092CDRdp	|U8	|dowantarray
1093TXop	|void	|drand48_init_r |NN perl_drand48_t *random_state	\
1094				|U32 seed
1095TXop	|double |drand48_r	|NN perl_drand48_t *random_state
1096Adp	|void	|dump_all
1097p	|void	|dump_all_perl	|bool justperl
1098Adhp	|void	|dump_eval
1099Adp	|void	|dump_form	|NN const GV *gv
1100Cfpv	|void	|dump_indent	|I32 level				\
1101				|NN PerlIO *file			\
1102				|NN const char *pat			\
1103				|...
1104Adp	|void	|dump_packsubs	|NN const HV *stash
1105p	|void	|dump_packsubs_perl					\
1106				|NN const HV *stash			\
1107				|bool justperl
1108Adhp	|void	|dump_sub	|NN const GV *gv
1109p	|void	|dump_sub_perl	|NN const GV *gv			\
1110				|bool justperl
1111Cp	|void	|dump_vindent	|I32 level				\
1112				|NN PerlIO *file			\
1113				|NN const char *pat			\
1114				|NULLOK va_list *args
1115
1116EXop	|char  *|dup_warnings	|NULLOK char *warnings
1117
1118: Used by B
1119EXopx	|void	|emulate_cop_io |NN const COP * const c 		\
1120				|NN SV * const sv
1121AOdp	|SV *	|eval_pv	|NN const char *p			\
1122				|I32 croak_on_error
1123AOdp	|SSize_t|eval_sv	|NN SV *sv				\
1124				|I32 flags
1125Adfpv	|void	|fatal_warner	|U32 err				\
1126				|NN const char *pat			\
1127				|...
1128Adp	|void	|fbm_compile	|NN SV *sv				\
1129				|U32 flags
1130ARdp	|char * |fbm_instr	|NN unsigned char *big			\
1131				|NN unsigned char *bigend		\
1132				|NN SV *littlestr			\
1133				|U32 flags
1134Adhp	|SV *	|filter_add	|NULLOK filter_t funcp			\
1135				|NULLOK SV *datasv
1136Adp	|void	|filter_del	|NN filter_t funcp
1137ARdhp	|I32	|filter_read	|int idx				\
1138				|NN SV *buf_sv				\
1139				|int maxlen
1140p	|CV *	|find_lexical_cv|PADOFFSET off
1141
1142ARdp	|CV *	|find_runcv	|NULLOK U32 *db_seqp
1143Rp	|CV *	|find_runcv_where					\
1144				|U8 cond				\
1145				|IV arg 				\
1146				|NULLOK U32 *db_seqp
1147Adp	|SV *	|find_rundefsv
1148: Defined in util.c, used only in perl.c
1149p	|char * |find_script	|NN const char *scriptname			\
1150				|bool dosearch					\
1151				|NULLOK const char * const * const search_ext	\
1152				|I32 flags
1153Adip	|I32	|foldEQ 	|NN const char *a			\
1154				|NN const char *b			\
1155				|I32 len
1156Cip	|I32	|foldEQ_latin1	|NN const char *a			\
1157				|NN const char *b			\
1158				|I32 len
1159Adip	|I32	|foldEQ_locale	|NN const char *a			\
1160				|NN const char *b			\
1161				|I32 len
1162Adm	|I32	|foldEQ_utf8	|NN const char *s1			\
1163				|NULLOK char **pe1			\
1164				|UV l1					\
1165				|bool u1				\
1166				|NN const char *s2			\
1167				|NULLOK char **pe2			\
1168				|UV l2					\
1169				|bool u2
1170Cp	|I32	|foldEQ_utf8_flags					\
1171				|NN const char *s1			\
1172				|NULLOK char **pe1			\
1173				|UV l1					\
1174				|bool u1				\
1175				|NN const char *s2			\
1176				|NULLOK char **pe2			\
1177				|UV l2					\
1178				|bool u2				\
1179				|U32 flags
1180Adpx	|void	|forbid_outofblock_ops					\
1181				|NN OP *o				\
1182				|NN const char *blockname
1183p	|void	|force_locale_unlock
1184Cp	|void	|_force_out_malformed_utf8_message			\
1185				|NN const U8 * const p			\
1186				|NN const U8 * const e			\
1187				|const U32 flags			\
1188				|const bool die_here
1189Adfpv	|char * |form		|NN const char *pat			\
1190				|...
1191: Only used in perl.c
1192p	|void	|free_tied_hv_pool
1193Cp	|void	|free_tmps
1194ERXp	|SV *	|get_and_check_backslash_N_name 			\
1195				|NN const char *s			\
1196				|NN const char *e			\
1197				|const bool is_utf8			\
1198				|NN const char **error_msg
1199AOdp	|AV *	|get_av 	|NN const char *name			\
1200				|I32 flags
1201AOdp	|CV *	|get_cv 	|NN const char *name			\
1202				|I32 flags
1203Adp	|CV *	|get_cvn_flags	|NN const char *name			\
1204				|STRLEN len				\
1205				|I32 flags
1206Adp	|int	|getcwd_sv	|NN SV *sv
1207: Used in pp_ctl.c and pp_hot.c
1208eop	|void	|get_db_sub	|NULLOK SV **svp			\
1209				|NN CV *cv
1210ERTXp	|const char *|get_deprecated_property_msg			\
1211				|const Size_t warning_offset
1212MTp	|int	|get_extended_os_errno
1213: Only used in perl.c
1214p	|void	|get_hash_seed	|NN unsigned char * const seed_buffer
1215AOdp	|HV *	|get_hv 	|NN const char *name			\
1216				|I32 flags
1217DPRp	|const char *|get_no_modify
1218DPRp	|U32 *	|get_opargs
1219ADPRdp	|char **|get_op_descs
1220ADPRdp	|char **|get_op_names
1221CDPRp	|PPADDR_t *|get_ppaddr
1222ERXp	|SV *	|get_prop_definition					\
1223				|const int table_index
1224ERTXp	|const char * const *|get_prop_values				\
1225				|const int table_index
1226: Used by SvRX and SvRXOK
1227EXopx	|REGEXP *|get_re_arg	|NULLOK SV *sv
1228AOdp	|SV *	|get_sv 	|NN const char *name			\
1229				|I32 flags
1230CRipx	|MGVTBL *|get_vtbl	|int vtbl_id
1231Cp	|void	|gp_free	|NULLOK GV *gv
1232Cp	|GP *	|gp_ref 	|NULLOK GP *gp
1233ATdp	|bool	|grok_atoUV	|NN const char *pv			\
1234				|NN UV *valptr				\
1235				|NULLOK const char **endptr
1236AMdp	|UV	|grok_bin	|NN const char *start			\
1237				|NN STRLEN *len_p			\
1238				|NN I32 *flags				\
1239				|NULLOK NV *result
1240Cp	|UV	|grok_bin_oct_hex					\
1241				|NN const char *start			\
1242				|NN STRLEN *len_p			\
1243				|NN I32 *flags				\
1244				|NULLOK NV *result			\
1245				|const unsigned shift			\
1246				|const U8 lookup_bit			\
1247				|const char prefix
1248AMdp	|UV	|grok_hex	|NN const char *start			\
1249				|NN STRLEN *len_p			\
1250				|NN I32 *flags				\
1251				|NULLOK NV *result
1252Adp	|int	|grok_infnan	|NN const char **sp			\
1253				|NN const char *send
1254Adp	|int	|grok_number	|NN const char *pv			\
1255				|STRLEN len				\
1256				|NULLOK UV *valuep
1257Adp	|int	|grok_number_flags					\
1258				|NN const char *pv			\
1259				|STRLEN len				\
1260				|NULLOK UV *valuep			\
1261				|U32 flags
1262ARdp	|bool	|grok_numeric_radix					\
1263				|NN const char **sp			\
1264				|NN const char *send
1265AMdp	|UV	|grok_oct	|NN const char *start			\
1266				|NN STRLEN *len_p			\
1267				|NN I32 *flags				\
1268				|NULLOK NV *result
1269Adp	|GV *	|gv_add_by_type |NULLOK GV *gv				\
1270				|svtype type
1271Adp	|int	|Gv_AMupdate	|NN HV *stash				\
1272				|bool destructing
1273ARdm	|GV *	|gv_autoload4	|NULLOK HV *stash			\
1274				|NN const char *name			\
1275				|STRLEN len				\
1276				|I32 method
1277ARdp	|GV *	|gv_autoload_pv |NULLOK HV *stash			\
1278				|NN const char *namepv			\
1279				|U32 flags
1280ARdp	|GV *	|gv_autoload_pvn|NULLOK HV *stash			\
1281				|NN const char *name			\
1282				|STRLEN len				\
1283				|U32 flags
1284ARdp	|GV *	|gv_autoload_sv |NULLOK HV *stash			\
1285				|NN SV *namesv				\
1286				|U32 flags
1287AMbdp	|GV *	|gv_AVadd	|NULLOK GV *gv
1288Cp	|void	|gv_check	|NN HV *stash
1289: Used in pp.c and pp_sys.c
1290ARdp	|SV *	|gv_const_sv	|NN GV *gv
1291Adp	|void	|gv_dump	|NULLOK GV *gv
1292AMbdp	|void	|gv_efullname3	|NN SV *sv				\
1293				|NN const GV *gv			\
1294				|NULLOK const char *prefix
1295Adp	|void	|gv_efullname4	|NN SV *sv				\
1296				|NN const GV *gv			\
1297				|NULLOK const char *prefix		\
1298				|bool keepmain
1299Adp	|GV *	|gv_fetchfile	|NN const char *name
1300Adp	|GV *	|gv_fetchfile_flags					\
1301				|NN const char * const name		\
1302				|const STRLEN len			\
1303				|const U32 flags
1304Adm	|GV *	|gv_fetchmeth	|NULLOK HV *stash			\
1305				|NN const char *name			\
1306				|STRLEN len				\
1307				|I32 level
1308Adm	|GV *	|gv_fetchmeth_autoload					\
1309				|NULLOK HV *stash			\
1310				|NN const char *name			\
1311				|STRLEN len				\
1312				|I32 level
1313AMbdp	|GV *	|gv_fetchmethod |NN HV *stash				\
1314				|NN const char *name
1315Adp	|GV *	|gv_fetchmethod_autoload				\
1316				|NN HV *stash				\
1317				|NN const char *name			\
1318				|I32 autoload
1319Apx	|GV *	|gv_fetchmethod_pv_flags				\
1320				|NN HV *stash				\
1321				|NN const char *name			\
1322				|U32 flags
1323Apx	|GV *	|gv_fetchmethod_pvn_flags				\
1324				|NN HV *stash				\
1325				|NN const char *name			\
1326				|const STRLEN len			\
1327				|U32 flags
1328Apx	|GV *	|gv_fetchmethod_sv_flags				\
1329				|NN HV *stash				\
1330				|NN SV *namesv				\
1331				|U32 flags
1332Adp	|GV *	|gv_fetchmeth_pv|NULLOK HV *stash			\
1333				|NN const char *name			\
1334				|I32 level				\
1335				|U32 flags
1336Adp	|GV *	|gv_fetchmeth_pv_autoload				\
1337				|NULLOK HV *stash			\
1338				|NN const char *name			\
1339				|I32 level				\
1340				|U32 flags
1341Adp	|GV *	|gv_fetchmeth_pvn					\
1342				|NULLOK HV *stash			\
1343				|NN const char *name			\
1344				|STRLEN len				\
1345				|I32 level				\
1346				|U32 flags
1347Adp	|GV *	|gv_fetchmeth_pvn_autoload				\
1348				|NULLOK HV *stash			\
1349				|NN const char *name			\
1350				|STRLEN len				\
1351				|I32 level				\
1352				|U32 flags
1353Adp	|GV *	|gv_fetchmeth_sv|NULLOK HV *stash			\
1354				|NN SV *namesv				\
1355				|I32 level				\
1356				|U32 flags
1357Adp	|GV *	|gv_fetchmeth_sv_autoload				\
1358				|NULLOK HV *stash			\
1359				|NN SV *namesv				\
1360				|I32 level				\
1361				|U32 flags
1362Adp	|GV *	|gv_fetchpv	|NN const char *nambeg			\
1363				|I32 flags				\
1364				|const svtype sv_type
1365
1366Adp	|GV *	|gv_fetchpvn_flags					\
1367				|NN const char *name			\
1368				|STRLEN len				\
1369				|I32 flags				\
1370				|const svtype sv_type
1371Adp	|GV *	|gv_fetchsv	|NN SV *name				\
1372				|I32 flags				\
1373				|const svtype sv_type
1374AMbdp	|void	|gv_fullname3	|NN SV *sv				\
1375				|NN const GV *gv			\
1376				|NULLOK const char *prefix
1377Adp	|void	|gv_fullname4	|NN SV *sv				\
1378				|NN const GV *gv			\
1379				|NULLOK const char *prefix		\
1380				|bool keepmain
1381CRdp	|CV *	|gv_handler	|NULLOK HV *stash			\
1382				|I32 id
1383AMbdp	|GV *	|gv_HVadd	|NULLOK GV *gv
1384Adm	|void	|gv_init	|NN GV *gv				\
1385				|NULLOK HV *stash			\
1386				|NN const char *name			\
1387				|STRLEN len				\
1388				|int multi
1389Adp	|void	|gv_init_pv	|NN GV *gv				\
1390				|NULLOK HV *stash			\
1391				|NN const char *name			\
1392				|U32 flags
1393Adp	|void	|gv_init_pvn	|NN GV *gv				\
1394				|NULLOK HV *stash			\
1395				|NN const char *name			\
1396				|STRLEN len				\
1397				|U32 flags
1398Adp	|void	|gv_init_sv	|NN GV *gv				\
1399				|NULLOK HV *stash			\
1400				|NN SV *namesv				\
1401				|U32 flags
1402AMbdp	|GV *	|gv_IOadd	|NULLOK GV *gv
1403Adp	|void	|gv_name_set	|NN GV *gv				\
1404				|NN const char *name			\
1405				|U32 len				\
1406				|U32 flags
1407ep	|GV *	|gv_override	|NN const char * const name		\
1408				|const STRLEN len
1409p	|void	|gv_setref	|NN SV * const dsv			\
1410				|NN SV * const ssv
1411Adp	|HV *	|gv_stashpv	|NN const char *name			\
1412				|I32 flags
1413Adp	|HV *	|gv_stashpvn	|NN const char *name			\
1414				|U32 namelen				\
1415				|I32 flags
1416Adp	|HV *	|gv_stashsv	|NN SV *sv				\
1417				|I32 flags
1418Xdpx	|void	|gv_try_downgrade					\
1419				|NN GV *gv
1420op	|struct xpvhv_aux *|hv_auxalloc 				\
1421				|NN HV *hv
1422: Used in dump.c and hv.c
1423opx	|AV **	|hv_backreferences_p					\
1424				|NN HV *hv
1425ARdpx	|SV *	|hv_bucket_ratio|NN HV *hv
1426Adp	|void	|hv_clear	|NULLOK HV *hv
1427Adp	|void	|hv_clear_placeholders					\
1428				|NN HV *hv
1429Cp	|void * |hv_common	|NULLOK HV *hv				\
1430				|NULLOK SV *keysv			\
1431				|NULLOK const char *key 		\
1432				|STRLEN klen				\
1433				|int flags				\
1434				|int action				\
1435				|NULLOK SV *val 			\
1436				|U32 hash
1437Cp	|void * |hv_common_key_len					\
1438				|NULLOK HV *hv				\
1439				|NN const char *key			\
1440				|I32 klen_i32				\
1441				|const int action			\
1442				|NULLOK SV *val 			\
1443				|const U32 hash
1444: used in SAVEHINTS() and op.c
1445ARdp	|HV *	|hv_copy_hints_hv					\
1446				|NULLOK HV * const ohv
1447Cp	|void	|hv_delayfree_ent					\
1448				|NULLOK HV *notused			\
1449				|NULLOK HE *entry
1450AMbdp	|SV *	|hv_delete	|NULLOK HV *hv				\
1451				|NN const char *key			\
1452				|I32 klen				\
1453				|I32 flags
1454AMbdp	|SV *	|hv_delete_ent	|NULLOK HV *hv				\
1455				|NN SV *keysv				\
1456				|I32 flags				\
1457				|U32 hash
1458Adp	|void	|hv_dump	|NULLOK HV *hv
1459CRdop	|HE **	|hv_eiter_p	|NN HV *hv
1460Cdop	|void	|hv_eiter_set	|NN HV *hv				\
1461				|NULLOK HE *eiter
1462dp	|void	|hv_ename_add	|NN HV *hv				\
1463				|NN const char *name			\
1464				|U32 len				\
1465				|U32 flags
1466dp	|void	|hv_ename_delete|NN HV *hv				\
1467				|NN const char *name			\
1468				|U32 len				\
1469				|U32 flags
1470AMRbdp	|bool	|hv_exists	|NULLOK HV *hv				\
1471				|NN const char *key			\
1472				|I32 klen
1473AMRbdp	|bool	|hv_exists_ent	|NULLOK HV *hv				\
1474				|NN SV *keysv				\
1475				|U32 hash
1476AMbdp	|SV **	|hv_fetch	|NULLOK HV *hv				\
1477				|NN const char *key			\
1478				|I32 klen				\
1479				|I32 lval
1480AMbdp	|HE *	|hv_fetch_ent	|NULLOK HV *hv				\
1481				|NN SV *keysv				\
1482				|I32 lval				\
1483				|U32 hash
1484Cdop	|STRLEN |hv_fill	|NN HV * const hv
1485Cp	|void	|hv_free_ent	|NULLOK HV *notused			\
1486				|NULLOK HE *entry
1487Adp	|I32	|hv_iterinit	|NN HV *hv
1488ARdp	|char * |hv_iterkey	|NN HE *entry				\
1489				|NN I32 *retlen
1490ARdp	|SV *	|hv_iterkeysv	|NN HE *entry
1491AMRbdp	|HE *	|hv_iternext	|NN HV *hv
1492ARdpx	|HE *	|hv_iternext_flags					\
1493				|NN HV *hv				\
1494				|I32 flags
1495ARdp	|SV *	|hv_iternextsv	|NN HV *hv				\
1496				|NN char **key				\
1497				|NN I32 *retlen
1498ARdp	|SV *	|hv_iterval	|NN HV *hv				\
1499				|NN HE *entry
1500Adp	|void	|hv_ksplit	|NN HV *hv				\
1501				|IV newmax
1502AMbdp	|void	|hv_magic	|NN HV *hv				\
1503				|NULLOK GV *gv				\
1504				|int how
1505Adp	|void	|hv_name_set	|NN HV *hv				\
1506				|NULLOK const char *name		\
1507				|U32 len				\
1508				|U32 flags
1509CRdop	|I32	|hv_placeholders_get					\
1510				|NN const HV *hv
1511RXop	|SSize_t *|hv_placeholders_p					\
1512				|NN HV *hv
1513Cdop	|void	|hv_placeholders_set					\
1514				|NN HV *hv				\
1515				|I32 ph
1516p	|void	|hv_pushkv	|NN HV *hv				\
1517				|U32 flags
1518Cp	|void	|hv_rand_set	|NN HV *hv				\
1519				|U32 new_xhv_rand
1520CRdop	|I32 *	|hv_riter_p	|NN HV *hv
1521Cdop	|void	|hv_riter_set	|NN HV *hv				\
1522				|I32 riter
1523
1524ARdp	|SV *	|hv_scalar	|NN HV *hv
1525AMbdp	|SV **	|hv_store	|NULLOK HV *hv				\
1526				|NULLOK const char *key 		\
1527				|I32 klen				\
1528				|NULLOK SV *val 			\
1529				|U32 hash
1530AMbdp	|HE *	|hv_store_ent	|NULLOK HV *hv				\
1531				|NULLOK SV *key 			\
1532				|NULLOK SV *val 			\
1533				|U32 hash
1534AMbpx	|SV **	|hv_store_flags |NULLOK HV *hv				\
1535				|NULLOK const char *key 		\
1536				|I32 klen				\
1537				|NULLOK SV *val 			\
1538				|U32 hash				\
1539				|int flags
1540Adm	|SV **	|hv_stores	|NULLOK HV *hv				\
1541				|"key"					\
1542				|NULLOK SV *val
1543Adm	|void	|hv_undef	|NULLOK HV *hv
1544Xop	|void	|hv_undef_flags |NULLOK HV *hv				\
1545				|U32 flags
1546APdm	|I32	|ibcmp		|NN const char *a			\
1547				|NN const char *b			\
1548				|I32 len
1549APdm	|I32	|ibcmp_locale	|NN const char *a			\
1550				|NN const char *b			\
1551				|I32 len
1552Adm	|I32	|ibcmp_utf8	|NN const char *s1			\
1553				|NULLOK char **pe1			\
1554				|UV l1					\
1555				|bool u1				\
1556				|NN const char *s2			\
1557				|NULLOK char **pe2			\
1558				|UV l2					\
1559				|bool u2
1560
1561eop	|STRLEN |infix_plugin_standard					\
1562				|NN char *operator_ptr			\
1563				|STRLEN operator_len			\
1564				|NN struct Perl_custom_infix **def
1565: Used in toke.c
1566p	|void	|init_argv_symbols					\
1567				|int argc				\
1568				|NN char **argv
1569p	|void	|init_constants
1570: Used in pp_ctl.c
1571op	|void	|init_dbargs
1572: Used in mg.c
1573p	|void	|init_debugger
1574COp	|int	|init_i18nl10n	|int printwarn
1575Xp	|void	|init_named_cv	|NN CV *cv				\
1576				|NN OP *nameop
1577Cp	|void	|init_stacks
1578Cp	|void	|init_tm	|NN struct tm *ptm
1579p	|void	|init_uniprops
1580: Used in perly.y
1581AMPRTbdp|char * |instr		|NN const char *big			\
1582				|NN const char *little
1583Adp	|U32	|intro_my
1584ERXp	|Size_t |_inverse_folds |const UV cp				\
1585				|NN U32 *first_folds_to 		\
1586				|NN const U32 **remaining_folds_to
1587: Used in perly.y
1588Rp	|OP *	|invert 	|NULLOK OP *cmd
1589p	|void	|invmap_dump	|NN SV *invlist 			\
1590				|NN UV *map
1591: Used in sv.c
1592p	|bool	|io_close	|NN IO *io				\
1593				|NULLOK GV *gv				\
1594				|bool is_explicit			\
1595				|bool warn_on_fail
1596APRTdm	|bool	|is_ascii_string|NN const U8 * const s			\
1597				|STRLEN len
1598ARTdip	|Size_t |isC9_STRICT_UTF8_CHAR					\
1599				|NN const U8 * const s0 		\
1600				|NN const U8 * const e
1601ARTdm	|bool	|is_c9strict_utf8_string				\
1602				|NN const U8 *s 			\
1603				|STRLEN len
1604ATdm	|bool	|is_c9strict_utf8_string_loc				\
1605				|NN const U8 *s 			\
1606				|STRLEN len				\
1607				|NN const U8 **ep
1608ATdip	|bool	|is_c9strict_utf8_string_loclen 			\
1609				|NN const U8 *s 			\
1610				|STRLEN len				\
1611				|NULLOK const U8 **ep			\
1612				|NULLOK STRLEN *el
1613
1614APTdp	|bool	|isinfnan	|NV nv
1615dp	|bool	|isinfnansv	|NN SV *sv
1616Cp	|bool	|_is_in_locale_category 				\
1617				|const bool compiling			\
1618				|const int category
1619APRTdm	|bool	|is_invariant_string					\
1620				|NN const U8 * const s			\
1621				|STRLEN len
1622ARdp	|I32	|is_lvalue_sub
1623: used to check for NULs in pathnames and other names
1624ARdip	|bool	|is_safe_syscall|NN const char *pv			\
1625				|STRLEN len				\
1626				|NN const char *what			\
1627				|NN const char *op_name
1628ARTdip	|Size_t |isSTRICT_UTF8_CHAR					\
1629				|NN const U8 * const s0 		\
1630				|NN const U8 * const e
1631ARTdm	|bool	|is_strict_utf8_string					\
1632				|NN const U8 *s 			\
1633				|STRLEN len
1634ATdm	|bool	|is_strict_utf8_string_loc				\
1635				|NN const U8 *s 			\
1636				|STRLEN len				\
1637				|NN const U8 **ep
1638ATdip	|bool	|is_strict_utf8_string_loclen				\
1639				|NN const U8 *s 			\
1640				|STRLEN len				\
1641				|NULLOK const U8 **ep			\
1642				|NULLOK STRLEN *el
1643CRp	|bool	|_is_uni_FOO	|const U8 classnum			\
1644				|const UV c
1645CRp	|bool	|_is_uni_perl_idcont					\
1646				|UV c
1647CRp	|bool	|_is_uni_perl_idstart					\
1648				|UV c
1649ARTdip	|Size_t |isUTF8_CHAR	|NN const U8 * const s0 		\
1650				|NN const U8 * const e
1651AMTbdp	|STRLEN |is_utf8_char_buf					\
1652				|NN const U8 *buf			\
1653				|NN const U8 *buf_end
1654ARTdip	|Size_t |isUTF8_CHAR_flags					\
1655				|NN const U8 * const s0 		\
1656				|NN const U8 * const e			\
1657				|const U32 flags
1658CPRTp	|STRLEN |is_utf8_char_helper_					\
1659				|NN const U8 * const s			\
1660				|NN const U8 *e 			\
1661				|const U32 flags
1662CPRTp	|Size_t |is_utf8_FF_helper_					\
1663				|NN const U8 * const s0 		\
1664				|NN const U8 * const e			\
1665				|const bool require_partial
1666ATdm	|bool	|is_utf8_fixed_width_buf_flags				\
1667				|NN const U8 * const s			\
1668				|STRLEN len				\
1669				|const U32 flags
1670ATdm	|bool	|is_utf8_fixed_width_buf_loc_flags			\
1671				|NN const U8 * const s			\
1672				|STRLEN len				\
1673				|NULLOK const U8 **ep			\
1674				|const U32 flags
1675ATdip	|bool	|is_utf8_fixed_width_buf_loclen_flags			\
1676				|NN const U8 * const s			\
1677				|STRLEN len				\
1678				|NULLOK const U8 **ep			\
1679				|NULLOK STRLEN *el			\
1680				|const U32 flags
1681CRp	|bool	|_is_utf8_FOO	|const U8 classnum			\
1682				|NN const U8 *p 			\
1683				|NN const U8 * const e
1684ARTdmo	|bool	|is_utf8_invariant_string				\
1685				|NN const U8 * const s			\
1686				|STRLEN len
1687ARTdip	|bool	|is_utf8_invariant_string_loc				\
1688				|NN const U8 * const s			\
1689				|STRLEN len				\
1690				|NULLOK const U8 **ep
1691CRp	|bool	|_is_utf8_perl_idcont					\
1692				|NN const U8 *p 			\
1693				|NN const U8 * const e
1694CRp	|bool	|_is_utf8_perl_idstart					\
1695				|NN const U8 *p 			\
1696				|NN const U8 * const e
1697ARTdm	|bool	|is_utf8_string |NN const U8 *s 			\
1698				|STRLEN len
1699ARTdip	|bool	|is_utf8_string_flags					\
1700				|NN const U8 *s 			\
1701				|STRLEN len				\
1702				|const U32 flags
1703AMTbdp	|bool	|is_utf8_string_loc					\
1704				|NN const U8 *s 			\
1705				|const STRLEN len			\
1706				|NN const U8 **ep
1707ATdm	|bool	|is_utf8_string_loc_flags				\
1708				|NN const U8 *s 			\
1709				|STRLEN len				\
1710				|NN const U8 **ep			\
1711				|const U32 flags
1712ATdip	|bool	|is_utf8_string_loclen					\
1713				|NN const U8 *s 			\
1714				|STRLEN len				\
1715				|NULLOK const U8 **ep			\
1716				|NULLOK STRLEN *el
1717ATdip	|bool	|is_utf8_string_loclen_flags				\
1718				|NN const U8 *s 			\
1719				|STRLEN len				\
1720				|NULLOK const U8 **ep			\
1721				|NULLOK STRLEN *el			\
1722				|const U32 flags
1723APTdm	|bool	|is_utf8_valid_partial_char				\
1724				|NN const U8 * const s0 		\
1725				|NN const U8 * const e
1726ARTdip	|bool	|is_utf8_valid_partial_char_flags			\
1727				|NN const U8 * const s0 		\
1728				|NN const U8 * const e			\
1729				|const U32 flags
1730
1731: Used in perly.y
1732p	|OP *	|jmaybe 	|NN OP *o
1733: Used in pp.c
1734Pp	|I32	|keyword	|NN const char *name			\
1735				|I32 len				\
1736				|bool all_keywords
1737
1738eop	|int	|keyword_plugin_standard				\
1739				|NN char *keyword_ptr			\
1740				|STRLEN keyword_len			\
1741				|NN OP **op_ptr
1742
1743Apx	|void	|leave_adjust_stacks					\
1744				|NN SV **from_sp			\
1745				|NN SV **to_sp				\
1746				|U8 gimme				\
1747				|int filter
1748Cdp	|void	|leave_scope	|I32 base
1749Adpx	|bool	|lex_bufutf8
1750Adpx	|void	|lex_discard_to |NN char *ptr
1751Adpx	|char * |lex_grow_linestr					\
1752				|STRLEN len
1753Adpx	|bool	|lex_next_chunk |U32 flags
1754Adpx	|I32	|lex_peek_unichar					\
1755				|U32 flags
1756Adpx	|void	|lex_read_space |U32 flags
1757Adpx	|void	|lex_read_to	|NN char *ptr
1758Adpx	|I32	|lex_read_unichar					\
1759				|U32 flags
1760: Public lexer API
1761Adpx	|void	|lex_start	|NULLOK SV *line			\
1762				|NULLOK PerlIO *rsfp			\
1763				|U32 flags
1764Adpx	|void	|lex_stuff_pv	|NN const char *pv			\
1765				|U32 flags
1766Adpx	|void	|lex_stuff_pvn	|NN const char *pv			\
1767				|STRLEN len				\
1768				|U32 flags
1769Adpx	|void	|lex_stuff_sv	|NN SV *sv				\
1770				|U32 flags
1771Adpx	|void	|lex_unstuff	|NN char *ptr
1772p	|OP *	|list		|NULLOK OP *o
1773ERXp	|HV *	|load_charnames |NN SV *char_name			\
1774				|NN const char *context 		\
1775				|const STRLEN context_len		\
1776				|NN const char **error_msg
1777AFdpv	|void	|load_module	|U32 flags				\
1778				|NN SV *name				\
1779				|NULLOK SV *ver 			\
1780				|...
1781CTopr	|void	|locale_panic	|NN const char *msg				\
1782				|const line_t immediate_caller_line		\
1783				|NN const char * const higher_caller_file	\
1784				|const line_t higher_caller_line
1785: Used in perly.y
1786p	|OP *	|localize	|NN OP *o				\
1787				|I32 lex
1788ARdp	|I32	|looks_like_number					\
1789				|NN SV * const sv
1790CRTip	|unsigned|lsbit_pos32	|U32 word
1791p	|int	|magic_clear_all_env					\
1792				|NN SV *sv				\
1793				|NN MAGIC *mg
1794p	|int	|magic_cleararylen_p					\
1795				|NN SV *sv				\
1796				|NN MAGIC *mg
1797: These are all indirectly referenced by globals.c. This is somewhat annoying.
1798p	|int	|magic_clearenv |NN SV *sv				\
1799				|NN MAGIC *mg
1800dp	|int	|magic_clearhint|NN SV *sv				\
1801				|NN MAGIC *mg
1802dp	|int	|magic_clearhints					\
1803				|NN SV *sv				\
1804				|NN MAGIC *mg
1805p	|int	|magic_clearhook|NULLOK SV *sv				\
1806				|NN MAGIC *mg
1807p	|int	|magic_clearhookall					\
1808				|NULLOK SV *sv				\
1809				|NN MAGIC *mg
1810p	|int	|magic_clearisa |NULLOK SV *sv				\
1811				|NN MAGIC *mg
1812p	|int	|magic_clearpack|NN SV *sv				\
1813				|NN MAGIC *mg
1814p	|int	|magic_clearsig |NN SV *sv				\
1815				|NN MAGIC *mg
1816p	|int	|magic_copycallchecker					\
1817				|NN SV *sv				\
1818				|NN MAGIC *mg				\
1819				|NN SV *nsv				\
1820				|NULLOK const char *name		\
1821				|I32 namlen
1822Adp	|void	|magic_dump	|NULLOK const MAGIC *mg
1823p	|int	|magic_existspack					\
1824				|NN SV *sv				\
1825				|NN const MAGIC *mg
1826p	|int	|magic_freearylen_p					\
1827				|NN SV *sv				\
1828				|NN MAGIC *mg
1829dp	|int	|magic_freedestruct					\
1830				|NN SV *sv				\
1831				|NN MAGIC *mg
1832p	|int	|magic_freemglob|NN SV *sv				\
1833				|NN MAGIC *mg
1834p	|int	|magic_freeovrld|NN SV *sv				\
1835				|NN MAGIC *mg
1836p	|int	|magic_freeutf8 |NN SV *sv				\
1837				|NN MAGIC *mg
1838p	|int	|magic_get	|NN SV *sv				\
1839				|NN MAGIC *mg
1840p	|int	|magic_getarylen|NN SV *sv				\
1841				|NN const MAGIC *mg
1842p	|int	|magic_getdebugvar					\
1843				|NN SV *sv				\
1844				|NN MAGIC *mg
1845p	|int	|magic_getdefelem					\
1846				|NN SV *sv				\
1847				|NN MAGIC *mg
1848p	|int	|magic_getnkeys |NN SV *sv				\
1849				|NN MAGIC *mg
1850p	|int	|magic_getpack	|NN SV *sv				\
1851				|NN MAGIC *mg
1852p	|int	|magic_getpos	|NN SV *sv				\
1853				|NN MAGIC *mg
1854p	|int	|magic_getsig	|NN SV *sv				\
1855				|NN MAGIC *mg
1856p	|int	|magic_getsubstr|NN SV *sv				\
1857				|NN MAGIC *mg
1858p	|int	|magic_gettaint |NN SV *sv				\
1859				|NN MAGIC *mg
1860p	|int	|magic_getuvar	|NN SV *sv				\
1861				|NN MAGIC *mg
1862p	|int	|magic_getvec	|NN SV *sv				\
1863				|NN MAGIC *mg
1864: This is indirectly referenced by globals.c. This is somewhat annoying.
1865p	|int	|magic_killbackrefs					\
1866				|NN SV *sv				\
1867				|NN MAGIC *mg
1868Fdopv	|SV *	|magic_methcall |NN SV *sv				\
1869				|NN const MAGIC *mg			\
1870				|NN SV *meth				\
1871				|U32 flags				\
1872				|U32 argc				\
1873				|...
1874p	|int	|magic_nextpack |NN SV *sv				\
1875				|NN MAGIC *mg				\
1876				|NN SV *key
1877p	|U32	|magic_regdata_cnt					\
1878				|NN SV *sv				\
1879				|NN MAGIC *mg
1880p	|int	|magic_regdatum_get					\
1881				|NN SV *sv				\
1882				|NN MAGIC *mg
1883
1884: This is indirectly referenced by globals.c. This is somewhat annoying.
1885p	|SV *	|magic_scalarpack					\
1886				|NN HV *hv				\
1887				|NN MAGIC *mg
1888:removing noreturn to silence a warning for this function resulted in no
1889:change to the interpreter DLL image under VS 2003 -O1 -GL 32 bits only because
1890:this is used in a magic vtable, do not use this on conventionally called funcs
1891p	|int	|magic_set	|NN SV *sv				\
1892				|NN MAGIC *mg
1893p	|int	|magic_set_all_env					\
1894				|NN SV *sv				\
1895				|NN MAGIC *mg
1896p	|int	|magic_setarylen|NN SV *sv				\
1897				|NN MAGIC *mg
1898p	|int	|magic_setdbline|NN SV *sv				\
1899				|NN MAGIC *mg
1900p	|int	|magic_setdebugvar					\
1901				|NN SV *sv				\
1902				|NN MAGIC *mg
1903p	|int	|magic_setdefelem					\
1904				|NN SV *sv				\
1905				|NN MAGIC *mg
1906p	|int	|magic_setenv	|NN SV *sv				\
1907				|NN MAGIC *mg
1908dp	|int	|magic_sethint	|NN SV *sv				\
1909				|NN MAGIC *mg
1910p	|int	|magic_sethook	|NULLOK SV *sv				\
1911				|NN MAGIC *mg
1912p	|int	|magic_sethookall					\
1913				|NN SV *sv				\
1914				|NN MAGIC *mg
1915p	|int	|magic_setisa	|NN SV *sv				\
1916				|NN MAGIC *mg
1917p	|int	|magic_setlvref |NN SV *sv				\
1918				|NN MAGIC *mg
1919p	|int	|magic_setmglob |NN SV *sv				\
1920				|NN MAGIC *mg
1921p	|int	|magic_setnkeys |NN SV *sv				\
1922				|NN MAGIC *mg
1923p	|int	|magic_setnonelem					\
1924				|NN SV *sv				\
1925				|NN MAGIC *mg
1926p	|int	|magic_setpack	|NN SV *sv				\
1927				|NN MAGIC *mg
1928p	|int	|magic_setpos	|NN SV *sv				\
1929				|NN MAGIC *mg
1930p	|int	|magic_setregexp|NN SV *sv				\
1931				|NN MAGIC *mg
1932p	|int	|magic_setsig	|NULLOK SV *sv				\
1933				|NN MAGIC *mg
1934p	|int	|magic_setsigall|NN SV *sv				\
1935				|NN MAGIC *mg
1936p	|int	|magic_setsubstr|NN SV *sv				\
1937				|NN MAGIC *mg
1938p	|int	|magic_settaint |NN SV *sv				\
1939				|NN MAGIC *mg
1940p	|int	|magic_setutf8	|NN SV *sv				\
1941				|NN MAGIC *mg
1942p	|int	|magic_setuvar	|NN SV *sv				\
1943				|NN MAGIC *mg
1944p	|int	|magic_setvec	|NN SV *sv				\
1945				|NN MAGIC *mg
1946p	|U32	|magic_sizepack |NN SV *sv				\
1947				|NN MAGIC *mg
1948p	|int	|magic_wipepack |NN SV *sv				\
1949				|NN MAGIC *mg
1950
1951CTadop	|Malloc_t|malloc	|MEM_SIZE nbytes
1952Cp	|Stack_off_t *|markstack_grow
1953EXp	|int	|mbtowc_	|NULLOK const wchar_t *pwc		\
1954				|NULLOK const char *s			\
1955				|const Size_t len
1956Adfpv	|SV *	|mess		|NN const char *pat			\
1957				|...
1958Adp	|SV *	|mess_sv	|NN SV *basemsg 			\
1959				|bool consume
1960CTdop	|Free_t |mfree		|Malloc_t where
1961Adp	|int	|mg_clear	|NN SV *sv
1962Adp	|int	|mg_copy	|NN SV *sv				\
1963				|NN SV *nsv				\
1964				|NULLOK const char *key 		\
1965				|I32 klen
1966ARTdp	|MAGIC *|mg_find	|NULLOK const SV *sv			\
1967				|int type
1968ARTdp	|MAGIC *|mg_findext	|NULLOK const SV *sv			\
1969				|int type				\
1970				|NULLOK const MGVTBL *vtbl
1971: exported for re.pm
1972ERXp	|MAGIC *|mg_find_mglob	|NN SV *sv
1973Adp	|int	|mg_free	|NN SV *sv
1974Adp	|void	|mg_freeext	|NN SV *sv				\
1975				|int how				\
1976				|NULLOK const MGVTBL *vtbl
1977Adp	|void	|mg_free_type	|NN SV *sv				\
1978				|int how
1979Adp	|int	|mg_get 	|NN SV *sv
1980: Defined in mg.c, used only in scope.c
1981dp	|void	|mg_localize	|NN SV *sv				\
1982				|NN SV *nsv				\
1983				|bool setmagic
1984ATdp	|void	|mg_magical	|NN SV *sv
1985Adp	|int	|mg_set 	|NN SV *sv
1986Cp	|I32	|mg_size	|NN SV *sv
1987ATdp	|void	|mini_mktime	|NN struct tm *ptm
1988: Used in op.c and pp_sys.c
1989p	|int	|mode_from_discipline					\
1990				|NULLOK const char *s			\
1991				|STRLEN len
1992
1993: Used in sv.c and hv.c
1994Cop	|void * |more_bodies	|const svtype sv_type			\
1995				|const size_t body_size 		\
1996				|const size_t arena_size
1997Cp	|const char *|moreswitches					\
1998				|NN const char *s
1999Adp	|void	|mortal_destructor_sv					\
2000				|NN SV *coderef 			\
2001				|NULLOK SV *args
2002CRTXip	|char * |mortal_getenv	|NN const char *str
2003Cdp	|void	|mortal_svfunc_x|SVFUNC_t f				\
2004				|NULLOK SV *p
2005Adop	|const struct mro_alg *|mro_get_from_name			\
2006				|NN SV *name
2007Adp	|AV *	|mro_get_linear_isa					\
2008				|NN HV *stash
2009
2010Chop	|SV *	|mro_get_private_data					\
2011				|NN struct mro_meta * const smeta	\
2012				|NN const struct mro_alg * const which
2013: Used in hv.c, mg.c, pp.c, sv.c
2014dp	|void	|mro_isa_changed_in					\
2015				|NN HV *stash
2016: Used in HvMROMETA(), which is public.
2017Xop	|struct mro_meta *|mro_meta_init				\
2018				|NN HV *stash
2019Adp	|void	|mro_method_changed_in					\
2020				|NN HV *stash
2021dep	|void	|mro_package_moved					\
2022				|NULLOK HV * const stash		\
2023				|NULLOK HV * const oldstash		\
2024				|NN const GV * const gv 		\
2025				|U32 flags
2026Adop	|void	|mro_register	|NN const struct mro_alg *mro
2027Adop	|void	|mro_set_mro	|NN struct mro_meta * const meta	\
2028				|NN SV * const name
2029Adhop	|SV *	|mro_set_private_data					\
2030				|NN struct mro_meta * const smeta	\
2031				|NN const struct mro_alg * const which	\
2032				|NN SV * const data
2033CRTip	|unsigned|msbit_pos32	|U32 word
2034EXp	|SV *	|multiconcat_stringify					\
2035				|NN const OP *o
2036EXp	|SV *	|multideref_stringify					\
2037				|NN const OP *o 			\
2038				|NULLOK CV *cv
2039Adp	|NV	|my_atof	|NN const char *s
2040Cop	|char * |my_atof2	|NN const char *orig			\
2041				|NN NV *value
2042Cp	|char * |my_atof3	|NN const char *orig			\
2043				|NN NV *value				\
2044				|const STRLEN len
2045: Used in perly.y
2046p	|OP *	|my_attrs	|NN OP *o				\
2047				|NULLOK OP *attrs
2048
2049: Used in mg.c, sv.c
2050ep	|void	|my_clearenv
2051ATdp	|int	|my_dirfd	|NULLOK DIR *dir
2052Adpr	|void	|my_exit	|U32 status
2053Adpr	|void	|my_failure_exit
2054Cdp	|I32	|my_fflush_all
2055CTdp	|Pid_t	|my_fork
2056m	|I32	|my_lstat
2057Xp	|I32	|my_lstat_flags |NULLOK const U32 flags
2058RTop	|int	|my_mkostemp_cloexec					\
2059				|NN char *templte			\
2060				|int flags
2061RTop	|int	|my_mkstemp_cloexec					\
2062				|NN char *templte
2063Cdp	|PerlIO *|my_popen_list |NN const char *mode			\
2064				|int n					\
2065				|NN SV **args
2066Adp	|void	|my_setenv	|NULLOK const char *nam 		\
2067				|NULLOK const char *val
2068
2069AMTdfpv |int	|my_snprintf	|NN char *buffer			\
2070				|const Size_t len			\
2071				|NN const char *format			\
2072				|...
2073CTdp	|int	|my_socketpair	|int family				\
2074				|int type				\
2075				|int protocol				\
2076				|int fd[2]
2077m	|I32	|my_stat
2078Xp	|I32	|my_stat_flags	|NULLOK const U32 flags
2079p	|const char *|my_strerror					\
2080				|const int errnum			\
2081				|NN utf8ness_t *utf8ness
2082Adfp	|char * |my_strftime	|NN const char *fmt			\
2083				|int sec				\
2084				|int min				\
2085				|int hour				\
2086				|int mday				\
2087				|int mon				\
2088				|int year				\
2089				|int wday				\
2090				|int yday				\
2091				|int isdst
2092ARTdp	|NV	|my_strtod	|NN const char * const s		\
2093				|NULLOK char **e
2094: Used in pp_ctl.c
2095p	|void	|my_unexec
2096AMTdp	|int	|my_vsnprintf	|NN char *buffer			\
2097				|const Size_t len			\
2098				|NN const char *format			\
2099				|va_list ap
2100Adp	|OP *	|newANONATTRSUB |I32 floor				\
2101				|NULLOK OP *proto			\
2102				|NULLOK OP *attrs			\
2103				|NULLOK OP *block
2104ARdp	|OP *	|newANONHASH	|NULLOK OP *o
2105ARdp	|OP *	|newANONLIST	|NULLOK OP *o
2106Adp	|OP *	|newANONSUB	|I32 floor				\
2107				|NULLOK OP *proto			\
2108				|NULLOK OP *block
2109ARdp	|OP *	|newARGDEFELEMOP|I32 flags				\
2110				|NN OP *expr				\
2111				|I32 argindex
2112ARdp	|OP *	|newASSIGNOP	|I32 flags				\
2113				|NULLOK OP *left			\
2114				|I32 optype				\
2115				|NULLOK OP *right
2116Adm	|CV *	|newATTRSUB	|I32 floor				\
2117				|NULLOK OP *o				\
2118				|NULLOK OP *proto			\
2119				|NULLOK OP *attrs			\
2120				|NULLOK OP *block
2121Xdp	|CV *	|newATTRSUB_x	|I32 floor				\
2122				|NULLOK OP *o				\
2123				|NULLOK OP *proto			\
2124				|NULLOK OP *attrs			\
2125				|NULLOK OP *block			\
2126				|bool o_is_gv
2127AMRbdp	|AV *	|newAV
2128ARdm	|AV *	|newAV_alloc_x	|SSize_t size
2129ARdm	|AV *	|newAV_alloc_xz |SSize_t size
2130ARdp	|AV *	|newAVav	|NULLOK AV *oav
2131ARdp	|AV *	|newAVhv	|NULLOK HV *ohv
2132ARdm	|AV *	|newAV_mortal
2133ARdp	|OP *	|newAVREF	|NN OP *o
2134ARdp	|OP *	|newBINOP	|I32 type				\
2135				|I32 flags				\
2136				|NULLOK OP *first			\
2137				|NULLOK OP *last
2138ARdp	|OP *	|newCONDOP	|I32 flags				\
2139				|NN OP *first				\
2140				|NULLOK OP *trueop			\
2141				|NULLOK OP *falseop
2142Adp	|CV *	|newCONSTSUB	|NULLOK HV *stash			\
2143				|NULLOK const char *name		\
2144				|NULLOK SV *sv
2145Adp	|CV *	|newCONSTSUB_flags					\
2146				|NULLOK HV *stash			\
2147				|NULLOK const char *name		\
2148				|STRLEN len				\
2149				|U32 flags				\
2150				|NULLOK SV *sv
2151ARdp	|OP *	|newCVREF	|I32 flags				\
2152				|NULLOK OP *o
2153ARdpx	|OP *	|newDEFEROP	|I32 flags				\
2154				|NN OP *block
2155ARdp	|OP *	|newDEFSVOP
2156Cp	|void	|newFORM	|I32 floor				\
2157				|NULLOK OP *o				\
2158				|NULLOK OP *block
2159ARdp	|OP *	|newFOROP	|I32 flags				\
2160				|NULLOK OP *sv				\
2161				|NN OP *expr				\
2162				|NULLOK OP *block			\
2163				|NULLOK OP *cont
2164ARdp	|OP *	|newGIVENOP	|NN OP *cond				\
2165				|NN OP *block				\
2166				|PADOFFSET defsv_off
2167: Used in scope.c
2168eopx	|GP *	|newGP		|NN GV * const gv
2169Adm	|GV *	|newGVgen	|NN const char *pack
2170ARdp	|GV *	|newGVgen_flags |NN const char *pack			\
2171				|U32 flags
2172ARdp	|OP *	|newGVOP	|I32 type				\
2173				|I32 flags				\
2174				|NN GV *gv
2175ARdp	|OP *	|newGVREF	|I32 type				\
2176				|NULLOK OP *o
2177AMRbdp	|HV *	|newHV
2178ARdp	|HV *	|newHVhv	|NULLOK HV *hv
2179ARdp	|OP *	|newHVREF	|NN OP *o
2180AMRbdp	|IO *	|newIO
2181ARdp	|OP *	|newLISTOP	|I32 type				\
2182				|I32 flags				\
2183				|NULLOK OP *first			\
2184				|NULLOK OP *last
2185AFRdp	|OP *	|newLISTOPn	|I32 type				\
2186				|I32 flags				\
2187				|...
2188ARdp	|OP *	|newLOGOP	|I32 optype				\
2189				|I32 flags				\
2190				|NN OP *first				\
2191				|NN OP *other
2192ARdp	|OP *	|newLOOPEX	|I32 type				\
2193				|NN OP *label
2194ARdp	|OP *	|newLOOPOP	|I32 flags				\
2195				|I32 debuggable 			\
2196				|NN OP *expr				\
2197				|NULLOK OP *block
2198ARdp	|OP *	|newMETHOP	|I32 type				\
2199				|I32 flags				\
2200				|NN OP *dynamic_meth
2201ARdp	|OP *	|newMETHOP_named|I32 type				\
2202				|I32 flags				\
2203				|NN SV * const_meth
2204Cdp	|CV *	|newMYSUB	|I32 floor				\
2205				|NN OP *o				\
2206				|NULLOK OP *proto			\
2207				|NULLOK OP *attrs			\
2208				|NULLOK OP *block
2209ARdp	|OP *	|newNULLLIST
2210ARdp	|OP *	|newOP		|I32 optype				\
2211				|I32 flags
2212ARTdpx	|PADNAMELIST *|newPADNAMELIST					\
2213				|size_t max
2214ARTdpx	|PADNAME *|newPADNAMEouter					\
2215				|NN PADNAME *outer
2216ARTdpx	|PADNAME *|newPADNAMEpvn|NN const char *s			\
2217				|STRLEN len
2218ARdip	|OP *	|newPADxVOP	|I32 type				\
2219				|I32 flags				\
2220				|PADOFFSET padix
2221ARdp	|OP *	|newPMOP	|I32 type				\
2222				|I32 flags
2223Cp	|void	|newPROG	|NN OP *o
2224ARdp	|OP *	|newPVOP	|I32 type				\
2225				|I32 flags				\
2226				|NULLOK char *pv
2227ARdp	|OP *	|newRANGE	|I32 flags				\
2228				|NN OP *left				\
2229				|NN OP *right
2230ARdp	|SV *	|newRV		|NN SV * const sv
2231ARdip	|SV *	|newRV_noinc	|NN SV * const tmpRef
2232ARdp	|OP *	|newSLICEOP	|I32 flags				\
2233				|NULLOK OP *subscript			\
2234				|NULLOK OP *listop
2235CRp	|PERL_SI *|new_stackinfo|I32 stitems				\
2236				|I32 cxitems
2237CRp	|PERL_SI *|new_stackinfo_flags					\
2238				|I32 stitems				\
2239				|I32 cxitems				\
2240				|UV flags
2241ARdp	|OP *	|newSTATEOP	|I32 flags				\
2242				|NULLOK char *label			\
2243				|NULLOK OP *o
2244p	|CV *	|newSTUB	|NN GV *gv				\
2245				|bool fake
2246AMbdp	|CV *	|newSUB 	|I32 floor				\
2247				|NULLOK OP *o				\
2248				|NULLOK OP *proto			\
2249				|NULLOK OP *block
2250ARdp	|SV *	|newSV		|const STRLEN len
2251Rp	|SV *	|newSVavdefelem |NN AV *av				\
2252				|SSize_t ix				\
2253				|bool extendible
2254ARdp	|SV *	|newSVbool	|const bool bool_val
2255ARdp	|SV *	|newSV_false
2256ARdp	|SV *	|newSVhek	|NULLOK const HEK * const hek
2257ARdp	|SV *	|newSVhek_mortal|NULLOK const HEK * const hek
2258ARdp	|SV *	|newSViv	|const IV i
2259ARdp	|SV *	|newSVnv	|const NV n
2260ARdp	|OP *	|newSVOP	|I32 type				\
2261				|I32 flags				\
2262				|NN SV *sv
2263ARdp	|SV *	|newSVpv	|NULLOK const char * const s		\
2264				|const STRLEN len
2265ARdfpv	|SV *	|newSVpvf	|NN const char * const pat		\
2266				|...
2267ARdp	|SV *	|newSVpvn	|NULLOK const char * const buffer	\
2268				|const STRLEN len
2269ARdp	|SV *	|newSVpvn_flags |NULLOK const char * const s		\
2270				|const STRLEN len			\
2271				|const U32 flags
2272ARdp	|SV *	|newSVpvn_share |NULLOK const char *s			\
2273				|I32 len				\
2274				|U32 hash
2275ARdp	|SV *	|newSVpv_share	|NULLOK const char *s			\
2276				|U32 hash
2277ARdp	|OP *	|newSVREF	|NN OP *o
2278Adp	|SV *	|newSVrv	|NN SV * const rv			\
2279				|NULLOK const char * const classname
2280AMRbdp	|SV *	|newSVsv	|NULLOK SV * const old
2281ARdp	|SV *	|newSVsv_flags	|NULLOK SV * const old			\
2282				|I32 flags
2283ARdm	|SV *	|newSVsv_nomg	|NULLOK SV * const old
2284ARdp	|SV *	|newSV_true
2285ARdip	|SV *	|newSV_type	|const svtype type
2286AIRdp	|SV *	|newSV_type_mortal					\
2287				|const svtype type
2288ARdp	|SV *	|newSVuv	|const UV u
2289ARdpx	|OP *	|newTRYCATCHOP	|I32 flags				\
2290				|NN OP *tryblock			\
2291				|NN OP *catchvar			\
2292				|NN OP *catchblock
2293ARdp	|OP *	|newUNOP	|I32 type				\
2294				|I32 flags				\
2295				|NULLOK OP *first
2296ARdp	|OP *	|newUNOP_AUX	|I32 type				\
2297				|I32 flags				\
2298				|NULLOK OP *first			\
2299				|NULLOK UNOP_AUX_item *aux
2300Adp	|SV *	|new_version	|NN SV *ver
2301: FIXME - exported for ByteLoader - public or private?
2302ERXopx	|char * |new_warnings_bitfield					\
2303				|NULLOK char *buffer			\
2304				|NN const char * const bits		\
2305				|STRLEN size
2306ARdp	|OP *	|newWHENOP	|NULLOK OP *cond			\
2307				|NN OP *block
2308ARdp	|OP *	|newWHILEOP	|I32 flags				\
2309				|I32 debuggable 			\
2310				|NULLOK LOOP *loop			\
2311				|NULLOK OP *expr			\
2312				|NULLOK OP *block			\
2313				|NULLOK OP *cont			\
2314				|I32 has_my
2315AUdp	|CV *	|newXS		|NULLOK const char *name		\
2316				|NN XSUBADDR_t subaddr			\
2317				|NN const char *filename
2318Xp	|CV *	|newXS_deffile	|NN const char *name			\
2319				|NN XSUBADDR_t subaddr
2320Apx	|CV *	|newXS_flags	|NULLOK const char *name		\
2321				|NN XSUBADDR_t subaddr			\
2322				|NN const char * const filename 	\
2323				|NULLOK const char * const proto	\
2324				|U32 flags
2325dp	|CV *	|newXS_len_flags|NULLOK const char *name		\
2326				|STRLEN len				\
2327				|NN XSUBADDR_t subaddr			\
2328				|NULLOK const char * const filename	\
2329				|NULLOK const char * const proto	\
2330				|NULLOK SV ** const_svp 		\
2331				|U32 flags
2332: Used in pp_hot.c and pp_sys.c
2333p	|PerlIO *|nextargv	|NN GV *gv				\
2334				|bool nomagicopen
2335AMPTdp	|char * |ninstr 	|NN const char *big			\
2336				|NN const char *bigend			\
2337				|NN const char *little			\
2338				|NN const char *lend
2339
2340p	|void	|no_bareword_filehandle 				\
2341				|NN const char *fhname
2342Tefprv	|void	|noperl_die	|NN const char *pat			\
2343				|...
2344Adp	|int	|nothreadhook
2345p	|void	|notify_parser_that_changed_to_utf8
2346: Used in perly.y
2347Rp	|OP *	|oopsAV 	|NN OP *o
2348: Used in perly.y
2349Rp	|OP *	|oopsHV 	|NN OP *o
2350Adp	|OP *	|op_append_elem |I32 optype				\
2351				|NULLOK OP *first			\
2352				|NULLOK OP *last
2353Adp	|OP *	|op_append_list |I32 optype				\
2354				|NULLOK OP *first			\
2355				|NULLOK OP *last
2356Adp	|OPclass|op_class	|NULLOK const OP *o
2357: FIXME. Used by Data::Alias
2358EXp	|void	|op_clear	|NN OP *o
2359Adp	|OP *	|op_contextualize					\
2360				|NN OP *o				\
2361				|I32 context
2362: Used in perly.y
2363ARdp	|OP *	|op_convert_list|I32 optype				\
2364				|I32 flags				\
2365				|NULLOK OP *o
2366Adp	|void	|op_dump	|NN const OP *o
2367; Used in op.c and class.c
2368Adp	|OP *	|op_force_list	|NULLOK OP *o
2369Adp	|void	|op_free	|NULLOK OP *arg
2370Adp	|OP *	|op_linklist	|NN OP *o
2371Admx	|OP *	|op_lvalue	|NULLOK OP *o				\
2372				|I32 type
2373Xop	|OP *	|op_lvalue_flags|NULLOK OP *o				\
2374				|I32 type				\
2375				|U32 flags
2376: Used in various files
2377Adp	|void	|op_null	|NN OP *o
2378ATdp	|OP *	|op_parent	|NN OP *o
2379Adp	|OP *	|op_prepend_elem|I32 optype				\
2380				|NULLOK OP *first			\
2381				|NULLOK OP *last
2382Cdp	|void	|op_refcnt_lock
2383Cdp	|void	|op_refcnt_unlock
2384Adpx	|OP *	|op_scope	|NULLOK OP *o
2385ATdp	|OP *	|op_sibling_splice					\
2386				|NULLOK OP *parent			\
2387				|NULLOK OP *start			\
2388				|int del_count				\
2389				|NULLOK OP *insert
2390px	|OP *	|op_unscope	|NULLOK OP *o
2391ARdpx	|OP *	|op_wrap_finally|NN OP *block				\
2392				|NN OP *finally
2393: Used in perly.y
2394p	|void	|package	|NN OP *o
2395: Used in perly.y
2396p	|void	|package_version|NN OP *v
2397Adp	|void	|packlist	|NN SV *cat				\
2398				|NN const char *pat			\
2399				|NN const char *patend			\
2400				|NN SV **beglist			\
2401				|NN SV **endlist
2402Adp	|PADOFFSET|pad_add_anon |NN CV *func				\
2403				|I32 optype
2404Adp	|PADOFFSET|pad_add_name_pv					\
2405				|NN const char *name			\
2406				|const U32 flags			\
2407				|NULLOK HV *typestash			\
2408				|NULLOK HV *ourstash
2409Adp	|PADOFFSET|pad_add_name_pvn					\
2410				|NN const char *namepv			\
2411				|STRLEN namelen 			\
2412				|U32 flags				\
2413				|NULLOK HV *typestash			\
2414				|NULLOK HV *ourstash
2415Adp	|PADOFFSET|pad_add_name_sv					\
2416				|NN SV *name				\
2417				|U32 flags				\
2418				|NULLOK HV *typestash			\
2419				|NULLOK HV *ourstash
2420p	|void	|pad_add_weakref|NN CV *func
2421Adpx	|PADOFFSET|pad_alloc	|I32 optype				\
2422				|U32 tmptype
2423dp	|void	|pad_block_start|int full
2424Adp	|PADOFFSET|pad_findmy_pv|NN const char *name			\
2425				|U32 flags
2426Adp	|PADOFFSET|pad_findmy_pvn					\
2427				|NN const char *namepv			\
2428				|STRLEN namelen 			\
2429				|U32 flags
2430Adp	|PADOFFSET|pad_findmy_sv|NN SV *name				\
2431				|U32 flags
2432dp	|void	|pad_fixup_inner_anons					\
2433				|NN PADLIST *padlist			\
2434				|NN CV *old_cv				\
2435				|NN CV *new_cv
2436dp	|void	|pad_free	|PADOFFSET po
2437dp	|OP *	|pad_leavemy
2438p	|PAD ** |padlist_store	|NN PADLIST *padlist			\
2439				|I32 key				\
2440				|NULLOK PAD *val
2441Xop	|void	|padname_free	|NN PADNAME *pn
2442ARTdpx	|PADNAME *|padnamelist_fetch					\
2443				|NN PADNAMELIST *pnl			\
2444				|SSize_t key
2445Xop	|void	|padnamelist_free					\
2446				|NN PADNAMELIST *pnl
2447Adpx	|PADNAME **|padnamelist_store					\
2448				|NN PADNAMELIST *pnl			\
2449				|SSize_t key				\
2450				|NULLOK PADNAME *val
2451
2452: pad API
2453ARdp	|PADLIST *|pad_new	|int flags
2454Xdp	|void	|pad_push	|NN PADLIST *padlist			\
2455				|int depth
2456dp	|void	|pad_swipe	|PADOFFSET po				\
2457				|bool refadjust
2458Adpx	|void	|pad_tidy	|padtidy_type type
2459: Public parser API
2460Adpx	|OP *	|parse_arithexpr|U32 flags
2461Adpx	|OP *	|parse_barestmt |U32 flags
2462Adpx	|OP *	|parse_block	|U32 flags
2463Adpx	|OP *	|parse_fullexpr |U32 flags
2464Adpx	|OP *	|parse_fullstmt |U32 flags
2465Adpx	|SV *	|parse_label	|U32 flags
2466Adpx	|OP *	|parse_listexpr |U32 flags
2467: Only used in scope.c
2468p	|void	|parser_free	|NN const yy_parser *parser
2469Adpx	|OP *	|parse_stmtseq	|U32 flags
2470Adpx	|OP *	|parse_subsignature					\
2471				|U32 flags
2472Adpx	|OP *	|parse_termexpr |U32 flags
2473: Used in locale.c and perl.c
2474p	|U32	|parse_unicode_opts					\
2475				|NN const char **popt
2476
2477: peephole optimiser
2478p	|void	|peep		|NULLOK OP *o
2479
2480ATdo	|PerlInterpreter *|perl_alloc
2481ATdo	|void	|perl_construct |NN PerlInterpreter *my_perl
2482
2483: The reason for the 'u' flag is that this passes "aTHX_ x" to its callee: not
2484: a legal C parameter
2485Admu	|const XOP *|Perl_custom_op_xop 				\
2486				|NN const OP *o
2487ATdo	|int	|perl_destruct	|NN PerlInterpreter *my_perl
2488ATdo	|void	|perl_free	|NN PerlInterpreter *my_perl
2489
2490Cop	|const char *|PerlIO_context_layers				\
2491				|NULLOK const char *mode
2492ATdo	|const char *|Perl_langinfo					\
2493				|const nl_item item
2494ATdo	|const char *|Perl_langinfo8					\
2495				|const nl_item item			\
2496				|NN utf8ness_t *utf8ness
2497p	|int	|PerlLIO_dup2_cloexec					\
2498				|int oldfd				\
2499				|int newfd
2500Rp	|int	|PerlLIO_dup_cloexec					\
2501				|int oldfd
2502Rp	|int	|PerlLIO_open3_cloexec					\
2503				|NN const char *file			\
2504				|int flag				\
2505				|int perm
2506Rp	|int	|PerlLIO_open_cloexec					\
2507				|NN const char *file			\
2508				|int flag
2509Ado	|HV *	|Perl_localeconv
2510ATdo	|int	|perl_parse	|NN PerlInterpreter *my_perl		\
2511				|XSINIT_t xsinit			\
2512				|int argc				\
2513				|NULLOK char **argv			\
2514				|NULLOK char **env
2515ATdo	|int	|perl_run	|NN PerlInterpreter *my_perl
2516ATdo	|const char *|Perl_setlocale					\
2517				|const int category			\
2518				|NULLOK const char *locale
2519CTp	|Signal_t|perly_sighandler					\
2520				|int sig				\
2521				|NULLOK Siginfo_t *info 		\
2522				|NULLOK void *uap			\
2523				|bool safe
2524
2525Adm	|const char * const|phase_name					\
2526				|enum perl_phase
2527Adp	|void	|pmop_dump	|NULLOK PMOP *pm
2528: Used in perly.y
2529p	|OP *	|pmruntime	|NN OP *o				\
2530				|NN OP *expr				\
2531				|NULLOK OP *repl			\
2532				|UV flags				\
2533				|I32 floor
2534Xiop	|Stack_off_t|POPMARK
2535Cdp	|void	|pop_scope
2536Cipx	|void	|pop_stackinfo
2537
2538: Used in perl.c and toke.c
2539Fopv	|void	|populate_isa	|NN const char *name			\
2540				|STRLEN len				\
2541				|...
2542Adhp	|REGEXP *|pregcomp	|NN SV * const pattern			\
2543				|const U32 flags
2544Adhp	|I32	|pregexec	|NN REGEXP * const prog 		\
2545				|NN char *stringarg			\
2546				|NN char *strend			\
2547				|NN char *strbeg			\
2548				|SSize_t minend 			\
2549				|NN SV *screamer			\
2550				|U32 nosave
2551Cp	|void	|pregfree	|NULLOK REGEXP *r
2552Cp	|void	|pregfree2	|NN REGEXP *rx
2553Adp	|const char *|prescan_version					\
2554				|NN const char *s			\
2555				|bool strict				\
2556				|NULLOK const char **errstr		\
2557				|NULLOK bool *sqv			\
2558				|NULLOK int *ssaw_decimal		\
2559				|NULLOK int *swidth			\
2560				|NULLOK bool *salpha
2561ARdp	|void * |ptr_table_fetch|NN PTR_TBL_t * const tbl		\
2562				|NULLOK const void * const sv
2563Adp	|void	|ptr_table_free |NULLOK PTR_TBL_t * const tbl
2564ARdp	|PTR_TBL_t *|ptr_table_new
2565Adp	|void	|ptr_table_split|NN PTR_TBL_t * const tbl
2566Adp	|void	|ptr_table_store|NN PTR_TBL_t * const tbl		\
2567				|NULLOK const void * const oldsv	\
2568				|NN void * const newsv
2569Cdp	|void	|push_scope
2570Cipx	|void	|push_stackinfo |I32 type				\
2571				|UV flags
2572Adp	|char * |pv_display	|NN SV *dsv				\
2573				|NN const char *pv			\
2574				|STRLEN cur				\
2575				|STRLEN len				\
2576				|STRLEN pvlim
2577Adp	|char * |pv_escape	|NULLOK SV *dsv 			\
2578				|NN char const * const str		\
2579				|const STRLEN count			\
2580				|STRLEN max				\
2581				|NULLOK STRLEN * const escaped		\
2582				|U32 flags
2583Adp	|char * |pv_pretty	|NN SV *dsv				\
2584				|NN char const * const str		\
2585				|const STRLEN count			\
2586				|const STRLEN max			\
2587				|NULLOK char const * const start_color	\
2588				|NULLOK char const * const end_color	\
2589				|const U32 flags
2590Adp	|char * |pv_uni_display |NN SV *dsv				\
2591				|NN const U8 *spv			\
2592				|STRLEN len				\
2593				|STRLEN pvlim				\
2594				|UV flags
2595: FIXME - either make it public, or stop exporting it. (Data::Alias uses this)
2596: Used in gv.c, op.c, toke.c
2597EXp	|void	|qerror 	|NULLOK SV *err
2598Adp	|char * |rcpv_copy	|NULLOK char * const pv
2599Adp	|char * |rcpv_free	|NULLOK char * const pv
2600Aadp	|char * |rcpv_new	|NULLOK const char * const pv		\
2601				|STRLEN len				\
2602				|U32 flags
2603CRTdop	|Malloc_t|realloc	|Malloc_t where 			\
2604				|MEM_SIZE nbytes
2605CTiop	|struct regexp *|ReANY	|NN const REGEXP * const re
2606Adp	|REGEXP *|re_compile	|NN SV * const pattern			\
2607				|U32 orig_rx_flags
2608Cp	|void	|reentrant_free
2609Cp	|void	|reentrant_init
2610CFTpv	|void * |reentrant_retry|NN const char *f			\
2611				|...
2612
2613Cp	|void	|reentrant_size
2614Xdp	|HV *	|refcounted_he_chain_2hv				\
2615				|NULLOK const struct refcounted_he *c	\
2616				|U32 flags
2617Xdp	|SV *	|refcounted_he_fetch_pv 					\
2618				|NULLOK const struct refcounted_he *chain	\
2619				|NN const char *key				\
2620				|U32 hash					\
2621				|U32 flags
2622Xdp	|SV *	|refcounted_he_fetch_pvn					\
2623				|NULLOK const struct refcounted_he *chain	\
2624				|NN const char *keypv				\
2625				|STRLEN keylen					\
2626				|U32 hash					\
2627				|U32 flags
2628Xdp	|SV *	|refcounted_he_fetch_sv 					\
2629				|NULLOK const struct refcounted_he *chain	\
2630				|NN SV *key					\
2631				|U32 hash					\
2632				|U32 flags
2633Xdp	|void	|refcounted_he_free					\
2634				|NULLOK struct refcounted_he *he
2635Xdp	|struct refcounted_he *|refcounted_he_inc			\
2636				|NULLOK struct refcounted_he *he
2637Xdp	|struct refcounted_he *|refcounted_he_new_pv			\
2638				|NULLOK struct refcounted_he *parent	\
2639				|NN const char *key			\
2640				|U32 hash				\
2641				|NULLOK SV *value			\
2642				|U32 flags
2643Xdp	|struct refcounted_he *|refcounted_he_new_pvn			\
2644				|NULLOK struct refcounted_he *parent	\
2645				|NN const char *keypv			\
2646				|STRLEN keylen				\
2647				|U32 hash				\
2648				|NULLOK SV *value			\
2649				|U32 flags
2650Xdp	|struct refcounted_he *|refcounted_he_new_sv			\
2651				|NULLOK struct refcounted_he *parent	\
2652				|NN SV *key				\
2653				|U32 hash				\
2654				|NULLOK SV *value			\
2655				|U32 flags
2656Cp	|void	|regdump	|NN const regexp *r
2657Cp	|I32	|regexec_flags	|NN REGEXP * const rx			\
2658				|NN char *stringarg			\
2659				|NN char *strend			\
2660				|NN char *strbeg			\
2661				|SSize_t minend 			\
2662				|NN SV *sv				\
2663				|NULLOK void *data			\
2664				|U32 flags
2665Cp	|void	|regfree_internal					\
2666				|NN REGEXP * const rx
2667Cp	|void	|reginitcolors
2668EXp	|SV *	|reg_named_buff |NN REGEXP * const rx			\
2669				|NULLOK SV * const key			\
2670				|NULLOK SV * const value		\
2671				|const U32 flags
2672Cp	|SV *	|reg_named_buff_all					\
2673				|NN REGEXP * const rx			\
2674				|const U32 flags
2675Cp	|bool	|reg_named_buff_exists					\
2676				|NN REGEXP * const rx			\
2677				|NN SV * const key			\
2678				|const U32 flags
2679Cp	|SV *	|reg_named_buff_fetch					\
2680				|NN REGEXP * const rx			\
2681				|NN SV * const namesv			\
2682				|const U32 flags
2683Cp	|SV *	|reg_named_buff_firstkey				\
2684				|NN REGEXP * const rx			\
2685				|const U32 flags
2686EXp	|SV *	|reg_named_buff_iter					\
2687				|NN REGEXP * const rx			\
2688				|NULLOK const SV * const lastkey	\
2689				|const U32 flags
2690Cp	|SV *	|reg_named_buff_nextkey 				\
2691				|NN REGEXP * const rx			\
2692				|const U32 flags
2693Cp	|SV *	|reg_named_buff_scalar					\
2694				|NN REGEXP * const rx			\
2695				|const U32 flags
2696: FIXME - is anything in re using this now?
2697EXp	|void	|reg_numbered_buff_fetch				\
2698				|NN REGEXP * const re			\
2699				|const I32 paren			\
2700				|NULLOK SV * const sv
2701
2702: FIXME - is anything in re using this now?
2703EXp	|void	|reg_numbered_buff_fetch_flags				\
2704				|NN REGEXP * const re			\
2705				|const I32 paren			\
2706				|NULLOK SV * const sv			\
2707				|U32 flags
2708: FIXME - is anything in re using this now?
2709EXp	|I32	|reg_numbered_buff_length				\
2710				|NN REGEXP * const rx			\
2711				|NN const SV * const sv 		\
2712				|const I32 paren
2713: FIXME - is anything in re using this now?
2714EXp	|void	|reg_numbered_buff_store				\
2715				|NN REGEXP * const rx			\
2716				|const I32 paren			\
2717				|NULLOK SV const * const value
2718
2719: FIXME - is anything in re using this now?
2720EXp	|SV *	|reg_qr_package |NN REGEXP * const rx
2721: FIXME - is anything in re using this now?
2722EXp	|REGEXP *|reg_temp_copy |NULLOK REGEXP *dsv			\
2723				|NN REGEXP *ssv
2724Cp	|char * |re_intuit_start|NN REGEXP * const rx			\
2725				|NULLOK SV *sv				\
2726				|NN const char * const strbeg		\
2727				|NN char *strpos			\
2728				|NN char *strend			\
2729				|const U32 flags			\
2730				|NULLOK re_scream_pos_data *data
2731Cp	|SV *	|re_intuit_string					\
2732				|NN REGEXP  * const r
2733Xp	|REGEXP *|re_op_compile |NULLOK SV ** const patternp		\
2734				|int pat_count				\
2735				|NULLOK OP *expr			\
2736				|NN const regexp_engine *eng		\
2737				|NULLOK REGEXP *old_re			\
2738				|NULLOK bool *is_bare_re		\
2739				|const U32 rx_flags			\
2740				|const U32 pm_flags
2741
2742ATdp	|void	|repeatcpy	|NN char *to				\
2743				|NN const char *from			\
2744				|SSize_t len				\
2745				|IV count
2746: Used in doio.c, pp_hot.c, pp_sys.c
2747p	|void	|report_evil_fh |NULLOK const GV *gv
2748: Used in mg.c, pp.c, pp_hot.c, regcomp.c
2749EXdp	|void	|report_uninit	|NULLOK const SV *uninit_sv
2750: Used in doio.c, pp_hot.c, pp_sys.c
2751p	|void	|report_wrongway_fh					\
2752				|NULLOK const GV *gv			\
2753				|const char have
2754AOdp	|void	|require_pv	|NN const char *pv
2755AMp	|void	|resume_compcv	|NN struct suspended_compcv *buffer	\
2756				|bool save
2757dm	|void	|resume_compcv_and_save 				\
2758				|NN struct suspended_compcv *buffer
2759dm	|void	|resume_compcv_final					\
2760				|NN struct suspended_compcv *buffer
2761APTdp	|char * |rninstr	|NN const char *big			\
2762				|NN const char *bigend			\
2763				|NN const char *little			\
2764				|NN const char *lend
2765p	|void	|rpeep		|NULLOK OP *o
2766Adipx	|void	|rpp_context	|NN SV **mark				\
2767				|U8 gimme				\
2768				|SSize_t extra
2769Adipx	|void	|rpp_extend	|SSize_t n
2770Xopx	|void	|rpp_free_2_	|NN SV * const sv1			\
2771				|NN SV * const sv2			\
2772				|const U32 rc1				\
2773				|const U32 rc2
2774Adipx	|void	|rpp_invoke_xs	|NN CV *cv
2775Adipx	|bool	|rpp_is_lone	|NN SV *sv
2776Cpx	|void	|rpp_obliterate_stack_to				\
2777				|I32 ix
2778Adipx	|void	|rpp_popfree_1
2779Adipx	|void	|rpp_popfree_2
2780Adipx	|void	|rpp_popfree_1_NN
2781Adipx	|void	|rpp_popfree_2_NN
2782Adipx	|void	|rpp_popfree_to |NN SV **sp
2783Adipx	|void	|rpp_popfree_to_NN					\
2784				|NN SV **sp
2785Adipx	|SV *	|rpp_pop_1_norc
2786Adipx	|void	|rpp_push_1	|NN SV *sv
2787Adipx	|void	|rpp_push_2	|NN SV *sv1				\
2788				|NN SV *sv2
2789Adipx	|void	|rpp_push_IMM	|NN SV *sv
2790Adipx	|void	|rpp_push_1_norc|NN SV *sv
2791Adipx	|void	|rpp_replace_1_1|NN SV *sv
2792Adipx	|void	|rpp_replace_2_1|NN SV *sv
2793Adipx	|void	|rpp_replace_at |NN SV **sp				\
2794				|NN SV *sv
2795Adipx	|void	|rpp_replace_at_NN					\
2796				|NN SV **sp				\
2797				|NN SV *sv
2798Adipx	|void	|rpp_replace_at_norc					\
2799				|NN SV **sp				\
2800				|NN SV *sv
2801Adipx	|void	|rpp_replace_at_norc_NN 				\
2802				|NN SV **sp				\
2803				|NN SV *sv
2804Cipx	|void	|rpp_replace_2_1_COMMON 				\
2805				|NN SV *sv
2806Adipx	|void	|rpp_replace_1_IMM_NN					\
2807				|NN SV *sv
2808Adipx	|void	|rpp_replace_2_IMM_NN					\
2809				|NN SV *sv
2810Adipx	|void	|rpp_replace_1_1_NN					\
2811				|NN SV *sv
2812Adipx	|void	|rpp_replace_2_1_NN					\
2813				|NN SV *sv
2814Adipx	|bool	|rpp_stack_is_rc
2815Adipx	|bool	|rpp_try_AMAGIC_1					\
2816				|int method				\
2817				|int flags
2818Adipx	|bool	|rpp_try_AMAGIC_2					\
2819				|int method				\
2820				|int flags
2821Adipx	|void	|rpp_xpush_1	|NN SV *sv
2822Adipx	|void	|rpp_xpush_2	|NN SV *sv1				\
2823				|NN SV *sv2
2824Adipx	|void	|rpp_xpush_IMM	|NN SV *sv
2825Adp	|Sighandler_t|rsignal	|int i					\
2826				|Sighandler_t t
2827: Used in pp_sys.c
2828p	|int	|rsignal_restore|int i					\
2829				|NULLOK Sigsave_t *t
2830: Used in pp_sys.c
2831p	|int	|rsignal_save	|int i					\
2832				|Sighandler_t t1			\
2833				|NN Sigsave_t *save
2834Adp	|Sighandler_t|rsignal_state					\
2835				|int i
2836Cdhp	|int	|runops_debug
2837Cdhp	|int	|runops_standard
2838Adp	|CV *	|rv2cv_op_cv	|NN OP *cvop				\
2839				|U32 flags
2840: Used in pp_hot.c
2841p	|void	|rxres_save	|NN void **rsp				\
2842				|NN REGEXP *rx
2843ATadp	|Malloc_t|safesyscalloc |MEM_SIZE elements			\
2844				|MEM_SIZE size
2845ATdp	|Free_t |safesysfree	|Malloc_t where
2846ATadp	|Malloc_t|safesysmalloc |MEM_SIZE nbytes
2847ARTdp	|Malloc_t|safesysrealloc|Malloc_t where 			\
2848				|MEM_SIZE nbytes
2849Cdp	|void	|save_adelete	|NN AV *av				\
2850				|SSize_t key
2851Adm	|void	|save_aelem	|NN AV *av				\
2852				|SSize_t idx				\
2853				|NN SV **sptr
2854Adp	|void	|save_aelem_flags					\
2855				|NN AV *av				\
2856				|SSize_t idx				\
2857				|NN SV **sptr				\
2858				|const U32 flags
2859Cdp	|SSize_t|save_alloc	|SSize_t size				\
2860				|I32 pad
2861Adhp	|void	|save_aptr	|NN AV **aptr
2862Adhp	|AV *	|save_ary	|NN GV *gv
2863Cp	|void	|save_bool	|NN bool *boolp
2864Cp	|void	|save_clearsv	|NN SV **svp
2865Cp	|void	|save_delete	|NN HV *hv				\
2866				|NN char *key				\
2867				|I32 klen
2868Cp	|void	|save_destructor|DESTRUCTORFUNC_NOCONTEXT_t f		\
2869				|NN void *p
2870Cp	|void	|save_destructor_x					\
2871				|DESTRUCTORFUNC_t f			\
2872				|NULLOK void *p
2873: Used in SAVEFREOP(), used in op.c, pp_ctl.c
2874CMbp	|void	|save_freeop	|NULLOK OP *o
2875CMbp	|void	|save_freepv	|NULLOK char *pv
2876Cdp	|void	|save_freercpv	|NN char *rcpv
2877CMbp	|void	|save_freesv	|NULLOK SV *sv
2878Cdp	|void	|save_generic_pvref					\
2879				|NN char **str
2880Cdp	|void	|save_generic_svref					\
2881				|NN SV **sptr
2882Adp	|void	|save_gp	|NN GV *gv				\
2883				|I32 empty
2884Adhp	|HV *	|save_hash	|NN GV *gv
2885Cdp	|void	|save_hdelete	|NN HV *hv				\
2886				|NN SV *keysv
2887Adm	|void	|save_helem	|NN HV *hv				\
2888				|NN SV *key				\
2889				|NN SV **sptr
2890Adp	|void	|save_helem_flags					\
2891				|NN HV *hv				\
2892				|NN SV *key				\
2893				|NN SV **sptr				\
2894				|const U32 flags
2895Cdp	|void	|save_hints
2896Adhp	|void	|save_hptr	|NN HV **hptr
2897Cp	|void	|save_I16	|NN I16 *intp
2898Cp	|void	|save_I32	|NN I32 *intp
2899Cp	|void	|save_I8	|NN I8 *bytep
2900Cp	|void	|save_int	|NN int *intp
2901Adhp	|void	|save_item	|NN SV *item
2902Cp	|void	|save_iv	|NN IV *ivp
2903CMbp	|void	|save_mortalizesv					\
2904				|NN SV *sv
2905: Used in SAVEFREOP(), used in gv.c, op.c, perl.c, pp_ctl.c, pp_sort.c
2906CMbdp	|void	|save_op
2907Cdp	|void	|save_padsv_and_mortalize				\
2908				|PADOFFSET off
2909Cp	|void	|save_pptr	|NN char **pptr
2910Cp	|void	|save_pushi32ptr|const I32 i				\
2911				|NULLOK void * const ptr		\
2912				|const int type
2913Cdp	|void	|save_pushptr	|NULLOK void * const ptr		\
2914				|const int type
2915: Used by SAVESWITCHSTACK() in pp.c
2916Cp	|void	|save_pushptrptr|NULLOK void * const ptr1		\
2917				|NULLOK void * const ptr2		\
2918				|const int type
2919Aadip	|char * |savepv 	|NULLOK const char *pv
2920Aadip	|char * |savepvn	|NULLOK const char *pv			\
2921				|Size_t len
2922Cdp	|void	|save_rcpv	|NN char **prcpv
2923Cp	|void	|save_re_context
2924Adhp	|SV *	|save_scalar	|NN GV *gv
2925Cdp	|void	|save_set_svflags					\
2926				|NN SV *sv				\
2927				|U32 mask				\
2928				|U32 val
2929Aadp	|char * |savesharedpv	|NULLOK const char *pv
2930
2931: NULLOK only to suppress a compiler warning
2932Aadp	|char * |savesharedpvn	|NULLOK const char * const pv		\
2933				|const STRLEN len
2934Cdp	|void	|save_shared_pvref					\
2935				|NN char **str
2936Aadip	|char * |savesharedsvpv |NN SV *sv
2937Cp	|void	|save_sptr	|NN SV **sptr
2938Cp	|void	|savestack_grow
2939Cp	|void	|savestack_grow_cnt					\
2940				|I32 need
2941Xp	|void	|save_strlen	|NN STRLEN *ptr
2942Aadip	|char * |savesvpv	|NN SV *sv
2943Adhp	|SV *	|save_svref	|NN SV **sptr
2944Aopx	|void	|savetmps
2945Cdp	|void	|save_vptr	|NN void *ptr
2946: Used in perly.y
2947p	|OP *	|sawparens	|NULLOK OP *o
2948: Used in perly.y
2949p	|OP *	|scalar 	|NULLOK OP *o
2950: Used in pp_ctl.c
2951p	|OP *	|scalarvoid	|NN OP *o
2952Adp	|NV	|scan_bin	|NN const char *start			\
2953				|STRLEN len				\
2954				|NN STRLEN *retlen
2955Adp	|NV	|scan_hex	|NN const char *start			\
2956				|STRLEN len				\
2957				|NN STRLEN *retlen
2958Cp	|char * |scan_num	|NN const char *s			\
2959				|NN YYSTYPE *lvalp
2960Adp	|NV	|scan_oct	|NN const char *start			\
2961				|STRLEN len				\
2962				|NN STRLEN *retlen
2963
2964: For use ONLY in B::Hooks::Parser, by special dispensation
2965ERXpx	|char * |scan_str	|NN char *start 			\
2966				|int keep_quoted			\
2967				|int keep_delims			\
2968				|int re_reparse 			\
2969				|NULLOK char **delimp
2970Adp	|const char *|scan_version					\
2971				|NN const char *s			\
2972				|NN SV *rv				\
2973				|bool qv
2974Adp	|char * |scan_vstring	|NN const char *s			\
2975				|NN const char * const e		\
2976				|NN SV *sv
2977EXpx	|char * |scan_word	|NN char *s				\
2978				|NN char *dest				\
2979				|STRLEN destlen 			\
2980				|int allow_package			\
2981				|NN STRLEN *slp
2982EXpx	|char * |scan_word6	|NN char *s				\
2983				|NN char *dest				\
2984				|STRLEN destlen 			\
2985				|int allow_package			\
2986				|NN STRLEN *slp 			\
2987				|bool warn_tick
2988Cp	|U32	|seed
2989: Only used by perl.c/miniperl.c, but defined in caretx.c
2990ep	|void	|set_caret_X
2991CTdp	|void	|set_context	|NN void *t
2992Adp	|void	|setdefout	|NN GV *gv
2993Tp	|void	|setfd_cloexec	|int fd
2994p	|void	|setfd_cloexec_for_nonsysfd				\
2995				|int fd
2996p	|void	|setfd_cloexec_or_inhexec_by_sysfdness			\
2997				|int fd
2998Tp	|void	|setfd_inhexec	|int fd
2999p	|void	|setfd_inhexec_for_sysfd				\
3000				|int fd
3001Xp	|void	|set_numeric_standard					\
3002				|NN const char *file			\
3003				|const line_t caller_line
3004Xp	|void	|set_numeric_underlying 				\
3005				|NN const char *file			\
3006				|const line_t caller_line
3007Cp	|HEK *	|share_hek	|NN const char *str			\
3008				|SSize_t len				\
3009				|U32 hash
3010Tp	|Signal_t|sighandler1	|int sig
3011Tp	|Signal_t|sighandler3	|int sig				\
3012				|NULLOK Siginfo_t *info 		\
3013				|NULLOK void *uap
3014CRTip	|unsigned|single_1bit_pos32					\
3015				|U32 word
3016ERXpx	|char * |skipspace_flags|NN char *s				\
3017				|U32 flags
3018RXp	|void * |Slab_Alloc	|size_t sz
3019Xp	|void	|Slab_Free	|NN void *op
3020Adp	|void	|sortsv 	|NULLOK SV **array			\
3021				|size_t num_elts			\
3022				|NN SVCOMPARE_t cmp
3023Adp	|void	|sortsv_flags	|NULLOK SV **array			\
3024				|size_t num_elts			\
3025				|NN SVCOMPARE_t cmp			\
3026				|U32 flags
3027Cp	|SV **	|stack_grow	|NN SV **sp				\
3028				|NN SV **p				\
3029				|SSize_t n
3030: Defined in doio.c, used only in pp_hot.c
3031dopx	|PerlIO *|start_glob	|NN SV *tmpglob 			\
3032				|NN IO *io
3033Adp	|I32	|start_subparse |I32 is_format				\
3034				|U32 flags
3035CRp	|NV	|str_to_version |NN SV *sv
3036: Used in pp_ctl.c
3037p	|void	|sub_crush_depth|NN CV *cv
3038Adp	|void	|suspend_compcv |NN struct suspended_compcv *buffer
3039ATdip	|void	|SvAMAGIC_off	|NN SV *sv
3040ATdip	|void	|SvAMAGIC_on	|NN SV *sv
3041ATdp	|void	|sv_backoff	|NN SV * const sv
3042Adp	|SV *	|sv_bless	|NN SV * const sv			\
3043				|NN HV * const stash
3044CMbdp	|bool	|sv_2bool	|NN SV * const sv
3045Cdp	|bool	|sv_2bool_flags |NN SV *sv				\
3046				|I32 flags
3047Adp	|bool	|sv_cat_decode	|NN SV *dsv				\
3048				|NN SV *encoding			\
3049				|NN SV *ssv				\
3050				|NN int *offset 			\
3051				|NN char *tstr				\
3052				|int tlen
3053Adp	|void	|sv_catpv	|NN SV * const dsv			\
3054				|NULLOK const char *sstr
3055Adfpv	|void	|sv_catpvf	|NN SV * const sv			\
3056				|NN const char * const pat		\
3057				|...
3058Adp	|void	|sv_catpv_flags |NN SV *dsv				\
3059				|NN const char *sstr			\
3060				|const I32 flags
3061Adfpv	|void	|sv_catpvf_mg	|NN SV * const sv			\
3062				|NN const char * const pat		\
3063				|...
3064Adp	|void	|sv_catpv_mg	|NN SV * const dsv			\
3065				|NULLOK const char * const sstr
3066AMbdp	|void	|sv_catpvn	|NN SV *dsv				\
3067				|NN const char *sstr			\
3068				|STRLEN len
3069Adp	|void	|sv_catpvn_flags|NN SV * const dsv			\
3070				|NN const char *sstr			\
3071				|const STRLEN len			\
3072				|const I32 flags
3073AMbdp	|void	|sv_catpvn_mg	|NN SV *dsv				\
3074				|NN const char *sstr			\
3075				|STRLEN len
3076AMbdp	|void	|sv_catsv	|NN SV *dsv				\
3077				|NULLOK SV *sstr
3078Adp	|void	|sv_catsv_flags |NN SV * const dsv			\
3079				|NULLOK SV * const sstr 		\
3080				|const I32 flags
3081AMbdp	|void	|sv_catsv_mg	|NN SV *dsv				\
3082				|NULLOK SV *sstr
3083Adp	|void	|sv_chop	|NN SV * const sv			\
3084				|NULLOK const char * const ptr
3085: Used only in perl.c
3086dp	|SSize_t|sv_clean_all
3087: Used only in perl.c
3088dp	|void	|sv_clean_objs
3089Adp	|void	|sv_clear	|NN SV * const orig_sv
3090AMdp	|I32	|sv_cmp 	|NULLOK SV * const sv1			\
3091				|NULLOK SV * const sv2
3092Adp	|I32	|sv_cmp_flags	|NULLOK SV * const sv1			\
3093				|NULLOK SV * const sv2			\
3094				|const U32 flags
3095AMdp	|I32	|sv_cmp_locale	|NULLOK SV * const sv1			\
3096				|NULLOK SV * const sv2
3097Adp	|I32	|sv_cmp_locale_flags					\
3098				|NULLOK SV * const sv1			\
3099				|NULLOK SV * const sv2			\
3100				|const U32 flags
3101AMbdp	|void	|sv_copypv	|NN SV * const dsv			\
3102				|NN SV * const ssv
3103Adp	|void	|sv_copypv_flags|NN SV * const dsv			\
3104				|NN SV * const ssv			\
3105				|const I32 flags
3106Adm	|void	|sv_copypv_nomg |NN SV * const dsv			\
3107				|NN SV * const ssv
3108Adp	|CV *	|sv_2cv 	|NULLOK SV *sv				\
3109				|NN HV ** const st			\
3110				|NN GV ** const gvp			\
3111				|const I32 lref
3112Adp	|void	|sv_dec 	|NULLOK SV * const sv
3113Adp	|void	|sv_dec_nomg	|NULLOK SV * const sv
3114
3115Xp	|void	|sv_del_backref |NN SV * const tsv			\
3116				|NN SV * const sv
3117ARdp	|bool	|sv_derived_from|NN SV *sv				\
3118				|NN const char * const name
3119ARdp	|bool	|sv_derived_from_hv					\
3120				|NN SV *sv				\
3121				|NN HV *hv
3122ARdp	|bool	|sv_derived_from_pv					\
3123				|NN SV *sv				\
3124				|NN const char * const name		\
3125				|U32 flags
3126ARdp	|bool	|sv_derived_from_pvn					\
3127				|NN SV *sv				\
3128				|NN const char * const name		\
3129				|const STRLEN len			\
3130				|U32 flags
3131ARdp	|bool	|sv_derived_from_sv					\
3132				|NN SV *sv				\
3133				|NN SV *namesv				\
3134				|U32 flags
3135Adp	|bool	|sv_destroyable |NULLOK SV *sv
3136ARdp	|bool	|sv_does	|NN SV *sv				\
3137				|NN const char * const name
3138ARdp	|bool	|sv_does_pv	|NN SV *sv				\
3139				|NN const char * const name		\
3140				|U32 flags
3141ARdp	|bool	|sv_does_pvn	|NN SV *sv				\
3142				|NN const char * const name		\
3143				|const STRLEN len			\
3144				|U32 flags
3145ARdp	|bool	|sv_does_sv	|NN SV *sv				\
3146				|NN SV *namesv				\
3147				|U32 flags
3148Adp	|void	|sv_dump	|NULLOK SV *sv
3149Adp	|void	|sv_dump_depth	|NULLOK SV *sv				\
3150				|I32 depth
3151AMbdp	|I32	|sv_eq		|NULLOK SV *sv1 			\
3152				|NULLOK SV *sv2
3153Adp	|I32	|sv_eq_flags	|NULLOK SV *sv1 			\
3154				|NULLOK SV *sv2 			\
3155				|const U32 flags
3156AMbdp	|void	|sv_force_normal|NN SV *sv
3157Adp	|void	|sv_force_normal_flags					\
3158				|NN SV * const sv			\
3159				|const U32 flags
3160Adp	|void	|sv_free	|NULLOK SV * const sv
3161Xopx	|void	|sv_free2	|NN SV * const sv			\
3162				|const U32 refcnt
3163: Used only in perl.c
3164dp	|void	|sv_free_arenas
3165ATdpx	|SV *	|sv_get_backrefs|NN SV * const sv
3166Adip	|void	|SvGETMAGIC	|NN SV *sv
3167Adp	|char * |sv_gets	|NN SV * const sv			\
3168				|NN PerlIO * const fp			\
3169				|I32 append
3170Cdp	|char * |sv_grow	|NN SV * const sv			\
3171				|STRLEN newlen
3172Cdp	|char * |sv_grow_fresh	|NN SV * const sv			\
3173				|STRLEN newlen
3174Adp	|void	|sv_inc 	|NULLOK SV * const sv
3175Adp	|void	|sv_inc_nomg	|NULLOK SV * const sv
3176AMbdp	|void	|sv_insert	|NN SV * const bigstr			\
3177				|const STRLEN offset			\
3178				|const STRLEN len			\
3179				|NN const char * const little		\
3180				|const STRLEN littlelen
3181Adp	|void	|sv_insert_flags|NN SV * const bigstr			\
3182				|const STRLEN offset			\
3183				|const STRLEN len			\
3184				|NN const char *little			\
3185				|const STRLEN littlelen 		\
3186				|const U32 flags
3187Adp	|IO *	|sv_2io 	|NN SV * const sv
3188Adp	|int	|sv_isa 	|NULLOK SV *sv				\
3189				|NN const char * const name
3190ARdp	|bool	|sv_isa_sv	|NN SV *sv				\
3191				|NN SV *namesv
3192Adp	|int	|sv_isobject	|NULLOK SV *sv
3193Adip	|IV	|SvIV		|NN SV *sv
3194CMbp	|IV	|sv_2iv 	|NN SV *sv
3195Adp	|IV	|sv_2iv_flags	|NN SV * const sv			\
3196				|const I32 flags
3197Adip	|IV	|SvIV_nomg	|NN SV *sv
3198Adp	|SV *	|sv_langinfo	|const nl_item item
3199Adp	|STRLEN |sv_len 	|NULLOK SV * const sv
3200Adp	|STRLEN |sv_len_utf8	|NULLOK SV * const sv
3201Adp	|STRLEN |sv_len_utf8_nomg					\
3202				|NN SV * const sv
3203Adp	|void	|sv_magic	|NN SV * const sv			\
3204				|NULLOK SV * const obj			\
3205				|const int how				\
3206				|NULLOK const char * const name 	\
3207				|const I32 namlen
3208Adp	|MAGIC *|sv_magicext	|NN SV * const sv			\
3209				|NULLOK SV * const obj			\
3210				|const int how				\
3211				|NULLOK const MGVTBL * const vtbl	\
3212				|NULLOK const char * const name 	\
3213				|const I32 namlen
3214: exported for re.pm
3215EXp	|MAGIC *|sv_magicext_mglob					\
3216				|NN SV *sv
3217Adp	|SV *	|sv_2mortal	|NULLOK SV * const sv
3218AMRbdp	|SV *	|sv_mortalcopy	|NULLOK SV * const oldsv
3219ARdp	|SV *	|sv_mortalcopy_flags					\
3220				|NULLOK SV * const oldsv		\
3221				|U32 flags
3222ARdp	|SV *	|sv_newmortal
3223Cdp	|SV *	|sv_newref	|NULLOK SV * const sv
3224ADbdp	|void	|sv_nolocking	|NULLOK SV *sv
3225
3226Adp	|void	|sv_nosharing	|NULLOK SV *sv
3227ADbdp	|void	|sv_nounlocking |NULLOK SV *sv
3228: Used in pp.c, pp_hot.c, sv.c
3229dpx	|SV *	|sv_2num	|NN SV * const sv
3230Adm	|bool	|sv_numeq	|NULLOK SV *sv1 			\
3231				|NULLOK SV *sv2
3232Adp	|bool	|sv_numeq_flags |NULLOK SV *sv1 			\
3233				|NULLOK SV *sv2 			\
3234				|const U32 flags
3235Adip	|NV	|SvNV		|NN SV *sv
3236Adp	|NV	|sv_2nv_flags	|NN SV * const sv			\
3237				|const I32 flags
3238Adip	|NV	|SvNV_nomg	|NN SV *sv
3239ETip	|bool	|sv_only_taint_gmagic					\
3240				|NN SV *sv
3241Cdp	|char * |sv_peek	|NULLOK SV *sv
3242Adp	|void	|sv_pos_b2u	|NULLOK SV * const sv			\
3243				|NN I32 * const offsetp
3244Adp	|STRLEN |sv_pos_b2u_flags					\
3245				|NN SV * const sv			\
3246				|STRLEN const offset			\
3247				|U32 flags
3248Adp	|void	|sv_pos_u2b	|NULLOK SV * const sv			\
3249				|NN I32 * const offsetp 		\
3250				|NULLOK I32 * const lenp
3251Adp	|STRLEN |sv_pos_u2b_flags					\
3252				|NN SV * const sv			\
3253				|STRLEN uoffset 			\
3254				|NULLOK STRLEN * const lenp		\
3255				|U32 flags
3256AMbdp	|char * |sv_2pv 	|NN SV *sv				\
3257				|NULLOK STRLEN *lp
3258CMRbdp	|char * |sv_pv		|NN SV *sv
3259AMbdp	|char * |sv_2pvbyte	|NN SV *sv				\
3260				|NULLOK STRLEN * const lp
3261CMRbdp	|char * |sv_pvbyte	|NN SV *sv
3262Adp	|char * |sv_2pvbyte_flags					\
3263				|NN SV *sv				\
3264				|NULLOK STRLEN * const lp		\
3265				|const U32 flags
3266Cdp	|char * |sv_pvbyten_force					\
3267				|NN SV * const sv			\
3268				|NULLOK STRLEN * const lp
3269ip	|char * |sv_pvbyten_force_wrapper				\
3270				|NN SV * const sv			\
3271				|NULLOK STRLEN * const lp		\
3272				|const U32 dummy
3273CMRbdp	|char * |sv_2pvbyte_nolen					\
3274				|NN SV *sv
3275Adp	|char * |sv_2pv_flags	|NN SV * const sv			\
3276				|NULLOK STRLEN * const lp		\
3277				|const U32 flags
3278CMbdp	|char * |sv_pvn_force	|NN SV *sv				\
3279				|NULLOK STRLEN *lp
3280Adp	|char * |sv_pvn_force_flags					\
3281				|NN SV * const sv			\
3282				|NULLOK STRLEN * const lp		\
3283				|const U32 flags
3284CMRbdp	|char * |sv_2pv_nolen	|NN SV *sv
3285AMbdp	|char * |sv_2pvutf8	|NN SV *sv				\
3286				|NULLOK STRLEN * const lp
3287CMRbdp	|char * |sv_pvutf8	|NN SV *sv
3288Adp	|char * |sv_2pvutf8_flags					\
3289				|NN SV *sv				\
3290				|NULLOK STRLEN * const lp		\
3291				|const U32 flags
3292Cdp	|char * |sv_pvutf8n_force					\
3293				|NN SV * const sv			\
3294				|NULLOK STRLEN * const lp
3295ip	|char * |sv_pvutf8n_force_wrapper				\
3296				|NN SV * const sv			\
3297				|NULLOK STRLEN * const lp		\
3298				|const U32 dummy
3299CMRbdp	|char * |sv_2pvutf8_nolen					\
3300				|NN SV *sv
3301AIdp	|bool	|SvPVXtrue	|NN SV *sv
3302Adp	|char * |sv_recode_to_utf8					\
3303				|NN SV *sv				\
3304				|NN SV *encoding
3305Adp	|SV *	|sv_ref 	|NULLOK SV *dst 			\
3306				|NN const SV * const sv 		\
3307				|const int ob
3308AMdip	|void	|SvREFCNT_dec	|NULLOK SV *sv
3309AMdip	|void	|SvREFCNT_dec_NN|NN SV *sv
3310Adip	|SV *	|SvREFCNT_dec_ret_NULL					\
3311				|NULLOK SV *sv
3312Adm	|void	|SvREFCNT_dec_set_NULL					\
3313				|NULLOK SV *sv
3314AMTdip	|SV *	|SvREFCNT_inc	|NULLOK SV *sv
3315AMTdip	|SV *	|SvREFCNT_inc_NN|NN SV *sv
3316AMTdip	|void	|SvREFCNT_inc_void					\
3317				|NULLOK SV *sv
3318ARdp	|const char *|sv_reftype|NN const SV * const sv 		\
3319				|const int ob
3320Adp	|void	|sv_replace	|NN SV * const sv			\
3321				|NN SV * const nsv
3322Adp	|void	|sv_report_used
3323Adp	|void	|sv_reset	|NN const char *s			\
3324				|NULLOK HV * const stash
3325p	|void	|sv_resetpvn	|NULLOK const char *s			\
3326				|STRLEN len				\
3327				|NULLOK HV * const stash
3328Adp	|SV *	|sv_rvunweaken	|NN SV * const sv
3329Adp	|SV *	|sv_rvweaken	|NN SV * const sv
3330Adp	|void	|sv_set_bool	|NN SV *sv				\
3331				|const bool bool_val
3332Adp	|void	|sv_set_false	|NN SV *sv
3333Xp	|void	|sv_sethek	|NN SV * const sv			\
3334				|NULLOK const HEK * const hek
3335Adp	|void	|sv_setiv	|NN SV * const sv			\
3336				|const IV num
3337Adp	|void	|sv_setiv_mg	|NN SV * const sv			\
3338				|const IV i
3339Adp	|void	|sv_setnv	|NN SV * const sv			\
3340				|const NV num
3341Adp	|void	|sv_setnv_mg	|NN SV * const sv			\
3342				|const NV num
3343Adp	|void	|sv_setpv	|NN SV * const sv			\
3344				|NULLOK const char * const ptr
3345Adp	|char  *|sv_setpv_bufsize					\
3346				|NN SV * const sv			\
3347				|const STRLEN cur			\
3348				|const STRLEN len
3349Adfpv	|void	|sv_setpvf	|NN SV * const sv			\
3350				|NN const char * const pat		\
3351				|...
3352Adfpv	|void	|sv_setpvf_mg	|NN SV * const sv			\
3353				|NN const char * const pat		\
3354				|...
3355Cipx	|char  *|sv_setpv_freshbuf					\
3356				|NN SV * const sv
3357Adp	|void	|sv_setpv_mg	|NN SV * const sv			\
3358				|NULLOK const char * const ptr
3359Adp	|void	|sv_setpvn	|NN SV * const sv			\
3360				|NULLOK const char * const ptr		\
3361				|const STRLEN len
3362Adp	|void	|sv_setpvn_fresh|NN SV * const sv			\
3363				|NULLOK const char * const ptr		\
3364				|const STRLEN len
3365Adp	|void	|sv_setpvn_mg	|NN SV * const sv			\
3366				|NN const char * const ptr		\
3367				|const STRLEN len
3368Adp	|SV *	|sv_setref_iv	|NN SV * const rv			\
3369				|NULLOK const char * const classname	\
3370				|const IV iv
3371Adp	|SV *	|sv_setref_nv	|NN SV * const rv			\
3372				|NULLOK const char * const classname	\
3373				|const NV nv
3374Adp	|SV *	|sv_setref_pv	|NN SV * const rv			\
3375				|NULLOK const char * const classname	\
3376				|NULLOK void * const pv
3377Adp	|SV *	|sv_setref_pvn	|NN SV * const rv			\
3378				|NULLOK const char * const classname	\
3379				|NN const char * const pv		\
3380				|const STRLEN n
3381Adp	|SV *	|sv_setref_uv	|NN SV * const rv			\
3382				|NULLOK const char * const classname	\
3383				|const UV uv
3384Adp	|void	|sv_setrv_inc	|NN SV * const sv			\
3385				|NN SV * const ref
3386Adp	|void	|sv_setrv_inc_mg|NN SV * const sv			\
3387				|NN SV * const ref
3388Adp	|void	|sv_setrv_noinc |NN SV * const sv			\
3389				|NN SV * const ref
3390Adp	|void	|sv_setrv_noinc_mg					\
3391				|NN SV * const sv			\
3392				|NN SV * const ref
3393AMbdp	|void	|sv_setsv	|NN SV *dsv				\
3394				|NULLOK SV *ssv
3395Adp	|void	|sv_setsv_flags |NN SV *dsv				\
3396				|NULLOK SV *ssv 			\
3397				|const I32 flags
3398Adp	|void	|sv_setsv_mg	|NN SV * const dsv			\
3399				|NULLOK SV * const ssv
3400Adp	|void	|sv_set_true	|NN SV *sv
3401
3402Adp	|void	|sv_set_undef	|NN SV *sv
3403Adp	|void	|sv_setuv	|NN SV * const sv			\
3404				|const UV num
3405Adp	|void	|sv_setuv_mg	|NN SV * const sv			\
3406				|const UV u
3407Adm	|bool	|sv_streq	|NULLOK SV *sv1 			\
3408				|NULLOK SV *sv2
3409Adp	|bool	|sv_streq_flags |NULLOK SV *sv1 			\
3410				|NULLOK SV *sv2 			\
3411				|const U32 flags
3412EXpx	|SV *	|sv_strftime_ints					\
3413				|NN SV *fmt				\
3414				|int sec				\
3415				|int min				\
3416				|int hour				\
3417				|int mday				\
3418				|int mon				\
3419				|int year				\
3420				|int wday				\
3421				|int yday				\
3422				|int isdst
3423Adp	|SV *	|sv_strftime_tm |NN SV *fmt				\
3424				|NN const struct tm *mytm
3425Adp	|SV *	|sv_string_from_errnum					\
3426				|int errnum				\
3427				|NULLOK SV *tgtsv
3428CMbdp	|void	|sv_taint	|NN SV *sv
3429CRdp	|bool	|sv_tainted	|NN SV * const sv
3430Adip	|bool	|SvTRUE 	|NULLOK SV *sv
3431Cdp	|I32	|sv_true	|NULLOK SV * const sv
3432Cip	|bool	|SvTRUE_common	|NN SV *sv				\
3433				|const bool sv_2bool_is_fallback
3434Adip	|bool	|SvTRUE_NN	|NN SV *sv
3435Adip	|bool	|SvTRUE_nomg	|NULLOK SV *sv
3436ARdp	|char * |sv_uni_display |NN SV *dsv				\
3437				|NN SV *ssv				\
3438				|STRLEN pvlim				\
3439				|UV flags
3440Adp	|int	|sv_unmagic	|NN SV * const sv			\
3441				|const int type
3442Adp	|int	|sv_unmagicext	|NN SV * const sv			\
3443				|const int type 			\
3444				|NULLOK const MGVTBL *vtbl
3445AMbdp	|void	|sv_unref	|NN SV *sv
3446Adp	|void	|sv_unref_flags |NN SV * const ref			\
3447				|const U32 flags
3448Cdp	|void	|sv_untaint	|NN SV * const sv
3449Adp	|void	|sv_upgrade	|NN SV * const sv			\
3450				|svtype new_type
3451AMbdp	|void	|sv_usepvn	|NN SV *sv				\
3452				|NULLOK char *ptr			\
3453				|STRLEN len
3454Adp	|void	|sv_usepvn_flags|NN SV * const sv			\
3455				|NULLOK char *ptr			\
3456				|const STRLEN len			\
3457				|const U32 flags
3458AMbdp	|void	|sv_usepvn_mg	|NN SV *sv				\
3459				|NULLOK char *ptr			\
3460				|STRLEN len
3461Adp	|bool	|sv_utf8_decode |NN SV * const sv
3462AMbdp	|bool	|sv_utf8_downgrade					\
3463				|NN SV * const sv			\
3464				|const bool fail_ok
3465Adp	|bool	|sv_utf8_downgrade_flags				\
3466				|NN SV * const sv			\
3467				|const bool fail_ok			\
3468				|const U32 flags
3469Adm	|bool	|sv_utf8_downgrade_nomg 				\
3470				|NN SV * const sv			\
3471				|const bool fail_ok
3472Adp	|void	|sv_utf8_encode |NN SV * const sv
3473AMbdp	|STRLEN |sv_utf8_upgrade|NN SV *sv
3474Adm	|STRLEN |sv_utf8_upgrade_flags					\
3475				|NN SV * const sv			\
3476				|const I32 flags
3477Adp	|STRLEN |sv_utf8_upgrade_flags_grow				\
3478				|NN SV * const sv			\
3479				|const I32 flags			\
3480				|STRLEN extra
3481Adm	|STRLEN |sv_utf8_upgrade_nomg					\
3482				|NN SV *sv
3483Adip	|UV	|SvUV		|NN SV *sv
3484CMbp	|UV	|sv_2uv 	|NN SV *sv
3485Adp	|UV	|sv_2uv_flags	|NN SV * const sv			\
3486				|const I32 flags
3487Adip	|UV	|SvUV_nomg	|NN SV *sv
3488Adp	|void	|sv_vcatpvf	|NN SV * const sv			\
3489				|NN const char * const pat		\
3490				|NULLOK va_list * const args
3491Adp	|void	|sv_vcatpvf_mg	|NN SV * const sv			\
3492				|NN const char * const pat		\
3493				|NULLOK va_list * const args
3494Adp	|void	|sv_vcatpvfn	|NN SV * const sv			\
3495				|NN const char * const pat		\
3496				|const STRLEN patlen			\
3497				|NULLOK va_list * const args		\
3498				|NULLOK SV ** const svargs		\
3499				|const Size_t sv_count			\
3500				|NULLOK bool * const maybe_tainted
3501Adp	|void	|sv_vcatpvfn_flags					\
3502				|NN SV * const sv			\
3503				|NN const char * const pat		\
3504				|const STRLEN patlen			\
3505				|NULLOK va_list * const args		\
3506				|NULLOK SV ** const svargs		\
3507				|const Size_t sv_count			\
3508				|NULLOK bool * const maybe_tainted	\
3509				|const U32 flags
3510Adp	|void	|sv_vsetpvf	|NN SV * const sv			\
3511				|NN const char * const pat		\
3512				|NULLOK va_list * const args
3513Adp	|void	|sv_vsetpvf_mg	|NN SV * const sv			\
3514				|NN const char * const pat		\
3515				|NULLOK va_list * const args
3516Adp	|void	|sv_vsetpvfn	|NN SV * const sv			\
3517				|NN const char * const pat		\
3518				|const STRLEN patlen			\
3519				|NULLOK va_list * const args		\
3520				|NULLOK SV ** const svargs		\
3521				|const Size_t sv_count			\
3522				|NULLOK bool * const maybe_tainted
3523Cipx	|void	|switch_argstack|NN AV *to
3524Adp	|void	|switch_to_global_locale
3525Adp	|bool	|sync_locale
3526CTop	|void	|sys_init	|NN int *argc				\
3527				|NN char ***argv
3528CTop	|void	|sys_init3	|NN int *argc				\
3529				|NN char ***argv			\
3530				|NN char ***env
3531CTop	|void	|sys_term
3532
3533Cdp	|void	|taint_env
3534Cdp	|void	|taint_proper	|NULLOK const char *f			\
3535				|NN const char * const s
3536
3537Fpv	|OP *	|tied_method	|NN SV *methname			\
3538				|NN SV **mark				\
3539				|NN SV * const sv			\
3540				|NN const MAGIC * const mg		\
3541				|const U32 flags			\
3542				|U32 argc				\
3543				|...
3544Xp	|SSize_t|tmps_grow_p	|SSize_t ix
3545Xiop	|Stack_off_t|TOPMARK
3546Cm	|UV	|to_uni_fold	|UV c					\
3547				|NN U8 *p				\
3548				|NN STRLEN *lenp
3549Cp	|UV	|_to_uni_fold_flags					\
3550				|UV c					\
3551				|NN U8 *p				\
3552				|NN STRLEN *lenp			\
3553				|U8 flags
3554Cp	|UV	|to_uni_lower	|UV c					\
3555				|NN U8 *p				\
3556				|NN STRLEN *lenp
3557Cp	|UV	|to_uni_title	|UV c					\
3558				|NN U8 *p				\
3559				|NN STRLEN *lenp
3560Cp	|UV	|to_uni_upper	|UV c					\
3561				|NN U8 *p				\
3562				|NN STRLEN *lenp
3563Cp	|UV	|_to_utf8_fold_flags					\
3564				|NN const U8 *p 			\
3565				|NULLOK const U8 *e			\
3566				|NN U8 *ustrp				\
3567				|NULLOK STRLEN *lenp			\
3568				|U8 flags
3569
3570Cp	|UV	|_to_utf8_lower_flags					\
3571				|NN const U8 *p 			\
3572				|NULLOK const U8 *e			\
3573				|NN U8 *ustrp				\
3574				|NULLOK STRLEN *lenp			\
3575				|bool flags
3576Cp	|UV	|_to_utf8_title_flags					\
3577				|NN const U8 *p 			\
3578				|NULLOK const U8 *e			\
3579				|NN U8 *ustrp				\
3580				|NULLOK STRLEN *lenp			\
3581				|bool flags
3582Cp	|UV	|_to_utf8_upper_flags					\
3583				|NN const U8 *p 			\
3584				|NULLOK const U8 *e			\
3585				|NN U8 *ustrp				\
3586				|NULLOK STRLEN *lenp			\
3587				|bool flags
3588
3589EXop	|bool	|try_amagic_bin |int method				\
3590				|int flags
3591EXop	|bool	|try_amagic_un	|int method				\
3592				|int flags
3593Adp	|SSize_t|unpackstring	|NN const char *pat			\
3594				|NN const char *patend			\
3595				|NN const char *s			\
3596				|NN const char *strend			\
3597				|U32 flags
3598: Used in gv.c, hv.c
3599Cp	|void	|unshare_hek	|NULLOK HEK *hek
3600Cdp	|void	|unsharepvn	|NULLOK const char *sv			\
3601				|I32 len				\
3602				|U32 hash
3603Adp	|SV *	|upg_version	|NN SV *ver				\
3604				|bool qv
3605ARdip	|IV	|utf8_distance	|NN const U8 *a 			\
3606				|NN const U8 *b
3607ARTdip	|U8 *	|utf8_hop	|NN const U8 *s 			\
3608				|SSize_t off
3609ARTdip	|U8 *	|utf8_hop_back	|NN const U8 *s 			\
3610				|SSize_t off				\
3611				|NN const U8 *start
3612ARTdip	|U8 *	|utf8_hop_forward					\
3613				|NN const U8 *s 			\
3614				|SSize_t off				\
3615				|NN const U8 *end
3616ARTdip	|U8 *	|utf8_hop_safe	|NN const U8 *s 			\
3617				|SSize_t off				\
3618				|NN const U8 *start			\
3619				|NN const U8 *end
3620ARdp	|STRLEN |utf8_length	|NN const U8 *s0			\
3621				|NN const U8 *e
3622
3623AMTdp	|UV	|utf8n_to_uvchr |NN const U8 *s 			\
3624				|STRLEN curlen				\
3625				|NULLOK STRLEN *retlen			\
3626				|const U32 flags
3627AMTdp	|UV	|utf8n_to_uvchr_error					\
3628				|NN const U8 *s 			\
3629				|STRLEN curlen				\
3630				|NULLOK STRLEN *retlen			\
3631				|const U32 flags			\
3632				|NULLOK U32 *errors
3633ATdip	|UV	|utf8n_to_uvchr_msgs					\
3634				|NN const U8 *s 			\
3635				|STRLEN curlen				\
3636				|NULLOK STRLEN *retlen			\
3637				|const U32 flags			\
3638				|NULLOK U32 *errors			\
3639				|NULLOK AV **msgs
3640CTp	|UV	|_utf8n_to_uvchr_msgs_helper				\
3641				|NN const U8 *s 			\
3642				|STRLEN curlen				\
3643				|NULLOK STRLEN *retlen			\
3644				|const U32 flags			\
3645				|NULLOK U32 *errors			\
3646				|NULLOK AV **msgs
3647CDbdp	|UV	|utf8n_to_uvuni |NN const U8 *s 			\
3648				|STRLEN curlen				\
3649				|NULLOK STRLEN *retlen			\
3650				|U32 flags
3651Adpx	|U8 *	|utf8_to_bytes	|NN U8 *s				\
3652				|NN STRLEN *lenp
3653EMXp	|U8 *	|utf16_to_utf8	|NN U8 *p				\
3654				|NN U8 *d				\
3655				|Size_t bytelen 			\
3656				|NN Size_t *newlen
3657EXp	|U8 *	|utf16_to_utf8_base					\
3658				|NN U8 *p				\
3659				|NN U8 *d				\
3660				|Size_t bytelen 			\
3661				|NN Size_t *newlen			\
3662				|const bool high			\
3663				|const bool low
3664EXpx	|U8 *	|utf8_to_utf16_base					\
3665				|NN U8 *s				\
3666				|NN U8 *d				\
3667				|Size_t bytelen 			\
3668				|NN Size_t *newlen			\
3669				|const bool high			\
3670				|const bool low
3671EMXp	|U8 *	|utf16_to_utf8_reversed 				\
3672				|NN U8 *p				\
3673				|NN U8 *d				\
3674				|Size_t bytelen 			\
3675				|NN Size_t *newlen
3676ADbdp	|UV	|utf8_to_uvchr	|NN const U8 *s 			\
3677				|NULLOK STRLEN *retlen
3678AMdp	|UV	|utf8_to_uvchr_buf					\
3679				|NN const U8 *s 			\
3680				|NN const U8 *send			\
3681				|NULLOK STRLEN *retlen
3682Cip	|UV	|utf8_to_uvchr_buf_helper				\
3683				|NN const U8 *s 			\
3684				|NN const U8 *send			\
3685				|NULLOK STRLEN *retlen
3686CDbdp	|UV	|utf8_to_uvuni	|NN const U8 *s 			\
3687				|NULLOK STRLEN *retlen
3688: Used in perly.y
3689p	|void	|utilize	|int aver				\
3690				|I32 floor				\
3691				|NULLOK OP *version			\
3692				|NN OP *idop				\
3693				|NULLOK OP *arg
3694
3695Adm	|U8 *	|uvchr_to_utf8	|NN U8 *d				\
3696				|UV uv
3697Adm	|U8 *	|uvchr_to_utf8_flags					\
3698				|NN U8 *d				\
3699				|UV uv					\
3700				|UV flags
3701Adm	|U8 *	|uvchr_to_utf8_flags_msgs				\
3702				|NN U8 *d				\
3703				|UV uv					\
3704				|UV flags				\
3705				|NULLOK HV **msgs
3706CMdp	|U8 *	|uvoffuni_to_utf8_flags 				\
3707				|NN U8 *d				\
3708				|UV uv					\
3709				|UV flags
3710Cp	|U8 *	|uvoffuni_to_utf8_flags_msgs				\
3711				|NN U8 *d				\
3712				|UV input_uv				\
3713				|const UV flags 			\
3714				|NULLOK HV **msgs
3715CDbp	|U8 *	|uvuni_to_utf8	|NN U8 *d				\
3716				|UV uv
3717EXdpx	|bool	|validate_proto |NN SV *name				\
3718				|NULLOK SV *proto			\
3719				|bool warn				\
3720				|bool curstash
3721CRTdip	|UV	|valid_utf8_to_uvchr					\
3722				|NN const U8 *s 			\
3723				|NULLOK STRLEN *retlen
3724Adp	|int	|vcmp		|NN SV *lhv				\
3725				|NN SV *rhv
3726Adpr	|void	|vcroak 	|NULLOK const char *pat 		\
3727				|NULLOK va_list *args
3728Adp	|void	|vdeb		|NN const char *pat			\
3729				|NULLOK va_list *args
3730Adp	|void	|vfatal_warner	|U32 err				\
3731				|NN const char *pat			\
3732				|NULLOK va_list *args
3733Adp	|char * |vform		|NN const char *pat			\
3734				|NULLOK va_list *args
3735: Used by Data::Alias
3736EXp	|void	|vivify_defelem |NN SV *sv
3737: Used in pp.c
3738Rp	|SV *	|vivify_ref	|NN SV *sv				\
3739				|U32 to_what
3740Adp	|void	|vload_module	|U32 flags				\
3741				|NN SV *name				\
3742				|NULLOK SV *ver 			\
3743				|NULLOK va_list *args
3744Adp	|SV *	|vmess		|NN const char *pat			\
3745				|NULLOK va_list *args
3746ARdp	|SV *	|vnewSVpvf	|NN const char * const pat		\
3747				|NULLOK va_list * const args
3748Adp	|SV *	|vnormal	|NN SV *vs
3749Adp	|SV *	|vnumify	|NN SV *vs
3750Adp	|SV *	|vstringify	|NN SV *vs
3751Adp	|SV *	|vverify	|NN SV *vs
3752Adp	|void	|vwarn		|NN const char *pat			\
3753				|NULLOK va_list *args
3754Adp	|void	|vwarner	|U32 err				\
3755				|NN const char *pat			\
3756				|NULLOK va_list *args
3757: Used in pp_sys.c
3758p	|I32	|wait4pid	|Pid_t pid				\
3759				|NN int *statusp			\
3760				|int flags
3761Adfpv	|void	|warn		|NN const char *pat			\
3762				|...
3763Adfpv	|void	|warner 	|U32 err				\
3764				|NN const char *pat			\
3765				|...
3766Adp	|void	|warn_sv	|NN SV *baseex
3767: Used in cop.h
3768RXop	|I32	|was_lvalue_sub
3769: FIXME
3770p	|void	|watch		|NN char **addr
3771Adm	|I32	|whichsig	|NN const char *sig
3772Adp	|I32	|whichsig_pv	|NN const char *sig
3773Adp	|I32	|whichsig_pvn	|NN const char *sig			\
3774				|STRLEN len
3775Adp	|I32	|whichsig_sv	|NN SV *sigsv
3776Adpx	|void	|wrap_infix_plugin					\
3777				|NN Perl_infix_plugin_t new_plugin	\
3778				|NN Perl_infix_plugin_t *old_plugin_p
3779Adpx	|void	|wrap_keyword_plugin					\
3780				|NN Perl_keyword_plugin_t new_plugin	\
3781				|NN Perl_keyword_plugin_t *old_plugin_p
3782Adp	|void	|wrap_op_checker|Optype opcode				\
3783				|NN Perl_check_t new_checker		\
3784				|NN Perl_check_t *old_checker_p
3785: Used in pp_ctl.c
3786p	|void	|write_to_stderr|NN SV *msv
3787Xp	|void	|xs_boot_epilog |const SSize_t ax
3788
3789FTXopv	|Stack_off_t|xs_handshake					\
3790				|const U32 key				\
3791				|NN void *v_my_perl			\
3792				|NN const char *file			\
3793				|...
3794: Used in op.c
3795p	|int	|yyerror	|NN const char * const s
3796p	|int	|yyerror_pv	|NN const char * const s		\
3797				|U32 flags
3798p	|int	|yyerror_pvn	|NULLOK const char * const s		\
3799				|STRLEN len				\
3800				|U32 flags
3801: Used in perly.y, and by Data::Alias
3802EXp	|int	|yylex
3803: Used in perl.c, pp_ctl.c
3804p	|int	|yyparse	|int gramtype
3805p	|void	|yyquit
3806p	|void	|yyunlex
3807#if defined(DEBUGGING)
3808: Used in mg.c
3809Rp	|int	|get_debug_opts |NN const char **s			\
3810				|bool givehelp
3811Adop	|void	|hv_assert	|NN HV *hv
3812Cdp	|void	|pad_setsv	|PADOFFSET po				\
3813				|NN SV *sv
3814Cdp	|SV *	|pad_sv 	|PADOFFSET po
3815TXp	|void	|set_padlist	|NN CV *cv				\
3816				|NULLOK PADLIST *padlist
3817#endif
3818#if defined(DEBUG_LEAKING_SCALARS_FORK_DUMP)
3819: Used in sv.c
3820p	|void	|dump_sv_child	|NN SV *sv
3821#endif
3822#if !defined(EBCDIC)
3823CRTip	|unsigned int|variant_byte_number				\
3824				|PERL_UINTMAX_T word
3825#endif
3826#if defined(F_FREESP) && !defined(HAS_CHSIZE) && !defined(HAS_TRUNCATE)
3827ARdp	|I32	|my_chsize	|int fd 				\
3828				|Off_t length
3829#endif
3830#if !defined(HAS_GETENV_LEN)
3831: Used in hv.c
3832p	|char * |getenv_len	|NN const char *env_elem		\
3833				|NN unsigned long *len
3834#endif
3835#if !defined(HAS_MKOSTEMP)
3836Tdop	|int	|my_mkostemp	|NN char *templte			\
3837				|int flags
3838#endif
3839#if !defined(HAS_MKSTEMP)
3840Tdop	|int	|my_mkstemp	|NN char *templte
3841#endif
3842#if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
3843: Defined in doio.c, used only in pp_sys.c
3844p	|I32	|do_ipcctl	|I32 optype				\
3845				|NN SV **mark				\
3846				|NN SV **sp
3847: Defined in doio.c, used only in pp_sys.c
3848p	|I32	|do_ipcget	|I32 optype				\
3849				|NN SV **mark				\
3850				|NN SV **sp
3851: Defined in doio.c, used only in pp_sys.c
3852p	|SSize_t|do_msgrcv	|NN SV **mark				\
3853				|NN SV **sp
3854: Defined in doio.c, used only in pp_sys.c
3855p	|I32	|do_msgsnd	|NN SV **mark				\
3856				|NN SV **sp
3857: Defined in doio.c, used only in pp_sys.c
3858p	|I32	|do_semop	|NN SV **mark				\
3859				|NN SV **sp
3860: Defined in doio.c, used only in pp_sys.c
3861p	|I32	|do_shmio	|I32 optype				\
3862				|NN SV **mark				\
3863				|NN SV **sp
3864#endif /* defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) */
3865#if defined(HAS_PIPE)
3866Rp	|int	|PerlProc_pipe_cloexec					\
3867				|NN int *pipefd
3868#endif
3869#if !defined(HAS_RENAME)
3870: Used in pp_sys.c
3871p	|I32	|same_dirent	|NN const char *a			\
3872				|NN const char *b
3873#endif
3874#if !defined(HAS_SIGNBIT)
3875APTdox	|int	|Perl_signbit	|NV f
3876#endif
3877#if defined(HAS_SOCKET)
3878Rp	|int	|PerlSock_accept_cloexec				\
3879				|int listenfd				\
3880				|NULLOK struct sockaddr *addr		\
3881				|NULLOK Sock_size_t *addrlen
3882Rp	|int	|PerlSock_socket_cloexec				\
3883				|int domain				\
3884				|int type				\
3885				|int protocol
3886#endif
3887#if   defined(HAS_SOCKETPAIR) ||                                     \
3888    ( defined(AF_INET) && defined(HAS_SOCKET) && defined(PF_INET) && \
3889      defined(SOCK_DGRAM) )
3890Rp	|int	|PerlSock_socketpair_cloexec				\
3891				|int domain				\
3892				|int type				\
3893				|int protocol				\
3894				|NN int *pairfd
3895#endif
3896#if !defined(HAS_STRLCAT)
3897ATdip	|Size_t |my_strlcat	|NULLOK char *dst			\
3898				|NULLOK const char *src 		\
3899				|Size_t size
3900#endif
3901#if !defined(HAS_STRLCPY)
3902ATds	|Size_t |my_strlcpy	|NULLOK char *dst			\
3903				|NULLOK const char *src 		\
3904				|Size_t size
3905#endif
3906#if !defined(HAS_STRNLEN)
3907ATdip	|Size_t |my_strnlen	|NN const char *str			\
3908				|Size_t maxlen
3909#endif
3910#if defined(HAVE_INTERP_INTERN)
3911Cp	|void	|sys_intern_clear
3912Cp	|void	|sys_intern_init
3913# if defined(USE_ITHREADS)
3914Cp	|void	|sys_intern_dup |NN struct interp_intern *src		\
3915				|NN struct interp_intern *dst
3916# endif
3917#endif
3918#if defined(_MSC_VER)
3919p	|int	|magic_regdatum_set					\
3920				|NN SV *sv				\
3921				|NN MAGIC *mg
3922#else
3923pr	|int	|magic_regdatum_set					\
3924				|NN SV *sv				\
3925				|NN MAGIC *mg
3926#endif
3927#if defined(MULTIPLICITY)
3928ATdfprv |void	|croak_nocontext|NULLOK const char *pat 		\
3929				|...
3930ATdfpv	|void	|deb_nocontext	|NN const char *pat			\
3931				|...
3932ATdfprv |OP *	|die_nocontext	|NULLOK const char *pat 		\
3933				|...
3934ATdfpv	|char * |form_nocontext |NN const char *pat			\
3935				|...
3936AFTdpv	|void	|load_module_nocontext					\
3937				|U32 flags				\
3938				|NN SV *name				\
3939				|NULLOK SV *ver 			\
3940				|...
3941ATdfpv	|SV *	|mess_nocontext |NN const char *pat			\
3942				|...
3943Cdop	|void * |my_cxt_init	|NN int *indexp 			\
3944				|size_t size
3945ATdfpv	|SV *	|newSVpvf_nocontext					\
3946				|NN const char * const pat		\
3947				|...
3948ATdfpv	|void	|sv_catpvf_mg_nocontext 				\
3949				|NN SV * const sv			\
3950				|NN const char * const pat		\
3951				|...
3952ATdfpv	|void	|sv_catpvf_nocontext					\
3953				|NN SV * const sv			\
3954				|NN const char * const pat		\
3955				|...
3956ATdfpv	|void	|sv_setpvf_mg_nocontext 				\
3957				|NN SV * const sv			\
3958				|NN const char * const pat		\
3959				|...
3960ATdfpv	|void	|sv_setpvf_nocontext					\
3961				|NN SV * const sv			\
3962				|NN const char * const pat		\
3963				|...
3964ATdfpv	|void	|warner_nocontext					\
3965				|U32 err				\
3966				|NN const char *pat			\
3967				|...
3968ATdfpv	|void	|warn_nocontext |NN const char *pat			\
3969				|...
3970#endif /* defined(MULTIPLICITY) */
3971#if defined(MYMALLOC)
3972Adp	|void	|dump_mstats	|NN const char *s
3973Cp	|int	|get_mstats	|NN perl_mstats_t *buf			\
3974				|int buflen				\
3975				|int level
3976RTp	|MEM_SIZE|malloced_size |NN void *p
3977RTp	|MEM_SIZE|malloc_good_size					\
3978				|size_t nbytes
3979#endif
3980#if defined(PERL_ANY_COW)
3981: Used in regexec.c
3982EXpx	|SV *	|sv_setsv_cow	|NULLOK SV *dsv 			\
3983				|NN SV *ssv
3984#endif
3985#if defined(PERL_CORE)
3986p	|void	|opslab_force_free					\
3987				|NN OPSLAB *slab
3988p	|void	|opslab_free	|NN OPSLAB *slab
3989p	|void	|opslab_free_nopad					\
3990				|NN OPSLAB *slab
3991p	|void	|parser_free_nexttoke_ops				\
3992				|NN yy_parser *parser			\
3993				|NN OPSLAB *slab
3994RTi	|bool	|should_warn_nl |NN const char *pv
3995# if defined(PERL_DEBUG_READONLY_OPS)
3996ep	|void	|Slab_to_ro	|NN OPSLAB *slab
3997ep	|void	|Slab_to_rw	|NN OPSLAB * const slab
3998# endif
3999#endif /* defined(PERL_CORE) */
4000#if defined(PERL_CORE) || defined(PERL_EXT)
4001ERXdp	|bool	|isSCRIPT_RUN	|NN const U8 *s 			\
4002				|NN const U8 *send			\
4003				|const bool utf8_target
4004ERTXdip |bool	|is_utf8_non_invariant_string				\
4005				|NN const U8 * const s			\
4006				|STRLEN len
4007Ei	|STRLEN |sv_or_pv_pos_u2b					\
4008				|NN SV *sv				\
4009				|NN const char *pv			\
4010				|STRLEN pos				\
4011				|NULLOK STRLEN *lenp
4012ERTdi	|Size_t |variant_under_utf8_count				\
4013				|NN const U8 * const s			\
4014				|NN const U8 * const e
4015# if !defined(HAS_MEMRCHR)
4016ETei	|void * |my_memrchr	|NN const char *s			\
4017				|const char c				\
4018				|const STRLEN len
4019# endif
4020#endif
4021#if defined(PERL_CORE) || defined(PERL_USE_VOLATILE_API)
4022Adp	|void	|finalize_optree|NN OP *o
4023Adp	|void	|optimize_optree|NN OP *o
4024#endif
4025#if defined(PERL_DEBUG_READONLY_COW)
4026p	|void	|sv_buf_to_ro	|NN SV *sv
4027#endif
4028#if defined(PERL_DEBUG_READONLY_OPS)
4029: FIXME - can be static.
4030eopx	|PADOFFSET|op_refcnt_dec|NN OP *o
4031: Used in OpREFCNT_inc() in sv.c
4032eopx	|OP *	|op_refcnt_inc	|NULLOK OP *o
4033#endif
4034#if defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION)
4035Mp	|bool	|do_exec	|NN const char *cmd
4036#else
4037p	|bool	|do_exec	|NN const char *cmd
4038#endif
4039#if defined(PERL_DONT_CREATE_GVSV)
4040AMbdp	|GV *	|gv_SVadd	|NULLOK GV *gv
4041#endif
4042#if defined(PERL_IMPLICIT_SYS)
4043CTo	|PerlInterpreter *|perl_alloc_using				\
4044				|NN struct IPerlMem *ipM		\
4045				|NN struct IPerlMem *ipMS		\
4046				|NN struct IPerlMem *ipMP		\
4047				|NN struct IPerlEnv *ipE		\
4048				|NN struct IPerlStdIO *ipStd		\
4049				|NN struct IPerlLIO *ipLIO		\
4050				|NN struct IPerlDir *ipD		\
4051				|NN struct IPerlSock *ipS		\
4052				|NN struct IPerlProc *ipP
4053# if defined(USE_ITHREADS)
4054CTo	|PerlInterpreter *|perl_clone_using				\
4055				|NN PerlInterpreter *proto_perl 	\
4056				|UV flags				\
4057				|NN struct IPerlMem *ipM		\
4058				|NN struct IPerlMem *ipMS		\
4059				|NN struct IPerlMem *ipMP		\
4060				|NN struct IPerlEnv *ipE		\
4061				|NN struct IPerlStdIO *ipStd		\
4062				|NN struct IPerlLIO *ipLIO		\
4063				|NN struct IPerlDir *ipD		\
4064				|NN struct IPerlSock *ipS		\
4065				|NN struct IPerlProc *ipP
4066# endif
4067#else
4068Adp	|I32	|my_pclose	|NULLOK PerlIO *ptr
4069Adp	|PerlIO *|my_popen	|NN const char *cmd			\
4070				|NN const char *mode
4071# if defined(USE_ITHREADS)
4072i	|bool	|PerlEnv_putenv |NN char *str
4073# endif
4074#endif
4075#if defined(PERL_IN_AV_C)
4076S	|MAGIC *|get_aux_mg	|NN AV *av
4077#endif
4078#if defined(PERL_IN_BUILTIN_C) || defined(PERL_IN_OP_C)
4079p	|void	|finish_export_lexical
4080p	|void	|import_builtin_bundle					\
4081				|U16 ver
4082p	|void	|prepare_export_lexical
4083#endif
4084#if defined(PERL_IN_CLASS_C) || defined(PERL_IN_OP_C)    || \
4085    defined(PERL_IN_PAD_C)   || defined(PERL_IN_PERLY_C) || \
4086    defined(PERL_IN_TOKE_C)
4087; Functions in class.c that are called by the parser (perly.c, toke.c, pad.c)
4088Cp	|void	|class_add_ADJUST					\
4089				|NN HV *stash				\
4090				|NN CV *cv
4091Cp	|void	|class_add_field|NN HV *stash				\
4092				|NN PADNAME *pn
4093Cp	|void	|class_apply_attributes 				\
4094				|NN HV *stash				\
4095				|NULLOK OP *attrlist
4096Cp	|void	|class_apply_field_attributes				\
4097				|NN PADNAME *pn 			\
4098				|NULLOK OP *attrlist
4099Cp	|void	|class_prepare_initfield_parse
4100Cp	|void	|class_prepare_method_parse				\
4101				|NN CV *cv
4102Cp	|void	|class_seal_stash					\
4103				|NN HV *stash
4104Cp	|void	|class_set_field_defop					\
4105				|NN PADNAME *pn 			\
4106				|OPCODE defmode 			\
4107				|NN OP *defop
4108Cp	|void	|class_setup_stash					\
4109				|NN HV *stash
4110Cp	|OP *	|class_wrap_method_body 				\
4111				|NULLOK OP *o
4112Cp	|void	|croak_kw_unless_class					\
4113				|NN const char *kw
4114#endif /* defined(PERL_IN_CLASS_C) || defined(PERL_IN_OP_C)    ||
4115          defined(PERL_IN_PAD_C)   || defined(PERL_IN_PERLY_C) ||
4116          defined(PERL_IN_TOKE_C) */
4117#if defined(PERL_IN_DEB_C)
4118S	|void	|deb_stack_n	|NN SV **stack_base			\
4119				|SSize_t stack_min			\
4120				|SSize_t stack_max			\
4121				|SSize_t mark_min			\
4122				|SSize_t mark_max			\
4123				|SSize_t nonrc_base
4124#endif
4125#if defined(PERL_IN_DOIO_C)
4126S	|bool	|argvout_final	|NN MAGIC *mg				\
4127				|NN IO *io				\
4128				|bool is_explicit
4129S	|void	|exec_failed	|NN const char *cmd			\
4130				|int fd 				\
4131				|int do_report
4132ST	|bool	|is_fork_open	|NN const char *name
4133S	|bool	|openn_cleanup	|NN GV *gv				\
4134				|NN IO *io				\
4135				|NULLOK PerlIO *fp			\
4136				|NN char *mode				\
4137				|NN const char *oname			\
4138				|NULLOK PerlIO *saveifp 		\
4139				|NULLOK PerlIO *saveofp 		\
4140				|int savefd				\
4141				|char savetype				\
4142				|int writing				\
4143				|bool was_fdopen			\
4144				|NULLOK const char *type		\
4145				|NULLOK Stat_t *statbufp
4146S	|IO *	|openn_setup	|NN GV *gv				\
4147				|NN char *mode				\
4148				|NN PerlIO **saveifp			\
4149				|NN PerlIO **saveofp			\
4150				|NN int *savefd 			\
4151				|NN char *savetype
4152# if !defined(DOSISH)
4153RS	|bool	|ingroup	|Gid_t testgid				\
4154				|bool effective
4155# endif
4156#endif
4157#if defined(PERL_IN_DOOP_C)
4158RS	|Size_t |do_trans_complex					\
4159				|NN SV * const sv			\
4160				|NN const OPtrans_map * const tbl
4161RS	|Size_t |do_trans_count |NN SV * const sv			\
4162				|NN const OPtrans_map * const tbl
4163RS	|Size_t |do_trans_count_invmap					\
4164				|NN SV * const sv			\
4165				|NN AV * const map
4166RS	|Size_t |do_trans_invmap|NN SV * const sv			\
4167				|NN AV * const map
4168RS	|Size_t |do_trans_simple|NN SV * const sv			\
4169				|NN const OPtrans_map * const tbl
4170#endif
4171#if defined(PERL_IN_DOOP_C)    || defined(PERL_IN_OP_C)        || \
4172    defined(PERL_IN_PP_C)      || defined(PERL_IN_REGCOMP_ANY) || \
4173    defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C)      || \
4174    defined(PERL_IN_UTF8_C)
4175ERTi	|bool * |get_invlist_offset_addr				\
4176				|NN SV *invlist
4177ERTi	|UV *	|invlist_array	|NN SV * const invlist
4178ERTi	|bool	|_invlist_contains_cp					\
4179				|NN SV * const invlist			\
4180				|const UV cp
4181ERTi	|UV	|_invlist_len	|NN SV * const invlist
4182ERTXp	|SSize_t|_invlist_search|NN SV * const invlist			\
4183				|const UV cp
4184ERTi	|bool	|is_invlist	|NULLOK const SV * const invlist
4185#endif
4186#if defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || \
4187    defined(PERL_IN_REGCOMP_ANY)
4188ERi	|SV *	|add_cp_to_invlist					\
4189				|NULLOK SV *invlist			\
4190				|const UV cp
4191Ei	|void	|invlist_extend |NN SV * const invlist			\
4192				|const UV len
4193ERTi	|UV	|invlist_highest|NN SV * const invlist
4194Ei	|void	|invlist_set_len|NN SV * const invlist			\
4195				|const UV len				\
4196				|const bool offset
4197#endif
4198#if defined(PERL_IN_DOOP_C)      || defined(PERL_IN_OP_C) || \
4199    defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_UTF8_C)
4200ERXp	|SV *	|_add_range_to_invlist					\
4201				|NULLOK SV *invlist			\
4202				|UV start				\
4203				|UV end
4204m	|void	|_invlist_intersection					\
4205				|NN SV * const a			\
4206				|NN SV * const b			\
4207				|NN SV **i
4208EXp	|void	|_invlist_intersection_maybe_complement_2nd		\
4209				|NULLOK SV * const a			\
4210				|NN SV * const b			\
4211				|const bool complement_b		\
4212				|NN SV **i
4213EXp	|void	|_invlist_invert|NN SV * const invlist
4214m	|void	|_invlist_subtract					\
4215				|NN SV * const a			\
4216				|NN SV * const b			\
4217				|NN SV **result
4218Cm	|void	|_invlist_union |NULLOK SV * const a			\
4219				|NN SV * const b			\
4220				|NN SV **output
4221EXp	|void	|_invlist_union_maybe_complement_2nd			\
4222				|NULLOK SV * const a			\
4223				|NN SV * const b			\
4224				|const bool complement_b		\
4225				|NN SV **output
4226ERXp	|SV *	|_new_invlist	|IV initial_size
4227ERXp	|SV *	|_setup_canned_invlist					\
4228				|const STRLEN size			\
4229				|const UV element0			\
4230				|NN UV **other_elements_ptr
4231#endif /* defined(PERL_IN_DOOP_C)      || defined(PERL_IN_OP_C) ||
4232          defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_UTF8_C) */
4233#if defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_REGCOMP_C) || \
4234    defined(PERL_IN_TOKE_C)
4235ERXp	|const char *|form_alien_digit_msg				\
4236				|const U8 which 			\
4237				|const STRLEN valids_len		\
4238				|NN const char * const first_bad	\
4239				|NN const char * const send		\
4240				|const bool UTF 			\
4241				|const bool braced
4242ERXp	|bool	|grok_bslash_c	|const char source			\
4243				|NN U8 *result				\
4244				|NN const char **message		\
4245				|NULLOK U32 *packed_warn
4246ERXp	|bool	|grok_bslash_o	|NN char **s				\
4247				|NN const char * const send		\
4248				|NN UV *uv				\
4249				|NN const char **message		\
4250				|NULLOK U32 *packed_warn		\
4251				|const bool strict			\
4252				|const bool allow_UV_MAX		\
4253				|const bool utf8
4254ERXp	|bool	|grok_bslash_x	|NN char **s				\
4255				|NN const char * const send		\
4256				|NN UV *uv				\
4257				|NN const char **message		\
4258				|NULLOK U32 *packed_warn		\
4259				|const bool strict			\
4260				|const bool allow_UV_MAX		\
4261				|const bool utf8
4262#endif
4263#if defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_REGCOMP_C) || \
4264    defined(PERL_IN_TOKE_C)   || defined(PERL_IN_UTF8_C)
4265ERXp	|const char *|form_cp_too_large_msg				\
4266				|const U8 which 			\
4267				|NULLOK const char *string		\
4268				|const Size_t len			\
4269				|const UV cp
4270#endif
4271#if defined(PERL_IN_DUMP_C)
4272S	|CV *	|deb_curcv	|I32 ix
4273Sd	|void	|debprof	|NN const OP *o
4274S	|SV *	|pm_description |NN const PMOP *pm
4275S	|UV	|sequence_num	|NULLOK const OP *o
4276#endif
4277#if defined(PERL_IN_DUMP_C)  || defined(PERL_IN_HV_C) || \
4278    defined(PERL_IN_SCOPE_C) || defined(PERL_IN_SV_C)
4279opx	|void	|hv_kill_backrefs					\
4280				|NN HV *hv
4281#endif
4282#if defined(PERL_IN_DUMP_C) || defined(PERL_IN_OP_C) || \
4283    defined(PERL_IN_REGCOMP_ANY)
4284EXp	|void	|_invlist_dump	|NN PerlIO *file			\
4285				|I32 level				\
4286				|NN const char * const indent		\
4287				|NN SV * const invlist
4288#endif
4289#if defined(PERL_IN_GV_C)
4290S	|bool	|find_default_stash					\
4291				|NN HV **stash				\
4292				|NN const char *name			\
4293				|STRLEN len				\
4294				|const U32 is_utf8			\
4295				|const I32 add				\
4296				|const svtype sv_type
4297i	|GV *	|gv_fetchmeth_internal					\
4298				|NULLOK HV *stash			\
4299				|NULLOK SV *meth			\
4300				|NULLOK const char *name		\
4301				|STRLEN len				\
4302				|I32 level				\
4303				|U32 flags
4304S	|void	|gv_init_svtype |NN GV *gv				\
4305				|const svtype sv_type
4306S	|bool	|gv_is_in_main	|NN const char *name			\
4307				|STRLEN len				\
4308				|const U32 is_utf8
4309S	|bool	|gv_magicalize	|NN GV *gv				\
4310				|NN HV *stash				\
4311				|NN const char *name			\
4312				|STRLEN len				\
4313				|const svtype sv_type
4314S	|void	|gv_magicalize_isa					\
4315				|NN GV *gv
4316i	|HV *	|gv_stashpvn_internal					\
4317				|NN const char *name			\
4318				|U32 namelen				\
4319				|I32 flags
4320S	|void	|maybe_multimagic_gv					\
4321				|NN GV *gv				\
4322				|NN const char *name			\
4323				|const svtype sv_type
4324S	|bool	|parse_gv_stash_name					\
4325				|NN HV **stash				\
4326				|NN GV **gv				\
4327				|NN const char **name			\
4328				|NN STRLEN *len 			\
4329				|NN const char *nambeg			\
4330				|STRLEN full_len			\
4331				|const U32 is_utf8			\
4332				|const I32 add
4333S	|void	|require_tie_mod|NN GV *gv				\
4334				|NN const char varname			\
4335				|NN const char *name			\
4336				|STRLEN len				\
4337				|const U32 flags
4338#endif /* defined(PERL_IN_GV_C) */
4339#if defined(PERL_IN_GV_C)  || defined(PERL_IN_OP_C) || \
4340    defined(PERL_IN_PAD_C) || defined(PERL_IN_SV_C)
4341: Used in gv.c
4342op	|void	|sv_add_backref |NN SV * const tsv			\
4343				|NN SV * const sv
4344#endif
4345#if defined(PERL_IN_GV_C) || defined(PERL_IN_UNIVERSAL_C)
4346EGdp	|HV *	|gv_stashsvpvn_cached					\
4347				|SV *namesv				\
4348				|const char *name			\
4349				|U32 namelen				\
4350				|I32 flags
4351#endif
4352#if defined(PERL_IN_HV_C)
4353Sx	|void	|clear_placeholders					\
4354				|NN HV *hv				\
4355				|U32 items
4356S	|void	|hsplit 	|NN HV *hv				\
4357				|STRLEN const oldsize			\
4358				|STRLEN newsize
4359S	|struct xpvhv_aux *|hv_auxinit					\
4360				|NN HV *hv
4361Sx	|SV *	|hv_delete_common					\
4362				|NULLOK HV *hv				\
4363				|NULLOK SV *keysv			\
4364				|NULLOK const char *key 		\
4365				|STRLEN klen				\
4366				|int k_flags				\
4367				|I32 d_flags				\
4368				|U32 hash
4369S	|SV *	|hv_free_ent_ret|NN HE *entry
4370S	|void	|hv_free_entries|NN HV *hv
4371ST	|void	|hv_magic_check |NN HV *hv				\
4372				|NN bool *needs_copy			\
4373				|NN bool *needs_store
4374Sr	|void	|hv_notallowed	|int flags				\
4375				|NN const char *key			\
4376				|I32 klen				\
4377				|NN const char *msg
4378S	|SV *	|refcounted_he_value					\
4379				|NN const struct refcounted_he *he
4380RSTa	|HEK *	|save_hek_flags |NN const char *str			\
4381				|I32 len				\
4382				|U32 hash				\
4383				|int flags
4384RS	|HEK *	|share_hek_flags|NN const char *str			\
4385				|STRLEN len				\
4386				|U32 hash				\
4387				|int flags
4388S	|void	|unshare_hek_or_pvn					\
4389				|NULLOK const HEK *hek			\
4390				|NULLOK const char *str 		\
4391				|I32 len				\
4392				|U32 hash
4393# if !defined(PURIFY)
4394RS	|HE *	|new_he
4395# endif
4396#endif /* defined(PERL_IN_HV_C) */
4397#if defined(PERL_IN_HV_C) || defined(PERL_IN_MG_C) || defined(PERL_IN_SV_C)
4398: Used in hv.c and mg.c
4399opx	|void	|sv_kill_backrefs					\
4400				|NN SV * const sv			\
4401				|NULLOK AV * const av
4402#endif
4403#if defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C)
4404op	|SV *	|hfree_next_entry					\
4405				|NN HV *hv				\
4406				|NN STRLEN *indexp
4407#endif
4408#if defined(PERL_IN_LOCALE_C)
4409S	|utf8ness_t|get_locale_string_utf8ness_i			\
4410				|NULLOK const char *string		\
4411				|const locale_utf8ness_t known_utf8	\
4412				|NULLOK const char *locale		\
4413				|const locale_category_index cat_index
4414S	|void	|ints_to_tm	|NN struct tm *my_tm			\
4415				|NN const char *locale			\
4416				|int sec				\
4417				|int min				\
4418				|int hour				\
4419				|int mday				\
4420				|int mon				\
4421				|int year				\
4422				|int wday				\
4423				|int yday				\
4424				|int isdst
4425S	|bool	|is_locale_utf8 |NN const char *locale
4426S	|HV *	|my_localeconv	|const int item
4427S	|void	|populate_hash_from_C_localeconv			\
4428				|NN HV *hv				\
4429				|NN const char *locale			\
4430				|const U32 which_mask			\
4431				|NN const lconv_offset_t *strings[2]	\
4432				|NN const lconv_offset_t *integers[2]
4433S	|bool	|strftime8	|NN const char *fmt			\
4434				|NN SV *sv				\
4435				|NN const char *locale			\
4436				|NN const struct tm *mytm		\
4437				|const utf8ness_t fmt_utf8ness		\
4438				|NN utf8ness_t *result_utf8ness 	\
4439				|const bool called_externally
4440Sf	|bool	|strftime_tm	|NN const char *fmt			\
4441				|NN SV *sv				\
4442				|NN const char *locale			\
4443				|NN const struct tm *mytm
4444S	|SV *	|sv_strftime_common					\
4445				|NN SV *fmt				\
4446				|NN const char *locale			\
4447				|NN const struct tm *mytm
4448# if defined(HAS_MISSING_LANGINFO_ITEM_) || !defined(HAS_NL_LANGINFO)
4449S	|const char *|emulate_langinfo					\
4450				|const PERL_INTMAX_T item		\
4451				|NN const char *locale			\
4452				|NN SV *sv				\
4453				|NULLOK utf8ness_t *utf8ness
4454# endif
4455# if defined(USE_LOCALE)
4456S	|const char *|calculate_LC_ALL_string					\
4457				|NULLOK const char **category_locales_list	\
4458				|const calc_LC_ALL_format format		\
4459				|const calc_LC_ALL_return returning		\
4460				|const line_t caller_line
4461S	|const char *|external_call_langinfo				\
4462				|const nl_item item			\
4463				|NN SV *sv				\
4464				|NULLOK utf8ness_t *utf8ness
4465RS	|locale_category_index|get_category_index_helper		\
4466				|const int category			\
4467				|NULLOK bool *success			\
4468				|const line_t caller_line
4469Ri	|const char *|mortalized_pv_copy				\
4470				|NULLOK const char * const pv
4471S	|const char *|native_querylocale_i				\
4472				|const locale_category_index cat_index
4473S	|void	|new_LC_ALL	|NN const char *lc_all			\
4474				|bool force
4475S	|void	|output_check_environment_warning			\
4476				|NULLOK const char * const language	\
4477				|NULLOK const char * const lc_all	\
4478				|NULLOK const char * const lang
4479S	|parse_LC_ALL_string_return|parse_LC_ALL_string 		\
4480				|NN const char *string			\
4481				|NN const char **output 		\
4482				|const parse_LC_ALL_STRING_action	\
4483				|bool always_use_full_array		\
4484				|const bool panic_on_error		\
4485				|const line_t caller_line
4486So	|void	|restore_toggled_locale_i				\
4487				|const locale_category_index cat_index	\
4488				|NULLOK const char *original_locale	\
4489				|const line_t caller_line
4490S	|const char *|save_to_buffer					\
4491				|NULLOK const char *string		\
4492				|NULLOK char **buf			\
4493				|NULLOK Size_t *buf_size
4494Sr	|void	|setlocale_failure_panic_via_i				\
4495				|const locale_category_index cat_index	\
4496				|NULLOK const char *current		\
4497				|NN const char *failed			\
4498				|const line_t proxy_caller_line 	\
4499				|const line_t immediate_caller_line	\
4500				|NN const char *higher_caller_file	\
4501				|const line_t higher_caller_line
4502S	|void	|set_save_buffer_min_size				\
4503				|const Size_t min_len			\
4504				|NULLOK char **buf			\
4505				|NULLOK Size_t *buf_size
4506So	|const char *|toggle_locale_i					\
4507				|const locale_category_index cat_index	\
4508				|NN const char *new_locale		\
4509				|const line_t caller_line
4510#   if defined(DEBUGGING)
4511RS	|char * |my_setlocale_debug_string_i				\
4512				|const locale_category_index cat_index	\
4513				|NULLOK const char *locale		\
4514				|NULLOK const char *retval		\
4515				|const line_t line
4516#   endif
4517#   if   defined(HAS_LOCALECONV) && \
4518       ( defined(USE_LOCALE_MONETARY) || defined(USE_LOCALE_NUMERIC) )
4519S	|void	|populate_hash_from_localeconv				\
4520				|NN HV *hv				\
4521				|NN const char *locale			\
4522				|const U32 which_mask			\
4523				|NN const lconv_offset_t *strings[2]	\
4524				|NN const lconv_offset_t *integers[2]
4525#   endif
4526#   if defined(HAS_NL_LANGINFO)
4527S	|const char *|langinfo_sv_i					\
4528				|const nl_item item			\
4529				|locale_category_index cat_index	\
4530				|NN const char *locale			\
4531				|NN SV *sv				\
4532				|NULLOK utf8ness_t *utf8ness
4533#   endif
4534#   if defined(LC_ALL)
4535S	|void	|give_perl_locale_control				\
4536				|NN const char *lc_all_string		\
4537				|const line_t caller_line
4538#   else
4539S	|void	|give_perl_locale_control				\
4540				|NN const char **curlocales		\
4541				|const line_t caller_line
4542#   endif
4543#   if defined(USE_LOCALE_COLLATE)
4544S	|void	|new_collate	|NN const char *newcoll 		\
4545				|bool force
4546#     if defined(DEBUGGING)
4547S	|void	|print_collxfrm_input_and_return			\
4548				|NN const char *s			\
4549				|NN const char *e			\
4550				|NULLOK const char *xbuf		\
4551				|const STRLEN xlen			\
4552				|const bool is_utf8
4553#     endif
4554#   endif
4555#   if defined(USE_LOCALE_CTYPE)
4556ST	|bool	|is_codeset_name_UTF8					\
4557				|NN const char *name
4558S	|void	|new_ctype	|NN const char *newctype		\
4559				|bool force
4560#   endif
4561#   if defined(USE_LOCALE_NUMERIC)
4562S	|void	|new_numeric	|NN const char *newnum			\
4563				|bool force
4564#   endif
4565#   if defined(USE_PERL_SWITCH_LOCALE_CONTEXT) || defined(DEBUGGING)
4566S	|const char *|get_LC_ALL_display
4567#   endif
4568#   if defined(USE_POSIX_2008_LOCALE)
4569S	|bool	|bool_setlocale_2008_i					\
4570				|const locale_category_index index	\
4571				|NN const char *new_locale		\
4572				|const line_t caller_line
4573S	|const char *|querylocale_2008_i				\
4574				|const locale_category_index index	\
4575				|const line_t line
4576S	|locale_t|use_curlocale_scratch
4577#     if !defined(USE_QUERYLOCALE)
4578S	|void	|update_PL_curlocales_i 				\
4579				|const locale_category_index index	\
4580				|NN const char *new_locale		\
4581				|const line_t caller_line
4582#     endif
4583#   elif  defined(USE_LOCALE_THREADS) && !defined(USE_THREAD_SAFE_LOCALE) && \
4584         !defined(USE_THREAD_SAFE_LOCALE_EMULATION)
4585S	|bool	|less_dicey_bool_setlocale_r				\
4586				|const int cat				\
4587				|NN const char *locale
4588S	|const char *|less_dicey_setlocale_r				\
4589				|const int category			\
4590				|NULLOK const char *locale
4591#   endif
4592#   if defined(WIN32) || defined(WIN32_USE_FAKE_OLD_MINGW_LOCALES)
4593ST	|wchar_t *|Win_byte_string_to_wstring				\
4594				|const UINT code_page			\
4595				|NULLOK const char *byte_string
4596S	|const char *|win32_setlocale					\
4597				|int category				\
4598				|NULLOK const char *locale
4599ST	|char * |Win_wstring_to_byte_string				\
4600				|const UINT code_page			\
4601				|NULLOK const wchar_t *wstring
4602S	|const char *|wrap_wsetlocale					\
4603				|const int category			\
4604				|NULLOK const char *locale
4605#   endif
4606#   if   defined(WIN32) || defined(WIN32_USE_FAKE_OLD_MINGW_LOCALES) || \
4607       ( defined(USE_POSIX_2008_LOCALE) && !defined(USE_QUERYLOCALE) )
4608S	|const char *|find_locale_from_environment			\
4609				|const locale_category_index index
4610#   endif
4611# endif /* defined(USE_LOCALE) */
4612# if defined(USE_LOCALE) || defined(DEBUGGING)
4613S	|const char *|get_displayable_string				\
4614				|NN const char * const s		\
4615				|NN const char * const e		\
4616				|const bool is_utf8
4617# endif
4618#endif /* defined(PERL_IN_LOCALE_C) */
4619#if defined(PERL_IN_MALLOC_C)
4620ST	|int	|adjust_size_and_find_bucket				\
4621				|NN size_t *nbytes_p
4622#endif
4623#if defined(PERL_IN_MATHOMS_C) || defined(PERL_IN_OP_C) || \
4624    defined(PERL_IN_PERLY_C)   || defined(PERL_IN_TOKE_C)
4625Mbp	|OP *	|ref		|NULLOK OP *o				\
4626				|I32 type
4627#endif
4628#if defined(PERL_IN_MG_C)
4629
4630S	|void	|fixup_errno_string					\
4631				|NN SV *sv
4632S	|SV *	|magic_methcall1|NN SV *sv				\
4633				|NN const MAGIC *mg			\
4634				|NN SV *meth				\
4635				|U32 flags				\
4636				|int n					\
4637				|NULLOK SV *val
4638S	|int	|magic_methpack |NN SV *sv				\
4639				|NN const MAGIC *mg			\
4640				|NN SV *meth
4641S	|void	|restore_magic	|NULLOK const void *p
4642S	|void	|save_magic_flags					\
4643				|SSize_t mgs_ix 			\
4644				|NN SV *sv				\
4645				|U32 flags
4646S	|void	|unwind_handler_stack					\
4647				|NULLOK const void *p
4648#endif
4649#if defined(PERL_IN_MG_C) || defined(PERL_IN_PP_C)
4650Tp	|bool	|translate_substr_offsets				\
4651				|STRLEN curlen				\
4652				|IV pos1_iv				\
4653				|bool pos1_is_uv			\
4654				|IV len_iv				\
4655				|bool len_is_uv 			\
4656				|NN STRLEN *posp			\
4657				|NN STRLEN *lenp
4658#endif
4659#if defined(PERL_IN_MRO_C)
4660S	|void	|mro_clean_isarev					\
4661				|NN HV * const isa			\
4662				|NN const char * const name		\
4663				|const STRLEN len			\
4664				|NULLOK HV * const exceptions		\
4665				|U32 hash				\
4666				|U32 flags
4667S	|void	|mro_gather_and_rename					\
4668				|NN HV * const stashes			\
4669				|NN HV * const seen_stashes		\
4670				|NULLOK HV *stash			\
4671				|NULLOK HV *oldstash			\
4672				|NN SV *namesv
4673Sd	|AV *	|mro_get_linear_isa_dfs 				\
4674				|NN HV *stash				\
4675				|U32 level
4676#endif
4677#if defined(PERL_IN_NUMERIC_C)
4678S	|void	|output_non_portable					\
4679				|const U8 shift
4680#endif
4681#if defined(PERL_IN_OP_C)
4682S	|void	|apply_attrs	|NN HV *stash				\
4683				|NN SV *target				\
4684				|NULLOK OP *attrs
4685S	|void	|apply_attrs_my |NN HV *stash				\
4686				|NN OP *target				\
4687				|NULLOK OP *attrs			\
4688				|NN OP **imopsp
4689RS	|I32	|assignment_type|NULLOK const OP *o
4690S	|void	|bad_type_gv	|I32 n					\
4691				|NN GV *gv				\
4692				|NN const OP *kid			\
4693				|NN const char *t
4694S	|void	|bad_type_pv	|I32 n					\
4695				|NN const char *t			\
4696				|NN const OP *o 			\
4697				|NN const OP *kid
4698S	|void	|clear_special_blocks					\
4699				|NN const char * const fullname 	\
4700				|NN GV * const gv			\
4701				|NN CV * const cv
4702S	|void	|cop_free	|NN COP *cop
4703S	|OP *	|dup_attrlist	|NN OP *o
4704S	|void	|find_and_forget_pmops					\
4705				|NN OP *o
4706: FIXME
4707S	|OP *	|fold_constants |NN OP * const o
4708S	|OP *	|force_list	|NULLOK OP *arg 			\
4709				|bool nullit
4710S	|void	|forget_pmop	|NN PMOP * const o
4711S	|void	|gen_constant_list					\
4712				|NULLOK OP *o
4713S	|void	|inplace_aassign|NN OP *o
4714RST	|bool	|is_handle_constructor					\
4715				|NN const OP *o 			\
4716				|I32 numargs
4717Ti	|bool	|is_standard_filehandle_name				\
4718				|NN const char *fhname
4719S	|OP *	|listkids	|NULLOK OP *o
4720S	|bool	|looks_like_bool|NN const OP *o
4721S	|OP *	|modkids	|NULLOK OP *o				\
4722				|I32 type
4723S	|void	|move_proto_attr|NN OP **proto				\
4724				|NN OP **attrs				\
4725				|NN const GV *name			\
4726				|bool curstash
4727S	|OP *	|my_kid 	|NULLOK OP *o				\
4728				|NULLOK OP *attrs			\
4729				|NN OP **imopsp
4730S	|OP *	|newGIVWHENOP	|NULLOK OP *cond			\
4731				|NN OP *block				\
4732				|I32 enter_opcode			\
4733				|I32 leave_opcode			\
4734				|PADOFFSET entertarg
4735RS	|OP *	|new_logop	|I32 type				\
4736				|I32 flags				\
4737				|NN OP **firstp 			\
4738				|NN OP **otherp
4739i	|OP *	|newMETHOP_internal					\
4740				|I32 type				\
4741				|I32 flags				\
4742				|NULLOK OP *dynamic_meth		\
4743				|NULLOK SV * const_meth
4744RS	|OP *	|no_fh_allowed	|NN OP *o
4745i	|OP *	|op_integerize	|NN OP *o
4746i	|OP *	|op_std_init	|NN OP *o
4747S	|OP *	|pmtrans	|NN OP *o				\
4748				|NN OP *expr				\
4749				|NN OP *repl
4750S	|bool	|process_special_blocks 				\
4751				|I32 floor				\
4752				|NN const char * const fullname 	\
4753				|NN GV * const gv			\
4754				|NN CV * const cv
4755S	|OP *	|ref_array_or_hash					\
4756				|NULLOK OP *cond
4757S	|OP *	|refkids	|NULLOK OP *o				\
4758				|I32 type
4759S	|OP *	|scalarboolean	|NN OP *o
4760S	|OP *	|scalarkids	|NULLOK OP *o
4761RST	|bool	|scalar_mod_type|NULLOK const OP *o			\
4762				|I32 type
4763RS	|OP *	|search_const	|NN OP *o
4764S	|void	|simplify_sort	|NN OP *o
4765RS	|OP *	|too_few_arguments_pv					\
4766				|NN OP *o				\
4767				|NN const char *name			\
4768				|U32 flags
4769S	|OP *	|too_many_arguments_pv					\
4770				|NN OP *o				\
4771				|NN const char *name			\
4772				|U32 flags
4773S	|OP *	|voidnonfinal	|NULLOK OP *o
4774#endif /* defined(PERL_IN_OP_C) */
4775#if defined(PERL_IN_OP_C) || defined(PERL_IN_PAD_C)
4776Ti	|bool	|PadnameIN_SCOPE|NN const PADNAME * const pn		\
4777				|const U32 seq
4778#endif
4779#if defined(PERL_IN_OP_C) || defined(PERL_IN_PEEP_C)
4780p	|void	|check_hash_fields_and_hekify				\
4781				|NULLOK UNOP *rop			\
4782				|NULLOK SVOP *key_op			\
4783				|int real
4784p	|void	|no_bareword_allowed					\
4785				|NN OP *o
4786Tp	|void	|op_prune_chain_head					\
4787				|NN OP **op_p
4788p	|SV *	|op_varname	|NN const OP *o
4789p	|void	|warn_elem_scalar_context				\
4790				|NN const OP *o 			\
4791				|NN SV *name				\
4792				|bool is_hash				\
4793				|bool is_slice
4794#endif
4795#if defined(PERL_IN_OP_C) || defined(PERL_IN_REGCOMP_ANY)
4796ERTi	|STRLEN *|get_invlist_iter_addr 				\
4797				|NN SV *invlist
4798ETi	|void	|invlist_iterfinish					\
4799				|NN SV *invlist
4800ETi	|void	|invlist_iterinit					\
4801				|NN SV *invlist
4802ERTi	|bool	|invlist_iternext					\
4803				|NN SV *invlist 			\
4804				|NN UV *start				\
4805				|NN UV *end
4806#endif
4807#if defined(PERL_IN_OP_C) || defined(PERL_IN_SV_C)
4808p	|void	|report_redefined_cv					\
4809				|NN const SV *name			\
4810				|NN const CV *old_cv			\
4811				|NULLOK SV * const *new_const_svp
4812Rp	|SV *	|varname	|NULLOK const GV * const gv		\
4813				|const char gvtype			\
4814				|PADOFFSET targ 			\
4815				|NULLOK const SV * const keyname	\
4816				|SSize_t aindex 			\
4817				|int subscript_type
4818#endif
4819#if defined(PERL_IN_PAD_C)
4820Sd	|PADOFFSET|pad_alloc_name					\
4821				|NN PADNAME *name			\
4822				|U32 flags				\
4823				|NULLOK HV *typestash			\
4824				|NULLOK HV *ourstash
4825Sd	|void	|pad_check_dup	|NN PADNAME *name			\
4826				|U32 flags				\
4827				|NULLOK const HV *ourstash
4828Sd	|PADOFFSET|pad_findlex	|NN const char *namepv			\
4829				|STRLEN namelen 			\
4830				|U32 flags				\
4831				|NN const CV *cv			\
4832				|U32 seq				\
4833				|int warn				\
4834				|NULLOK SV **out_capture		\
4835				|NN PADNAME **out_name			\
4836				|NN int *out_flags
4837Sd	|void	|pad_reset
4838# if defined(DEBUGGING)
4839Sd	|void	|cv_dump	|NN const CV *cv			\
4840				|NN const char *title
4841# endif
4842#endif
4843#if defined(PERL_IN_PEEP_C)
4844S	|void	|finalize_op	|NN OP *o
4845S	|void	|optimize_op	|NN OP *o
4846Sd	|OP *	|traverse_op_tree					\
4847				|NN OP *top				\
4848				|NN OP *o
4849#endif
4850#if defined(PERL_IN_PERL_C)
4851S	|void	|find_beginning |NN SV *linestr_sv			\
4852				|NN PerlIO *rsfp
4853S	|void	|forbid_setid	|const char flag			\
4854				|const bool suidscript
4855S	|void	|incpush	|NN const char * const dir		\
4856				|STRLEN len				\
4857				|U32 flags
4858S	|void	|incpush_use_sep|NN const char *p			\
4859				|STRLEN len				\
4860				|U32 flags
4861S	|void	|init_ids
4862S	|void	|init_interp
4863S	|void	|init_main_stash
4864S	|void	|init_perllib
4865S	|void	|init_postdump_symbols					\
4866				|int argc				\
4867				|NN char **argv 			\
4868				|NULLOK char **env
4869S	|void	|init_predump_symbols
4870S	|SV *	|mayberelocate	|NN const char * const dir		\
4871				|STRLEN len				\
4872				|U32 flags
4873Sr	|void	|minus_v
4874Sr	|void	|my_exit_jump
4875S	|void	|nuke_stacks
4876S	|PerlIO *|open_script	|NN const char *scriptname		\
4877				|bool dosearch				\
4878				|NN bool *suidscript
4879
4880S	|void * |parse_body	|NULLOK char **env			\
4881				|XSINIT_t xsinit
4882Sr	|void	|run_body	|I32 oldscope
4883Sr	|void	|usage
4884# if !defined(PERL_IS_MINIPERL)
4885S	|SV *	|incpush_if_exists					\
4886				|NN AV * const av			\
4887				|NN SV *dir				\
4888				|NN SV * const stem
4889# endif
4890# if !defined(SETUID_SCRIPTS_ARE_SECURE_NOW)
4891So	|void	|validate_suid	|NN PerlIO *rsfp
4892# endif
4893#endif /* defined(PERL_IN_PERL_C) */
4894#if defined(PERL_IN_PERL_C) || defined(PERL_IN_REGCOMP_ANY) || \
4895    defined(PERL_IN_UTF8_C)
4896EXp	|bool	|_invlistEQ	|NN SV * const a			\
4897				|NN SV * const b			\
4898				|const bool complement_b
4899ERXp	|SV *	|_new_invlist_C_array					\
4900				|NN const UV * const list
4901#endif
4902#if defined(PERL_IN_PP_C)
4903S	|size_t |do_chomp	|NN SV *retval				\
4904				|NN SV *sv				\
4905				|bool chomping
4906S	|OP *	|do_delete_local
4907RS	|SV *	|refto		|NN SV *sv
4908#endif
4909#if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C)
4910RTi	|bool	|lossless_NV_to_IV					\
4911				|const NV nv				\
4912				|NN IV *ivp
4913: Used in pp_hot.c
4914Reop	|GV *	|softref2xv	|NN SV * const sv			\
4915				|NN const char * const what		\
4916				|const svtype type
4917#endif
4918#if defined(PERL_IN_PP_C)   || defined(PERL_IN_REGCOMP_ANY) || \
4919    defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
4920ETi	|const char *|get_regex_charset_name				\
4921				|const U32 flags			\
4922				|NN STRLEN * const lenp
4923#endif
4924#if defined(PERL_IN_PP_C) || defined(PERL_IN_UTF8_C)
4925p	|UV	|_to_upper_title_latin1 				\
4926				|const U8 c				\
4927				|NN U8 *p				\
4928				|NN STRLEN *lenp			\
4929				|const char S_or_s
4930#endif
4931#if defined(PERL_IN_PP_CTL_C)
4932RS	|PerlIO *|check_type_and_open					\
4933				|NN SV *name
4934S	|void	|destroy_matcher|NN PMOP *matcher
4935RSd	|OP *	|docatch	|Perl_ppaddr_t firstpp
4936S	|bool	|doeval_compile |U8 gimme				\
4937				|NULLOK CV *outside			\
4938				|U32 seq				\
4939				|NULLOK HV *hh
4940RS	|OP *	|dofindlabel	|NN OP *o				\
4941				|NN const char *label			\
4942				|STRLEN len				\
4943				|U32 flags				\
4944				|NN OP **opstack			\
4945				|NN OP **oplimit
4946S	|MAGIC *|doparseform	|NN SV *sv
4947RS	|I32	|dopoptoeval	|I32 startingblock
4948RS	|I32	|dopoptogivenfor|I32 startingblock
4949RS	|I32	|dopoptolabel	|NN const char *label			\
4950				|STRLEN len				\
4951				|U32 flags
4952RS	|I32	|dopoptoloop	|I32 startingblock
4953RS	|I32	|dopoptosub_at	|NN const PERL_CONTEXT *cxstk		\
4954				|I32 startingblock
4955RS	|I32	|dopoptowhen	|I32 startingblock
4956S	|OP *	|do_smartmatch	|NULLOK HV *seen_this			\
4957				|NULLOK HV *seen_other			\
4958				|const bool copied
4959RS	|PMOP * |make_matcher	|NN REGEXP *re
4960RS	|bool	|matcher_matches_sv					\
4961				|NN PMOP *matcher			\
4962				|NN SV *sv
4963RST	|bool	|num_overflow	|NV value				\
4964				|I32 fldsize				\
4965				|I32 frcsize
4966RTi	|bool	|path_is_searchable					\
4967				|NN const char *name
4968RS	|I32	|run_user_filter|int idx				\
4969				|NN SV *buf_sv				\
4970				|int maxlen
4971S	|void	|rxres_free	|NN void **rsp
4972S	|void	|rxres_restore	|NN void **rsp				\
4973				|NN REGEXP *rx
4974S	|void	|save_lines	|NULLOK AV *array			\
4975				|NN SV *sv
4976# if !defined(PERL_DISABLE_PMC)
4977RS	|PerlIO *|doopen_pm	|NN SV *name
4978# endif
4979#endif /* defined(PERL_IN_PP_CTL_C) */
4980#if defined(PERL_IN_PP_CTL_C) || defined(PERL_IN_UTIL_C)
4981p	|bool	|invoke_exception_hook					\
4982				|NULLOK SV *ex				\
4983				|bool warn
4984#endif
4985#if defined(PERL_IN_PP_HOT_C)
4986S	|void	|do_oddball	|NN SV **oddkey 			\
4987				|NN SV **firstkey
4988i	|HV *	|opmethod_stash |NN SV *meth
4989IR	|bool	|should_we_output_Debug_r				\
4990				|NN regexp *prog
4991#endif
4992#if defined(PERL_IN_PP_PACK_C)
4993S	|int	|div128 	|NN SV *pnum				\
4994				|NN bool *done
4995ST	|char	|first_symbol	|NN const char *pat			\
4996				|NN const char *patend
4997RS	|const char *|get_num	|NN const char *patptr			\
4998				|NN SSize_t *lenptr
4999S	|const char *|group_end |NN const char *patptr			\
5000				|NN const char *patend			\
5001				|char ender
5002RS	|SV *	|is_an_int	|NN const char *s			\
5003				|STRLEN l
5004S	|SSize_t|measure_struct |NN struct tempsym *symptr
5005S	|SV *	|mul128 	|NN SV *sv				\
5006				|U8 m
5007RST	|char * |my_bytes_to_utf8					\
5008				|NN const U8 *start			\
5009				|STRLEN len				\
5010				|NN char *dest				\
5011				|const bool needs_swap
5012ST	|bool	|need_utf8	|NN const char *pat			\
5013				|NN const char *patend
5014S	|bool	|next_symbol	|NN struct tempsym *symptr
5015S	|SV **	|pack_rec	|NN SV *cat				\
5016				|NN struct tempsym *symptr		\
5017				|NN SV **beglist			\
5018				|NN SV **endlist
5019RS	|char * |sv_exp_grow	|NN SV *sv				\
5020				|STRLEN needed
5021S	|SSize_t|unpack_rec	|NN struct tempsym *symptr		\
5022				|NN const char *s			\
5023				|NN const char *strbeg			\
5024				|NN const char *strend			\
5025				|NULLOK const char **new_s
5026#endif /* defined(PERL_IN_PP_PACK_C) */
5027#if defined(PERL_IN_PP_SORT_C)
5028i	|I32	|amagic_cmp	|NN SV * const str1			\
5029				|NN SV * const str2
5030i	|I32	|amagic_cmp_desc|NN SV * const str1			\
5031				|NN SV * const str2
5032i	|I32	|amagic_i_ncmp	|NN SV * const a			\
5033				|NN SV * const b
5034i	|I32	|amagic_i_ncmp_desc					\
5035				|NN SV * const a			\
5036				|NN SV * const b
5037i	|I32	|amagic_ncmp	|NN SV * const a			\
5038				|NN SV * const b
5039i	|I32	|amagic_ncmp_desc					\
5040				|NN SV * const a			\
5041				|NN SV * const b
5042i	|I32	|cmp_desc	|NN SV * const str1			\
5043				|NN SV * const str2
5044S	|I32	|sortcv 	|NN SV * const a			\
5045				|NN SV * const b
5046S	|I32	|sortcv_stacked |NN SV * const a			\
5047				|NN SV * const b
5048S	|I32	|sortcv_xsub	|NN SV * const a			\
5049				|NN SV * const b
5050I	|void	|sortsv_flags_impl					\
5051				|NULLOK SV **array			\
5052				|size_t num_elts			\
5053				|NN SVCOMPARE_t cmp			\
5054				|U32 flags
5055i	|I32	|sv_i_ncmp	|NN SV * const a			\
5056				|NN SV * const b
5057i	|I32	|sv_i_ncmp_desc |NN SV * const a			\
5058				|NN SV * const b
5059i	|I32	|sv_ncmp	|NN SV * const a			\
5060				|NN SV * const b
5061i	|I32	|sv_ncmp_desc	|NN SV * const a			\
5062				|NN SV * const b
5063# if defined(USE_LOCALE_COLLATE)
5064i	|I32	|amagic_cmp_locale					\
5065				|NN SV * const str1			\
5066				|NN SV * const str2
5067i	|I32	|amagic_cmp_locale_desc 				\
5068				|NN SV * const str1			\
5069				|NN SV * const str2
5070i	|I32	|cmp_locale_desc|NN SV * const str1			\
5071				|NN SV * const str2
5072# endif
5073#endif /* defined(PERL_IN_PP_SORT_C) */
5074#if defined(PERL_IN_PP_SYS_C)
5075S	|OP *	|doform 	|NN CV *cv				\
5076				|NN GV *gv				\
5077				|NULLOK OP *retop
5078S	|SV *	|space_join_names_mortal				\
5079				|NULLOK char * const *array
5080# if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
5081RS	|int	|dooneliner	|NN const char *cmd			\
5082				|NN const char *filename
5083# endif
5084#endif
5085#if defined(PERL_IN_REGCOMP_ANY)
5086Ep	|void	|add_above_Latin1_folds 				\
5087				|NN RExC_state_t *pRExC_state		\
5088				|const U8 cp				\
5089				|NN SV **invlist
5090Ep	|regnode *|construct_ahocorasick_from_trie			\
5091				|NN RExC_state_t *pRExC_state		\
5092				|NN regnode *source			\
5093				|U32 depth
5094ERp	|SV *	|get_ANYOFHbbm_contents 				\
5095				|NN const regnode *n
5096ERp	|SV *	|get_ANYOFM_contents					\
5097				|NN const regnode *n
5098ERi	|SV *	|invlist_contents					\
5099				|NN SV * const invlist			\
5100				|const bool traditional_style
5101ERTix	|UV	|invlist_highest_range_start				\
5102				|NN SV * const invlist
5103ERTi	|bool	|invlist_is_iterating					\
5104				|NN const SV * const invlist
5105ERTix	|UV	|invlist_lowest |NN SV * const invlist
5106Ep	|U32	|join_exact	|NN RExC_state_t *pRExC_state		\
5107				|NN regnode *scan			\
5108				|NN UV *min_subtract			\
5109				|NN bool *unfolded_multi_char		\
5110				|U32 flags				\
5111				|NULLOK regnode *val			\
5112				|U32 depth
5113Ep	|I32	|make_trie	|NN RExC_state_t *pRExC_state		\
5114				|NN regnode *startbranch		\
5115				|NN regnode *first			\
5116				|NN regnode *last			\
5117				|NN regnode *tail			\
5118				|U32 word_count 			\
5119				|U32 flags				\
5120				|U32 depth
5121Ep	|void	|populate_anyof_bitmap_from_invlist			\
5122				|NN regnode *node			\
5123				|NN SV **invlist_ptr
5124ERTp	|U32	|reg_add_data	|NN RExC_state_t * const pRExC_state	\
5125				|NN const char * const s		\
5126				|const U32 n
5127Ep	|void	|scan_commit	|NN const RExC_state_t *pRExC_state	\
5128				|NN struct scan_data_t *data		\
5129				|NN SSize_t *minlenp			\
5130				|int is_inf
5131Ep	|void	|set_ANYOF_arg	|NN RExC_state_t * const pRExC_state		\
5132				|NN regnode * const node			\
5133				|NULLOK SV * const cp_list			\
5134				|NULLOK SV * const runtime_defns		\
5135				|NULLOK SV * const only_utf8_locale_list
5136Ep	|void	|ssc_init	|NN const RExC_state_t *pRExC_state	\
5137				|NN regnode_ssc *ssc
5138Ep	|SSize_t|study_chunk	|NN RExC_state_t *pRExC_state		\
5139				|NN regnode **scanp			\
5140				|NN SSize_t *minlenp			\
5141				|NN SSize_t *deltap			\
5142				|NN regnode *last			\
5143				|NULLOK struct scan_data_t *data	\
5144				|I32 stopparen				\
5145				|U32 recursed_depth			\
5146				|NULLOK regnode_ssc *and_withp		\
5147				|U32 flags				\
5148				|U32 depth				\
5149				|bool was_mutate_ok
5150# if defined(PERL_IN_REGCOMP_TRIE_C) && defined(DEBUGGING)
5151ES	|void	|dump_trie	|NN const struct _reg_trie_data *trie	\
5152				|NULLOK HV *widecharmap 		\
5153				|NN AV *revcharmap			\
5154				|U32 depth
5155ES	|void	|dump_trie_interim_list 				\
5156				|NN const struct _reg_trie_data *trie	\
5157				|NULLOK HV *widecharmap 		\
5158				|NN AV *revcharmap			\
5159				|U32 next_alloc 			\
5160				|U32 depth
5161ES	|void	|dump_trie_interim_table				\
5162				|NN const struct _reg_trie_data *trie	\
5163				|NULLOK HV *widecharmap 		\
5164				|NN AV *revcharmap			\
5165				|U32 next_alloc 			\
5166				|U32 depth
5167# endif
5168#endif /* defined(PERL_IN_REGCOMP_ANY) */
5169#if defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_SV_C)
5170EXp	|SV *	|invlist_clone	|NN SV * const invlist			\
5171				|NULLOK SV *newlist
5172#endif
5173#if defined(PERL_IN_REGCOMP_C)
5174ES	|AV *	|add_multi_match|NULLOK AV *multi_char_matches		\
5175				|NN SV *multi_string			\
5176				|const STRLEN cp_count
5177ES	|void	|change_engine_size					\
5178				|NN RExC_state_t *pRExC_state		\
5179				|const Ptrdiff_t size
5180ERS	|REGEXP *|compile_wildcard					\
5181				|NN const char *subpattern		\
5182				|const STRLEN len			\
5183				|const bool ignore_case
5184EST	|U8	|compute_EXACTish					\
5185				|NN RExC_state_t *pRExC_state
5186ERST	|int	|edit_distance	|NN const UV *src			\
5187				|NN const UV *tgt			\
5188				|const STRLEN x 			\
5189				|const STRLEN y 			\
5190				|const SSize_t maxDistance
5191ES	|I32	|execute_wildcard					\
5192				|NN REGEXP * const prog 		\
5193				|NN char *stringarg			\
5194				|NN char *strend			\
5195				|NN char *strbeg			\
5196				|SSize_t minend 			\
5197				|NN SV *screamer			\
5198				|U32 nosave
5199ETi	|Size_t |find_first_differing_byte_pos				\
5200				|NN const U8 *s1			\
5201				|NN const U8 *s2			\
5202				|const Size_t max
5203ES	|U32	|get_quantifier_value					\
5204				|NN RExC_state_t *pRExC_state		\
5205				|NN const char *start			\
5206				|NN const char *end
5207ES	|bool	|grok_bslash_N	|NN RExC_state_t *pRExC_state		\
5208				|NULLOK regnode_offset *nodep		\
5209				|NULLOK UV *code_point_p		\
5210				|NULLOK int *cp_count			\
5211				|NN I32 *flagp				\
5212				|const bool strict			\
5213				|const U32 depth
5214ES	|regnode_offset|handle_named_backref				\
5215				|NN RExC_state_t *pRExC_state		\
5216				|NN I32 *flagp				\
5217				|NN char *backref_parse_start		\
5218				|char ch
5219ES	|bool	|handle_names_wildcard					\
5220				|NN const char *wname			\
5221				|const STRLEN wname_len 		\
5222				|NN SV **prop_definition		\
5223				|NN AV **strings
5224ES	|int	|handle_possible_posix					\
5225				|NN RExC_state_t *pRExC_state		\
5226				|NN const char * const s		\
5227				|NULLOK char **updated_parse_ptr	\
5228				|NULLOK AV **posix_warnings		\
5229				|const bool check_only
5230ES	|regnode_offset|handle_regex_sets				\
5231				|NN RExC_state_t *pRExC_state		\
5232				|NULLOK SV **return_invlist		\
5233				|NN I32 *flagp				\
5234				|U32 depth
5235ES	|SV *	|handle_user_defined_property				\
5236				|NN const char *name			\
5237				|const STRLEN name_len			\
5238				|const bool is_utf8			\
5239				|const bool to_fold			\
5240				|const bool runtime			\
5241				|const bool deferrable			\
5242				|NN SV *contents			\
5243				|NN bool *user_defined_ptr		\
5244				|NN SV *msg				\
5245				|const STRLEN level
5246EST	|bool	|is_ssc_worth_it|NN const RExC_state_t *pRExC_state	\
5247				|NN const regnode_ssc *ssc
5248ES	|void	|nextchar	|NN RExC_state_t *pRExC_state
5249ES	|U8	|optimize_regclass						\
5250				|NN RExC_state_t *pRExC_state			\
5251				|NULLOK SV *cp_list				\
5252				|NULLOK SV *only_utf8_locale_list		\
5253				|NULLOK SV *upper_latin1_only_utf8_matches	\
5254				|const U32 has_runtime_dependency		\
5255				|const U32 posixl				\
5256				|NN U8 *anyof_flags				\
5257				|NN bool *invert				\
5258				|NN regnode_offset *ret 			\
5259				|NN I32 *flagp
5260ES	|void	|output_posix_warnings					\
5261				|NN RExC_state_t *pRExC_state		\
5262				|NN AV *posix_warnings
5263ES	|void	|parse_lparen_question_flags				\
5264				|NN RExC_state_t *pRExC_state
5265ES	|SV *	|parse_uniprop_string					\
5266				|NN const char * const name		\
5267				|Size_t name_len			\
5268				|const bool is_utf8			\
5269				|const bool to_fold			\
5270				|const bool runtime			\
5271				|const bool deferrable			\
5272				|NULLOK AV **strings			\
5273				|NN bool *user_defined_ptr		\
5274				|NN SV *msg				\
5275				|const STRLEN level
5276Sfrv	|void	|re_croak	|bool utf8				\
5277				|NN const char *pat			\
5278				|...
5279ES	|regnode_offset|reg	|NN RExC_state_t *pRExC_state		\
5280				|I32 paren				\
5281				|NN I32 *flagp				\
5282				|U32 depth
5283ES	|regnode_offset|regatom |NN RExC_state_t *pRExC_state		\
5284				|NN I32 *flagp				\
5285				|U32 depth
5286ES	|regnode_offset|regbranch					\
5287				|NN RExC_state_t *pRExC_state		\
5288				|NN I32 *flagp				\
5289				|I32 first				\
5290				|U32 depth
5291ES	|regnode_offset|regclass|NN RExC_state_t *pRExC_state		\
5292				|NN I32 *flagp				\
5293				|U32 depth				\
5294				|const bool stop_at_1			\
5295				|bool allow_multi_fold			\
5296				|const bool silence_non_portable	\
5297				|const bool strict			\
5298				|bool optimizable			\
5299				|NULLOK SV **ret_invlist
5300ERST	|unsigned int|regex_set_precedence				\
5301				|const U8 my_operator
5302ES	|void	|reginsert	|NN RExC_state_t *pRExC_state		\
5303				|const U8 op				\
5304				|const regnode_offset operand		\
5305				|const U32 depth
5306ES	|regnode_offset|reg_la_NOTHING					\
5307				|NN RExC_state_t *pRExC_state		\
5308				|U32 flags				\
5309				|NN const char *type
5310ES	|regnode_offset|reg_la_OPFAIL					\
5311				|NN RExC_state_t *pRExC_state		\
5312				|U32 flags				\
5313				|NN const char *type
5314ES	|regnode_offset|reg1node|NN RExC_state_t *pRExC_state		\
5315				|U8 op					\
5316				|U32 arg
5317ES	|regnode_offset|reg2node|NN RExC_state_t *pRExC_state		\
5318				|const U8 op				\
5319				|const U32 arg1 			\
5320				|const I32 arg2
5321ES	|regnode_offset|reg_node|NN RExC_state_t *pRExC_state		\
5322				|U8 op
5323ES	|regnode_offset|regnode_guts					\
5324				|NN RExC_state_t *pRExC_state		\
5325				|const STRLEN extra_len
5326ES	|regnode_offset|regpiece|NN RExC_state_t *pRExC_state		\
5327				|NN I32 *flagp				\
5328				|U32 depth
5329ES	|regnode_offset|regpnode|NN RExC_state_t *pRExC_state		\
5330				|U8 op					\
5331				|NN SV *arg
5332ES	|SV *	|reg_scan_name	|NN RExC_state_t *pRExC_state		\
5333				|U32 flags
5334ETi	|char * |reg_skipcomment|NN RExC_state_t *pRExC_state		\
5335				|NN char *p
5336ERS	|bool	|regtail	|NN RExC_state_t *pRExC_state		\
5337				|NN const regnode_offset p		\
5338				|NN const regnode_offset val		\
5339				|const U32 depth
5340ES	|void	|set_regex_pv	|NN RExC_state_t *pRExC_state		\
5341				|NN REGEXP *Rx
5342ES	|void	|skip_to_be_ignored_text				\
5343				|NN RExC_state_t *pRExC_state		\
5344				|NN char **p				\
5345				|const bool force_to_xmod
5346ES	|void	|ssc_finalize	|NN RExC_state_t *pRExC_state		\
5347				|NN regnode_ssc *ssc
5348# if defined(DEBUGGING)
5349ES	|regnode_offset|regnode_guts_debug				\
5350				|NN RExC_state_t *pRExC_state		\
5351				|const U8 op				\
5352				|const STRLEN extra_len
5353ERS	|bool	|regtail_study	|NN RExC_state_t *pRExC_state		\
5354				|NN regnode_offset p			\
5355				|NN const regnode_offset val		\
5356				|U32 depth
5357#   if defined(ENABLE_REGEX_SETS_DEBUGGING)
5358ES	|void	|dump_regex_sets_structures				\
5359				|NN RExC_state_t *pRExC_state		\
5360				|NN AV *stack				\
5361				|const IV fence 			\
5362				|NN AV *fence_stack
5363#   endif
5364# endif
5365#endif /* defined(PERL_IN_REGCOMP_C) */
5366#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGCOMP_INVLIST_C)
5367Ep	|void	|populate_bitmap_from_invlist				\
5368				|NN SV *invlist 			\
5369				|const UV offset			\
5370				|NN const U8 *bitmap			\
5371				|const Size_t len
5372Ep	|void	|populate_invlist_from_bitmap				\
5373				|NN const U8 *bitmap			\
5374				|const Size_t bitmap_len		\
5375				|NN SV **invlist			\
5376				|const UV offset
5377#endif
5378#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || \
5379    defined(PERL_IN_TOKE_C)
5380ERp	|bool	|is_grapheme	|NN const U8 *strbeg			\
5381				|NN const U8 *s 			\
5382				|NN const U8 *strend			\
5383				|const UV cp
5384#endif
5385#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || \
5386    defined(PERL_IN_UTF8_C)
5387ETXp	|UV	|_to_fold_latin1|const U8 c				\
5388				|NN U8 *p				\
5389				|NN STRLEN *lenp			\
5390				|const unsigned int flags
5391#endif
5392#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
5393ERTXp	|bool	|regcurly	|NN const char *s			\
5394				|NN const char *e			\
5395				|NULLOK const char *result[5]
5396#endif
5397#if defined(PERL_IN_REGCOMP_DEBUG_C) && defined(DEBUGGING)
5398ES	|U8	|put_charclass_bitmap_innards				\
5399				|NN SV *sv				\
5400				|NULLOK char *bitmap			\
5401				|NULLOK SV *nonbitmap_invlist		\
5402				|NULLOK SV *only_utf8_locale_invlist	\
5403				|NULLOK const regnode * const node	\
5404				|const U8 flags 			\
5405				|const bool force_as_is_display
5406ES	|SV *	|put_charclass_bitmap_innards_common			\
5407				|NN SV *invlist 			\
5408				|NULLOK SV *posixes			\
5409				|NULLOK SV *only_utf8			\
5410				|NULLOK SV *not_utf8			\
5411				|NULLOK SV *only_utf8_locale		\
5412				|const bool invert
5413ES	|void	|put_charclass_bitmap_innards_invlist			\
5414				|NN SV *sv				\
5415				|NN SV *invlist
5416ES	|void	|put_code_point |NN SV *sv				\
5417				|UV c
5418ES	|void	|put_range	|NN SV *sv				\
5419				|UV start				\
5420				|const UV end				\
5421				|const bool allow_literals
5422ES	|void	|regdump_extflags					\
5423				|NULLOK const char *lead		\
5424				|const U32 flags
5425ES	|void	|regdump_intflags					\
5426				|NULLOK const char *lead		\
5427				|const U32 flags
5428#endif
5429#if defined(PERL_IN_REGCOMP_INVLIST_C) && !defined(PERL_EXT_RE_BUILD)
5430ES	|void	|_append_range_to_invlist				\
5431				|NN SV * const invlist			\
5432				|const UV start 			\
5433				|const UV end
5434ERTi	|IV *	|get_invlist_previous_index_addr			\
5435				|NN SV *invlist
5436S	|void	|initialize_invlist_guts				\
5437				|NN SV *invlist 			\
5438				|const Size_t initial_size
5439ERTi	|UV *	|_invlist_array_init					\
5440				|NN SV * const invlist			\
5441				|const bool will_have_0
5442Ei	|void	|invlist_clear	|NN SV *invlist
5443ERTi	|UV	|invlist_max	|NN const SV * const invlist
5444ERTi	|IV	|invlist_previous_index 				\
5445				|NN SV * const invlist
5446ES	|void	|invlist_replace_list_destroys_src			\
5447				|NN SV *dest				\
5448				|NN SV *src
5449ETi	|void	|invlist_set_previous_index				\
5450				|NN SV * const invlist			\
5451				|const IV index
5452ETi	|void	|invlist_trim	|NN SV *invlist
5453#endif /* defined(PERL_IN_REGCOMP_INVLIST_C) && !defined(PERL_EXT_RE_BUILD) */
5454#if defined(PERL_IN_REGCOMP_STUDY_C)
5455ES	|SV *	|get_ANYOF_cp_list_for_ssc					\
5456				|NN const RExC_state_t *pRExC_state		\
5457				|NN const regnode_charclass * const node
5458ERS	|SV *	|make_exactf_invlist					\
5459				|NN RExC_state_t *pRExC_state		\
5460				|NN regnode *node
5461ES	|void	|rck_elide_nothing					\
5462				|NN regnode *node
5463ES	|void	|ssc_add_range	|NN regnode_ssc *ssc			\
5464				|UV const start 			\
5465				|UV const end
5466ES	|void	|ssc_and	|NN const RExC_state_t *pRExC_state	\
5467				|NN regnode_ssc *ssc			\
5468				|NN const regnode_charclass *and_with
5469ES	|void	|ssc_anything	|NN regnode_ssc *ssc
5470EST	|void	|ssc_clear_locale					\
5471				|NN regnode_ssc *ssc
5472ES	|void	|ssc_cp_and	|NN regnode_ssc *ssc			\
5473				|UV const cp
5474ES	|void	|ssc_intersection					\
5475				|NN regnode_ssc *ssc			\
5476				|NN SV * const invlist			\
5477				|const bool invert_2nd
5478ERST	|int	|ssc_is_anything|NN const regnode_ssc *ssc
5479ERST	|int	|ssc_is_cp_posixl_init					\
5480				|NN const RExC_state_t *pRExC_state	\
5481				|NN const regnode_ssc *ssc
5482ES	|void	|ssc_or 	|NN const RExC_state_t *pRExC_state	\
5483				|NN regnode_ssc *ssc			\
5484				|NN const regnode_charclass *or_with
5485ES	|void	|ssc_union	|NN regnode_ssc *ssc			\
5486				|NN SV * const invlist			\
5487				|const bool invert_2nd
5488ES	|void	|unwind_scan_frames					\
5489				|NN const void *p
5490#endif /* defined(PERL_IN_REGCOMP_STUDY_C) */
5491#if defined(PERL_IN_REGEXEC_C)
5492ERS	|LB_enum|advance_one_LB |NN U8 **curpos 			\
5493				|NN const U8 * const strend		\
5494				|const bool utf8_target
5495ERS	|SB_enum|advance_one_SB |NN U8 **curpos 			\
5496				|NN const U8 * const strend		\
5497				|const bool utf8_target
5498ERS	|WB_enum|advance_one_WB |NN U8 **curpos 			\
5499				|NN const U8 * const strend		\
5500				|const bool utf8_target 		\
5501				|const bool skip_Extend_Format
5502ERS	|GCB_enum|backup_one_GCB|NN const U8 * const strbeg		\
5503				|NN U8 **curpos 			\
5504				|const bool utf8_target
5505ERS	|LB_enum|backup_one_LB	|NN const U8 * const strbeg		\
5506				|NN U8 **curpos 			\
5507				|const bool utf8_target
5508ERS	|SB_enum|backup_one_SB	|NN const U8 * const strbeg		\
5509				|NN U8 **curpos 			\
5510				|const bool utf8_target
5511ERS	|WB_enum|backup_one_WB	|NN WB_enum *previous			\
5512				|NN const U8 * const strbeg		\
5513				|NN U8 **curpos 			\
5514				|const bool utf8_target
5515EWi	|void	|capture_clear	|NN regexp *rex 			\
5516				|U16 from_ix				\
5517				|U16 to_ix				\
5518				|NN const char *str
5519ERS	|char * |find_byclass	|NN regexp *prog			\
5520				|NN const regnode *c			\
5521				|NN char *s				\
5522				|NN const char *strend			\
5523				|NULLOK regmatch_info *reginfo
5524ERST	|U8 *	|find_next_masked					\
5525				|NN U8 *s				\
5526				|NN const U8 *send			\
5527				|const U8 byte				\
5528				|const U8 mask
5529ERST	|U8 *	|find_span_end	|NN U8 *s				\
5530				|NN const U8 *send			\
5531				|const U8 span_byte
5532ERST	|U8 *	|find_span_end_mask					\
5533				|NN U8 *s				\
5534				|NN const U8 *send			\
5535				|const U8 span_byte			\
5536				|const U8 mask
5537Ei	|I32	|foldEQ_latin1_s2_folded				\
5538				|NN const char *a			\
5539				|NN const char *b			\
5540				|I32 len
5541ERS	|bool	|isFOO_lc	|const U8 classnum			\
5542				|const U8 character
5543ERS	|bool	|isFOO_utf8_lc	|const U8 classnum			\
5544				|NN const U8 *character 		\
5545				|NN const U8 *e
5546ERS	|bool	|isGCB		|const GCB_enum before			\
5547				|const GCB_enum after			\
5548				|NN const U8 * const strbeg		\
5549				|NN const U8 * const curpos		\
5550				|const bool utf8_target
5551ERS	|bool	|isLB		|LB_enum before 			\
5552				|LB_enum after				\
5553				|NN const U8 * const strbeg		\
5554				|NN const U8 * const curpos		\
5555				|NN const U8 * const strend		\
5556				|const bool utf8_target
5557ERS	|bool	|isSB		|SB_enum before 			\
5558				|SB_enum after				\
5559				|NN const U8 * const strbeg		\
5560				|NN const U8 * const curpos		\
5561				|NN const U8 * const strend		\
5562				|const bool utf8_target
5563ERS	|bool	|isWB		|WB_enum previous			\
5564				|WB_enum before 			\
5565				|WB_enum after				\
5566				|NN const U8 * const strbeg		\
5567				|NN const U8 * const curpos		\
5568				|NN const U8 * const strend		\
5569				|const bool utf8_target
5570ERST	|I32	|reg_check_named_buff_matched				\
5571				|NN const regexp *rex			\
5572				|NN const regnode *scan
5573ESW	|void	|regcppop	|NN regexp *rex 			\
5574				|NN U32 *maxopenparen_p
5575ESW	|CHECKPOINT|regcppush	|NN const regexp *rex			\
5576				|I32 parenfloor 			\
5577				|U32 maxopenparen
5578ESW	|void	|regcp_restore	|NN regexp *rex 			\
5579				|I32 ix 				\
5580				|NN U32 *maxopenparen_p
5581ERST	|U8 *	|reghop3	|NN U8 *s				\
5582				|SSize_t off				\
5583				|NN const U8 *lim
5584ERST	|U8 *	|reghop4	|NN U8 *s				\
5585				|SSize_t off				\
5586				|NN const U8 *llim			\
5587				|NN const U8 *rlim
5588ERST	|U8 *	|reghopmaybe3	|NN U8 *s				\
5589				|SSize_t off				\
5590				|NN const U8 * const lim
5591ERS	|bool	|reginclass	|NULLOK regexp * const prog		\
5592				|NN const regnode * const n		\
5593				|NN const U8 * const p			\
5594				|NN const U8 * const p_end		\
5595				|bool const utf8_target
5596ERS	|SSize_t|regmatch	|NN regmatch_info *reginfo		\
5597				|NN char *startpos			\
5598				|NN regnode *prog
5599ERSW	|I32	|regrepeat	|NN regexp *prog			\
5600				|NN char **startposp			\
5601				|NN const regnode *p			\
5602				|NN char *loceol			\
5603				|NN regmatch_info * const reginfo	\
5604				|NZ I32 max
5605ERS	|bool	|regtry 	|NN regmatch_info *reginfo		\
5606				|NN char **startposp
5607ES	|bool	|to_byte_substr |NN regexp *prog
5608ES	|void	|to_utf8_substr |NN regexp *prog
5609EWi	|void	|unwind_paren	|NN regexp *rex 			\
5610				|U32 lp 				\
5611				|U32 lcp
5612# if defined(DEBUGGING)
5613ES	|void	|debug_start_match					\
5614				|NN const REGEXP *prog			\
5615				|const bool do_utf8			\
5616				|NN const char *start			\
5617				|NN const char *end			\
5618				|NN const char *blurb
5619ES	|void	|dump_exec_pos	|NN const char *locinput		\
5620				|NN const regnode *scan 		\
5621				|NN const char *loc_regeol		\
5622				|NN const char *loc_bostr		\
5623				|NN const char *loc_reg_starttry	\
5624				|const bool do_utf8			\
5625				|const U32 depth
5626
5627EFpv	|int	|re_exec_indentf|NN const char *fmt			\
5628				|U32 depth				\
5629				|...
5630# endif
5631#endif /* defined(PERL_IN_REGEXEC_C) */
5632#if defined(PERL_IN_REGEX_ENGINE)
5633CRip	|bool	|check_regnode_after					\
5634				|NULLOK const regnode *p		\
5635				|const STRLEN extra
5636CRip	|regnode *|regnext	|NULLOK const regnode *p
5637CRip	|regnode *|regnode_after|NULLOK const regnode *p		\
5638				|bool varies
5639# if defined(DEBUGGING)
5640Ep	|void	|debug_peep	|NN const char *str			\
5641				|NN const RExC_state_t *pRExC_state	\
5642				|NULLOK regnode *scan			\
5643				|U32 depth				\
5644				|U32 flags
5645Ep	|void	|debug_show_study_flags 				\
5646				|U32 flags				\
5647				|NN const char *open_str		\
5648				|NN const char *close_str
5649Ep	|void	|debug_studydata|NN const char *where			\
5650				|NULLOK scan_data_t *data		\
5651				|U32 depth				\
5652				|int is_inf				\
5653				|SSize_t min				\
5654				|SSize_t stopmin			\
5655				|SSize_t delta
5656Ep	|const regnode *|dumpuntil					\
5657				|NN const regexp *r			\
5658				|NN const regnode *start		\
5659				|NN const regnode *node 		\
5660				|NULLOK const regnode *last		\
5661				|NULLOK const regnode *plast		\
5662				|NN SV *sv				\
5663				|I32 indent				\
5664				|U32 depth
5665Ep	|void	|regprop	|NULLOK const regexp *prog		\
5666				|NN SV *sv				\
5667				|NN const regnode *o			\
5668				|NULLOK const regmatch_info *reginfo	\
5669				|NULLOK const RExC_state_t *pRExC_state
5670EFpv	|int	|re_indentf	|NN const char *fmt			\
5671				|U32 depth				\
5672				|...
5673Efpv	|int	|re_printf	|NN const char *fmt			\
5674				|...
5675# endif
5676# if defined(PERL_EXT_RE_BUILD)
5677Ep	|SV *	|get_re_gclass_aux_data 				\
5678				|NULLOK const regexp *prog		\
5679				|NN const struct regnode *node		\
5680				|bool doinit				\
5681				|NULLOK SV **listsvp			\
5682				|NULLOK SV **lonly_utf8_locale		\
5683				|NULLOK SV **output_invlist
5684# else
5685Ep	|SV *	|get_regclass_aux_data					\
5686				|NULLOK const regexp *prog		\
5687				|NN const struct regnode *node		\
5688				|bool doinit				\
5689				|NULLOK SV **listsvp			\
5690				|NULLOK SV **lonly_utf8_locale		\
5691				|NULLOK SV **output_invlist
5692# endif
5693#endif /* defined(PERL_IN_REGEX_ENGINE) */
5694#if defined(PERL_IN_SCOPE_C)
5695S	|void	|save_pushptri32ptr					\
5696				|NULLOK void * const ptr1		\
5697				|const I32 i				\
5698				|NULLOK void * const ptr2		\
5699				|const int type
5700Sd	|SV *	|save_scalar_at |NN SV **sptr				\
5701				|const U32 flags
5702#endif
5703#if defined(PERL_IN_SV_C)
5704S	|void	|anonymise_cv_maybe					\
5705				|NN GV *gv				\
5706				|NN CV *cv
5707S	|void	|assert_uft8_cache_coherent				\
5708				|NN const char * const func		\
5709				|STRLEN from_cache			\
5710				|STRLEN real				\
5711				|NN SV * const sv
5712S	|bool	|curse		|NN SV * const sv			\
5713				|const bool check_refcnt
5714RS	|STRLEN |expect_number	|NN const char ** const pattern
5715ST	|char * |F0convert	|NV nv					\
5716				|NN char * const endbuf 		\
5717				|NN STRLEN * const len
5718S	|SSize_t|find_array_subscript					\
5719				|NULLOK const AV * const av		\
5720				|NN const SV * const val
5721S	|SV *	|find_hash_subscript					\
5722				|NULLOK const HV * const hv		\
5723				|NN const SV * const val
5724Sdx	|SV *	|find_uninit_var|NULLOK const OP * const obase		\
5725				|NULLOK const SV * const uninit_sv	\
5726				|bool match				\
5727				|NN const char **desc_p
5728S	|void	|glob_assign_glob					\
5729				|NN SV * const dsv			\
5730				|NN SV * const ssv			\
5731				|const int dtype
5732S	|bool	|glob_2number	|NN GV * const gv
5733Cp	|SV *	|more_sv
5734S	|void	|not_a_number	|NN SV * const sv
5735S	|void	|not_incrementable					\
5736				|NN SV * const sv
5737RST	|PTR_TBL_ENT_t *|ptr_table_find 				\
5738				|NN PTR_TBL_t * const tbl		\
5739				|NULLOK const void * const sv
5740Sd	|void	|sv_add_arena	|NN char * const ptr			\
5741				|const U32 size 			\
5742				|const U32 flags
5743S	|const char *|sv_display|NN SV * const sv			\
5744				|NN char *tmpbuf			\
5745				|STRLEN tmpbuf_size
5746S	|bool	|sv_2iuv_common |NN SV * const sv
5747S	|STRLEN |sv_pos_b2u_midway					\
5748				|NN const U8 * const s			\
5749				|NN const U8 * const target		\
5750				|NN const U8 *end			\
5751				|STRLEN endu
5752S	|STRLEN |sv_pos_u2b_cached					\
5753				|NN SV * const sv			\
5754				|NN MAGIC ** const mgp			\
5755				|NN const U8 * const start		\
5756				|NN const U8 * const send		\
5757				|STRLEN uoffset 			\
5758				|STRLEN uoffset0			\
5759				|STRLEN boffset0
5760ST	|STRLEN |sv_pos_u2b_forwards					\
5761				|NN const U8 * const start		\
5762				|NN const U8 * const send		\
5763				|NN STRLEN * const uoffset		\
5764				|NN bool * const at_end 		\
5765				|NN bool *canonical_position
5766ST	|STRLEN |sv_pos_u2b_midway					\
5767				|NN const U8 * const start		\
5768				|NN const U8 *send			\
5769				|STRLEN uoffset 			\
5770				|const STRLEN uend
5771i	|void	|sv_unglob	|NN SV * const sv			\
5772				|U32 flags
5773RTi	|char * |uiv_2buf	|NN char * const buf			\
5774				|const IV iv				\
5775				|UV uv					\
5776				|const int is_uv			\
5777				|NN char ** const peob
5778S	|void	|utf8_mg_len_cache_update				\
5779				|NN SV * const sv			\
5780				|NN MAGIC ** const mgp			\
5781				|const STRLEN ulen
5782S	|void	|utf8_mg_pos_cache_update				\
5783				|NN SV * const sv			\
5784				|NN MAGIC ** const mgp			\
5785				|const STRLEN byte			\
5786				|const STRLEN utf8			\
5787				|const STRLEN blen
5788S	|SSize_t|visit		|NN SVFUNC_t f				\
5789				|const U32 flags			\
5790				|const U32 mask
5791# if defined(DEBUGGING)
5792S	|void	|del_sv 	|NN SV *p
5793p	|void	|sv_mark_arenas
5794p	|void	|sv_sweep_arenas
5795# endif
5796# if !defined(NV_PRESERVES_UV)
5797#   if defined(DEBUGGING)
5798S	|int	|sv_2iuv_non_preserve					\
5799				|NN SV * const sv			\
5800				|I32 numtype
5801#   else
5802S	|int	|sv_2iuv_non_preserve					\
5803				|NN SV * const sv
5804#   endif
5805# endif
5806# if defined(PERL_DEBUG_READONLY_COW)
5807S	|void	|sv_buf_to_rw	|NN SV *sv
5808# endif
5809# if defined(USE_ITHREADS)
5810RS	|SV *	|sv_dup_common	|NN const SV * const ssv		\
5811				|NN CLONE_PARAMS * const param
5812S	|void	|sv_dup_hvaux	|NN const SV * const ssv		\
5813				|NN SV *dsv				\
5814				|NN CLONE_PARAMS * const param
5815S	|SV **	|sv_dup_inc_multiple					\
5816				|NN SV * const *source			\
5817				|NN SV **dest				\
5818				|SSize_t items				\
5819				|NN CLONE_PARAMS * const param
5820S	|void	|unreferenced_to_tmp_stack				\
5821				|NN AV * const unreferenced
5822# endif
5823#endif /* defined(PERL_IN_SV_C) */
5824#if defined(PERL_IN_TOKE_C)
5825S	|int	|ao		|int toketype
5826S	|void	|checkcomma	|NN const char *s			\
5827				|NN const char *name			\
5828				|NN const char *what
5829S	|void	|check_uni
5830RS	|char * |filter_gets	|NN SV *sv				\
5831				|STRLEN append
5832RS	|HV *	|find_in_my_stash					\
5833				|NN const char *pkgname 		\
5834				|STRLEN len
5835S	|void	|force_ident	|NN const char *s			\
5836				|int kind
5837S	|void	|force_ident_maybe_lex					\
5838				|char pit
5839S	|void	|force_next	|I32 type
5840S	|char * |force_strict_version					\
5841				|NN char *s
5842S	|char * |force_version	|NN char *s				\
5843				|int guessing
5844S	|char * |force_word	|NN char *start 			\
5845				|int token				\
5846				|int check_keyword			\
5847				|int allow_pack
5848RS	|SV *	|get_and_check_backslash_N_name_wrapper 		\
5849				|NN const char *s			\
5850				|NN const char * const e
5851S	|void	|incline	|NN const char *s			\
5852				|NN const char *end
5853S	|int	|intuit_method	|NN char *s				\
5854				|NULLOK SV *ioname			\
5855				|NULLOK CV *cv
5856S	|int	|intuit_more	|NN char *s				\
5857				|NN char *e
5858S	|I32	|lop		|I32 f					\
5859				|U8 x					\
5860				|NN char *s
5861Sr	|void	|missingterm	|NULLOK char *s 			\
5862				|STRLEN len
5863So	|SV *	|new_constant	|NULLOK const char *s			\
5864				|STRLEN len				\
5865				|NN const char *key			\
5866				|STRLEN keylen				\
5867				|NN SV *sv				\
5868				|NULLOK SV *pv				\
5869				|NULLOK const char *type		\
5870				|STRLEN typelen 			\
5871				|NULLOK const char **error_msg
5872S	|void	|no_op		|NN const char * const what		\
5873				|NULLOK char *s
5874S	|void	|parse_ident	|NN char **s				\
5875				|NN char **d				\
5876				|NN char * const e			\
5877				|int allow_package			\
5878				|bool is_utf8				\
5879				|bool check_dollar			\
5880				|bool tick_warn
5881S	|int	|pending_ident
5882RS	|char * |scan_const	|NN char *start
5883RS	|char * |scan_formline	|NN char *s
5884RS	|char * |scan_heredoc	|NN char *s
5885S	|char * |scan_ident	|NN char *s				\
5886				|NN char *dest				\
5887				|STRLEN destlen 			\
5888				|I32 ck_uni
5889RS	|char * |scan_inputsymbol					\
5890				|NN char *start
5891RS	|char * |scan_pat	|NN char *start 			\
5892				|I32 type
5893RS	|char * |scan_subst	|NN char *start
5894RS	|char * |scan_trans	|NN char *start
5895RS	|I32	|sublex_done
5896RS	|I32	|sublex_push
5897RS	|I32	|sublex_start
5898RS	|char * |swallow_bom	|NN U8 *s
5899RS	|char * |tokenize_use	|int is_use				\
5900				|NN char *s
5901S	|SV *	|tokeq		|NN SV *sv
5902S	|void	|update_debugger_info					\
5903				|NULLOK SV *orig_sv			\
5904				|NULLOK const char * const buf		\
5905				|STRLEN len
5906S	|int	|yywarn 	|NN const char * const s		\
5907				|U32 flags
5908# if defined(DEBUGGING)
5909Sf	|void	|printbuf	|NN const char * const fmt		\
5910				|NN const char * const s
5911S	|int	|tokereport	|I32 rv 				\
5912				|NN const YYSTYPE *lvalp
5913# endif
5914# if defined(PERL_CR_FILTER)
5915S	|I32	|cr_textfilter	|int idx				\
5916				|NULLOK SV *sv				\
5917				|int maxlen
5918S	|void	|strip_return	|NN SV *sv
5919# endif
5920# if !defined(PERL_NO_UTF16_FILTER)
5921S	|U8 *	|add_utf16_textfilter					\
5922				|NN U8 * const s			\
5923				|bool reversed
5924S	|I32	|utf16_textfilter					\
5925				|int idx				\
5926				|NN SV *sv				\
5927				|int maxlen
5928# endif
5929#endif /* defined(PERL_IN_TOKE_C) */
5930#if defined(PERL_IN_UNIVERSAL_C)
5931GS	|bool	|isa_lookup	|NULLOK HV *stash			\
5932				|NULLOK SV *namesv			\
5933				|NULLOK const char *name		\
5934				|STRLEN len				\
5935				|U32 flags
5936GS	|bool	|sv_derived_from_svpvn					\
5937				|NULLOK SV *sv				\
5938				|NULLOK SV *namesv			\
5939				|NULLOK const char *name		\
5940				|const STRLEN len			\
5941				|U32 flags
5942#endif
5943#if defined(PERL_IN_UTF8_C)
5944RS	|UV	|check_locale_boundary_crossing 			\
5945				|NN const U8 * const p			\
5946				|const UV result			\
5947				|NN U8 * const ustrp			\
5948				|NN STRLEN *lenp
5949RTi	|int	|does_utf8_overflow					\
5950				|NN const U8 * const s			\
5951				|NN const U8 *e 			\
5952				|const bool consider_overlongs
5953RTi	|int	|isFF_overlong	|NN const U8 * const s			\
5954				|const STRLEN len
5955Ri	|bool	|is_utf8_common |NN const U8 * const p			\
5956				|NN const U8 * const e			\
5957				|NULLOK SV * const invlist
5958RTi	|int	|is_utf8_overlong					\
5959				|NN const U8 * const s			\
5960				|const STRLEN len
5961RS	|HV *	|new_msg_hv	|NN const char * const message		\
5962				|U32 categories 			\
5963				|U32 flag
5964S	|UV	|to_case_cp_list|const UV original				\
5965				|NULLOK const U32 ** const remaining_list	\
5966				|NULLOK Size_t *remaining_count 		\
5967				|NN SV *invlist 				\
5968				|NN const I32 * const invmap			\
5969				|NULLOK const U32 * const * const aux_tables	\
5970				|NULLOK const U8 * const aux_table_lengths	\
5971				|NN const char * const normal
5972RST	|U8	|to_lower_latin1|const U8 c				\
5973				|NULLOK U8 *p				\
5974				|NULLOK STRLEN *lenp			\
5975				|const char dummy
5976S	|UV	|_to_utf8_case	|const UV original				\
5977				|NULLOK const U8 *p				\
5978				|NN U8 *ustrp					\
5979				|NN STRLEN *lenp				\
5980				|NN SV *invlist 				\
5981				|NN const I32 * const invmap			\
5982				|NULLOK const U32 * const * const aux_tables	\
5983				|NULLOK const U8 * const aux_table_lengths	\
5984				|NN const char * const normal
5985S	|UV	|turkic_fc	|NN const U8 * const p			\
5986				|NN const U8 * const e			\
5987				|NN U8 *ustrp				\
5988				|NN STRLEN *lenp
5989S	|UV	|turkic_lc	|NN const U8 * const p0 		\
5990				|NN const U8 * const e			\
5991				|NN U8 *ustrp				\
5992				|NN STRLEN *lenp
5993S	|UV	|turkic_uc	|NN const U8 * const p			\
5994				|NN const U8 * const e			\
5995				|NN U8 *ustrp				\
5996				|NN STRLEN *lenp
5997RS	|char * |unexpected_non_continuation_text			\
5998				|NN const U8 * const s			\
5999				|STRLEN print_len			\
6000				|const STRLEN non_cont_byte_pos 	\
6001				|const STRLEN expect_len
6002# if 0
6003S	|void	|warn_on_first_deprecated_use				\
6004				|U32 category				\
6005				|NN const char * const name		\
6006				|NN const char * const alternative	\
6007				|const bool use_locale			\
6008				|NN const char * const file		\
6009				|const unsigned line
6010# endif
6011#endif /* defined(PERL_IN_UTF8_C) */
6012#if defined(PERL_IN_UTIL_C)
6013S	|bool	|ckwarn_common	|U32 w
6014S	|SV *	|mess_alloc
6015Ti	|U32	|ptr_hash	|PTRV u
6016S	|SV *	|with_queued_errors					\
6017				|NN SV *ex
6018So	|void	|xs_version_bootcheck					\
6019				|SSize_t items				\
6020				|SSize_t ax				\
6021				|NN const char *xs_p			\
6022				|STRLEN xs_len
6023# if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL)
6024ST	|void	|mem_log_common |enum mem_log_type mlt			\
6025				|const UV n				\
6026				|const UV typesize			\
6027				|NN const char *type_name		\
6028				|NULLOK const SV *sv			\
6029				|Malloc_t oldalloc			\
6030				|Malloc_t newalloc			\
6031				|NN const char *filename		\
6032				|const int linenumber			\
6033				|NN const char *funcname
6034# endif
6035# if defined(PERL_USES_PL_PIDSTATUS)
6036S	|void	|pidgone	|Pid_t pid				\
6037				|int status
6038# endif
6039#endif /* defined(PERL_IN_UTIL_C) */
6040#if defined(PERL_MEM_LOG)
6041CTp	|Malloc_t|mem_log_alloc |const UV nconst			\
6042				|UV typesize				\
6043				|NN const char *type_name		\
6044				|Malloc_t newalloc			\
6045				|NN const char *filename		\
6046				|const int linenumber			\
6047				|NN const char *funcname
6048CTp	|void	|mem_log_del_sv |NN const SV *sv			\
6049				|NN const char *filename		\
6050				|int linenumber 			\
6051				|NN const char *funcname
6052CTp	|Malloc_t|mem_log_free	|Malloc_t oldalloc			\
6053				|NN const char *filename		\
6054				|const int linenumber			\
6055				|NN const char *funcname
6056CTp	|void	|mem_log_new_sv |NN const SV *sv			\
6057				|NN const char *filename		\
6058				|int linenumber 			\
6059				|NN const char *funcname
6060CTp	|Malloc_t|mem_log_realloc					\
6061				|const UV n				\
6062				|const UV typesize			\
6063				|NN const char *type_name		\
6064				|Malloc_t oldalloc			\
6065				|Malloc_t newalloc			\
6066				|NN const char *filename		\
6067				|const int linenumber			\
6068				|NN const char *funcname
6069#endif
6070#if !defined(PERL_NO_INLINE_FUNCTIONS)
6071Cipx	|void	|cx_popblock	|NN PERL_CONTEXT *cx
6072Cipx	|void	|cx_popeval	|NN PERL_CONTEXT *cx
6073Cipx	|void	|cx_popformat	|NN PERL_CONTEXT *cx
6074Cipx	|void	|cx_popgiven	|NN PERL_CONTEXT *cx
6075Cipx	|void	|cx_poploop	|NN PERL_CONTEXT *cx
6076Cipx	|void	|cx_popsub	|NN PERL_CONTEXT *cx
6077Cipx	|void	|cx_popsub_args |NN PERL_CONTEXT *cx
6078Cipx	|void	|cx_popsub_common					\
6079				|NN PERL_CONTEXT *cx
6080Cipx	|void	|cx_popwhen	|NN PERL_CONTEXT *cx
6081Cipx	|PERL_CONTEXT *|cx_pushblock					\
6082				|U8 type				\
6083				|U8 gimme				\
6084				|NN SV **sp				\
6085				|I32 saveix
6086Cipx	|void	|cx_pusheval	|NN PERL_CONTEXT *cx			\
6087				|NULLOK OP *retop			\
6088				|NULLOK SV *namesv
6089Cipx	|void	|cx_pushformat	|NN PERL_CONTEXT *cx			\
6090				|NN CV *cv				\
6091				|NULLOK OP *retop			\
6092				|NULLOK GV *gv
6093Cipx	|void	|cx_pushgiven	|NN PERL_CONTEXT *cx			\
6094				|NULLOK SV *orig_defsv
6095Cipx	|void	|cx_pushloop_for|NN PERL_CONTEXT *cx			\
6096				|NN void *itervarp			\
6097				|NULLOK SV *itersave
6098Cipx	|void	|cx_pushloop_plain					\
6099				|NN PERL_CONTEXT *cx
6100Cipx	|void	|cx_pushsub	|NN PERL_CONTEXT *cx			\
6101				|NN CV *cv				\
6102				|NULLOK OP *retop			\
6103				|bool hasargs
6104Cipx	|void	|cx_pushtry	|NN PERL_CONTEXT *cx			\
6105				|NULLOK OP *retop
6106Cipx	|void	|cx_pushwhen	|NN PERL_CONTEXT *cx
6107Cipx	|void	|cx_topblock	|NN PERL_CONTEXT *cx
6108Cipx	|U8	|gimme_V
6109#endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
6110#if defined(PERL_RC_STACK)
6111EXopx	|OP *	|pp_wrap	|NN Perl_ppaddr_t real_pp_fn		\
6112				|I32 nargs				\
6113				|int nlists
6114Cpx	|int	|runops_wrap
6115EXopx	|void	|xs_wrap	|NN XSUBADDR_t xsub			\
6116				|NN CV *cv
6117#endif
6118#if defined(PERL_USE_3ARG_SIGHANDLER)
6119CTp	|Signal_t|csighandler	|int sig				\
6120				|NULLOK Siginfo_t *info 		\
6121				|NULLOK void *uap
6122: Used in perl.c
6123Tp	|Signal_t|sighandler	|int sig				\
6124				|NULLOK Siginfo_t *info 		\
6125				|NULLOK void *uap
6126#else
6127CTp	|Signal_t|csighandler	|int sig
6128Tp	|Signal_t|sighandler	|int sig
6129#endif
6130#if defined(U64TYPE)
6131CRTip	|unsigned|lsbit_pos64	|U64 word
6132CRTip	|unsigned|msbit_pos64	|U64 word
6133CRTip	|unsigned|single_1bit_pos64					\
6134				|U64 word
6135#endif
6136#if defined(UNLINK_ALL_VERSIONS)
6137Cp	|I32	|unlnk		|NN const char *f
6138#endif
6139#if defined(USE_C_BACKTRACE)
6140Adp	|bool	|dump_c_backtrace					\
6141				|NN PerlIO *fp				\
6142				|int max_depth				\
6143				|int skip
6144dm	|void	|free_c_backtrace					\
6145				|NN Perl_c_backtrace *bt
6146dp	|Perl_c_backtrace *|get_c_backtrace				\
6147				|int max_depth				\
6148				|int skip
6149Adp	|SV *	|get_c_backtrace_dump					\
6150				|int max_depth				\
6151				|int skip
6152#endif
6153#if defined(USE_DTRACE)
6154EXop	|void	|dtrace_probe_call					\
6155				|NN CV *cv				\
6156				|bool is_call
6157EXop	|void	|dtrace_probe_load					\
6158				|NN const char *name			\
6159				|bool is_loading
6160EXop	|void	|dtrace_probe_op|NN const OP *op
6161EXop	|void	|dtrace_probe_phase					\
6162				|enum perl_phase phase
6163#endif
6164#if defined(USE_ITHREADS)
6165Adpx	|PADOFFSET|alloccopstash|NN HV *hv
6166CRp	|void * |any_dup	|NULLOK void *v 			\
6167				|NN const PerlInterpreter *proto_perl
6168ATop	|void	|clone_params_del					\
6169				|NN CLONE_PARAMS *param
6170ARTop	|CLONE_PARAMS *|clone_params_new				\
6171				|NN PerlInterpreter * const from	\
6172				|NN PerlInterpreter * const to
6173Cip	|AV *	|cop_file_avn	|NN const COP *cop
6174CRp	|PERL_CONTEXT *|cx_dup	|NULLOK PERL_CONTEXT *cx		\
6175				|I32 ix 				\
6176				|I32 max				\
6177				|NN CLONE_PARAMS *param
6178CRdp	|DIR *	|dirp_dup	|NULLOK DIR * const dp			\
6179				|NN CLONE_PARAMS * const param
6180Cdp	|PerlIO *|fp_dup	|NULLOK PerlIO * const fp		\
6181				|const char type			\
6182				|NN CLONE_PARAMS * const param
6183CRdp	|GP *	|gp_dup 	|NULLOK GP * const gp			\
6184				|NN CLONE_PARAMS * const param
6185CRp	|HE *	|he_dup 	|NULLOK const HE *e			\
6186				|bool shared				\
6187				|NN CLONE_PARAMS *param
6188CRp	|HEK *	|hek_dup	|NULLOK HEK *e				\
6189				|NN CLONE_PARAMS *param
6190CRdp	|MAGIC *|mg_dup 	|NULLOK MAGIC *mg			\
6191				|NN CLONE_PARAMS * const param
6192: Only used in sv.c
6193p	|struct mro_meta *|mro_meta_dup 				\
6194				|NN struct mro_meta *smeta		\
6195				|NN CLONE_PARAMS *param
6196ARdp	|OP *	|newPADOP	|I32 type				\
6197				|I32 flags				\
6198				|NN SV *sv
6199Rdp	|PADLIST *|padlist_dup	|NN PADLIST *srcpad			\
6200				|NN CLONE_PARAMS *param
6201Rdp	|PADNAME *|padname_dup	|NN PADNAME *src			\
6202				|NN CLONE_PARAMS *param
6203Rdp	|PADNAMELIST *|padnamelist_dup					\
6204				|NN PADNAMELIST *srcpad 		\
6205				|NN CLONE_PARAMS *param
6206Cp	|yy_parser *|parser_dup |NULLOK const yy_parser * const proto	\
6207				|NN CLONE_PARAMS * const param
6208ATdo	|PerlInterpreter *|perl_clone					\
6209				|NN PerlInterpreter *proto_perl 	\
6210				|UV flags
6211Adp	|void	|re_dup_guts	|NN const REGEXP *sstr			\
6212				|NN REGEXP *dstr			\
6213				|NN CLONE_PARAMS *param
6214Cp	|void * |regdupe_internal					\
6215				|NN REGEXP * const r			\
6216				|NN CLONE_PARAMS *param
6217Cp	|void	|rvpv_dup	|NN SV * const dsv			\
6218				|NN const SV * const ssv		\
6219				|NN CLONE_PARAMS * const param
6220CRdp	|PERL_SI *|si_dup	|NULLOK PERL_SI *si			\
6221				|NN CLONE_PARAMS *param
6222CRdp	|ANY *	|ss_dup 	|NN PerlInterpreter *proto_perl 	\
6223				|NN CLONE_PARAMS *param
6224ARp	|SV *	|sv_dup 	|NULLOK const SV * const ssv		\
6225				|NN CLONE_PARAMS * const param
6226ARp	|SV *	|sv_dup_inc	|NULLOK const SV * const ssv		\
6227				|NN CLONE_PARAMS * const param
6228# if defined(PERL_IN_OP_C) || defined(PERL_IN_PEEP_C)
6229p	|void	|op_relocate_sv |NN SV **svp				\
6230				|NN PADOFFSET *targp
6231# endif
6232#else /* if !defined(USE_ITHREADS) */
6233Adm	|void	|CopFILEGV_set	|NN COP *c				\
6234				|NN GV *gv
6235#endif
6236#if defined(USE_LOCALE_COLLATE)
6237p	|int	|magic_freecollxfrm					\
6238				|NN SV *sv				\
6239				|NN MAGIC *mg
6240p	|int	|magic_setcollxfrm					\
6241				|NN SV *sv				\
6242				|NN MAGIC *mg
6243EXop	|SV *	|strxfrm	|NN SV *src
6244: Defined in locale.c, used only in sv.c
6245AMbdp	|char * |sv_collxfrm	|NN SV * const sv			\
6246				|NN STRLEN * const nxp
6247Adp	|char * |sv_collxfrm_flags					\
6248				|NN SV * const sv			\
6249				|NN STRLEN * const nxp			\
6250				|I32 const flags
6251# if defined(PERL_IN_LOCALE_C) || defined(PERL_IN_MATHOMS_C) || \
6252     defined(PERL_IN_SV_C)
6253Ep	|char * |mem_collxfrm_	|NN const char *input_string		\
6254				|STRLEN len				\
6255				|NN STRLEN *xlen			\
6256				|bool utf8
6257# endif
6258#endif /* defined(USE_LOCALE_COLLATE) */
6259#if defined(USE_LOCALE_CTYPE)
6260TXop	|void	|warn_problematic_locale
6261#endif
6262#if defined(USE_PERLIO)
6263Adhp	|void	|PerlIO_clearerr|NULLOK PerlIO *f
6264Adhp	|int	|PerlIO_close	|NULLOK PerlIO *f
6265Adhp	|int	|PerlIO_eof	|NULLOK PerlIO *f
6266Adhp	|int	|PerlIO_error	|NULLOK PerlIO *f
6267Adhp	|int	|PerlIO_fileno	|NULLOK PerlIO *f
6268Adp	|int	|PerlIO_fill	|NULLOK PerlIO *f
6269Adhp	|int	|PerlIO_flush	|NULLOK PerlIO *f
6270Adhp	|STDCHAR *|PerlIO_get_base					\
6271				|NULLOK PerlIO *f
6272ARdhp	|SSize_t|PerlIO_get_bufsiz					\
6273				|NULLOK PerlIO *f
6274ARdhp	|SSize_t|PerlIO_get_cnt |NULLOK PerlIO *f
6275Adhp	|STDCHAR *|PerlIO_get_ptr					\
6276				|NULLOK PerlIO *f
6277Adhp	|SSize_t|PerlIO_read	|NULLOK PerlIO *f			\
6278				|NN void *vbuf				\
6279				|Size_t count
6280Xp	|void	|PerlIO_restore_errno					\
6281				|NULLOK PerlIO *f
6282Xp	|void	|PerlIO_save_errno					\
6283				|NULLOK PerlIO *f
6284Adhp	|int	|PerlIO_seek	|NULLOK PerlIO *f			\
6285				|Off_t offset				\
6286				|int whence
6287Adhp	|void	|PerlIO_set_cnt |NULLOK PerlIO *f			\
6288				|SSize_t cnt
6289Adhp	|void	|PerlIO_setlinebuf					\
6290				|NULLOK PerlIO *f
6291Adhp	|void	|PerlIO_set_ptrcnt					\
6292				|NULLOK PerlIO *f			\
6293				|NULLOK STDCHAR *ptr			\
6294				|SSize_t cnt
6295ARdhp	|PerlIO *|PerlIO_stderr
6296ARdhp	|PerlIO *|PerlIO_stdin
6297ARdhp	|PerlIO *|PerlIO_stdout
6298Adhp	|Off_t	|PerlIO_tell	|NULLOK PerlIO *f
6299Adp	|SSize_t|PerlIO_unread	|NULLOK PerlIO *f			\
6300				|NN const void *vbuf			\
6301				|Size_t count
6302Adhp	|SSize_t|PerlIO_write	|NULLOK PerlIO *f			\
6303				|NN const void *vbuf			\
6304				|Size_t count
6305#endif /* defined(USE_PERLIO) */
6306#if defined(USE_PERL_SWITCH_LOCALE_CONTEXT)
6307Cop	|void	|switch_locale_context
6308#endif
6309#if defined(USE_QUADMATH)
6310Tdp	|bool	|quadmath_format_needed 				\
6311				|NN const char *format
6312Tdp	|bool	|quadmath_format_valid					\
6313				|NN const char *format
6314#endif
6315#if defined(USE_THREADS)
6316Apx	|void	|thread_locale_init
6317Apx	|void	|thread_locale_term
6318#endif
6319#if defined(VMS) || defined(WIN32)
6320Cp	|int	|do_aspawn	|NULLOK SV *really			\
6321				|NN SV **mark				\
6322				|NN SV **sp
6323Cp	|int	|do_spawn	|NN char *cmd
6324Cp	|int	|do_spawn_nowait|NN char *cmd
6325#endif
6326#if defined(WIN32)
6327CRTdp	|void * |get_context
6328p	|bool	|get_win32_message_utf8ness				\
6329				|NULLOK const char *string
6330Teor	|void	|win32_croak_not_implemented				\
6331				|NN const char *fname
6332#else
6333p	|bool	|do_exec3	|NN const char *incmd			\
6334				|int fd 				\
6335				|int do_report
6336CRTdip	|void * |get_context
6337#endif
6338
6339: ex: set ts=8 sts=4 sw=4 noet:
6340