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