1 changequote(`«', `»')dnl
2 define(«IFNBLANK», «ifelse(translit(««$1»», «
4 define(«DECL_ARGLIST», «ifelse(«$#», «2», «$1»,
5 «$1, DECL_ARGLIST(shift(shift($@)))»)»)dnl
6 define(«LINK_COUNT», 0)
7 define(«STRIP_LEFT», «patsubst(«$1», «^\s+», «»)»)dnl
8 define(«STRIP_RIGHT», «patsubst(«$1», «\s+$», «»)»)dnl
9 define(«STRIP», «STRIP_LEFT(«STRIP_RIGHT(«$1»)»)»)dnl
10 ifelse(OUTPUT_MODE, «C», «dnl --------- C output
11 define(«COMPOUND_MEMBERS», «ifelse(«$#», «1», «»,
12 « $1; /* STRIP_RIGHT(«$2») */
13 COMPOUND_MEMBERS(shift(shift($@)))»)»)dnl
14 define(«DECL_ARG_TEXT», «ifelse(«$#», «1», «», «IFNBLANK(«$2», «
15 $1: $2«»DECL_ARG_TEXT(shift(shift($@)))»)»)»)dnl
16 define(«DECLARE_FUNCTION», «/* $2 */
17 $6 $1(DECL_ARGLIST($4));
21 IFNBLANK(«$5», «$5»)dnl
23 Return ($6): STRIP_RIGHT(«$7»)»
25 IFNBLANK(«$8», «$8»)dnl
27 define(«STATEMENT», «/* $2 */
29 IFNBLANK(«$3», «/*STRIP_RIGHT(«$3»)
33 define(«DECLARE_COMPOUND», «/* $2 */
35 IFNBLANK(«$3», «/*STRIP_RIGHT(«$3»)
38 COMPOUND_MEMBERS($4)dnl
40 IFNBLANK(«$5», «/*STRIP_RIGHT(«$5»)
44 define(«VERBATIM_C», «$1»)dnl
45 », OUTPUT_MODE, «HTML», «dnl --------- HTML output
46 define(«FIXUP_LT», «patsubst(«$1», «<», «<»)»)
47 define(«FIXUP_GT», «patsubst(«$1», «>», «>»)»)
48 define(«FIXUP_AMPERSAND», «patsubst(«$1», «&», «&»)»)
49 define(«HANDLE_EMPTY_LINES», «patsubst(«$1», «^\s*$», «</p><p>»)»)
50 define(«FIXUP_HTML», «<p> FIXUP_AMPERSAND(«FIXUP_LT(«FIXUP_GT(
51 «HANDLE_EMPTY_LINES(«$1»)»)»)») </p>»)
52 define(«FORMAT_LIST_HTML», «ifelse(«$#», «1», «», «
53 IFNBLANK(«$2», «<li> <tt>$1</tt>: $2 </li>
54 FORMAT_LIST_HTML(shift(shift($@)))»)»
57 <a name = "link_«»LINK_COUNT" </a>
60 define(«LINK_COUNT», incr(LINK_COUNT))
61 <a href = "«#»link_«»LINK_COUNT"> $1 </a>
63 define(«DECLARE_FUNCTION», «
65 <tr> <td> <tt> HREF(«$1») </tt> </td> <td> $2 </td> </tr>
68 <h1> <tt> $6 $1(DECL_ARGLIST($4)) </tt> </h1>
69 <strong> FIXUP_HTML(«$2») </strong>
71 <ul> FORMAT_LIST_HTML($4) </ul>
73 IFNBLANK(«$7», «Return (<tt>$6</tt>):
74 <ul><li> FIXUP_HTML(«$7») </lu></ul>»)
80 <tr> <td> <tt> HREF(«$1») </tt> </td> <td> $2 </td>
83 <h1> <tt> $1 </tt> </h1>
84 <strong> FIXUP_HTML(«$2») </strong>
85 <p> FIXUP_HTML(«$3») </p>
88 define(«DECLARE_COMPOUND», «
90 <tr> <td> <tt> HREF(«$1») </tt> </td> <td> $2 </td>
93 <h1> <tt> $1 </tt> </h1>
94 <strong> FIXUP_HTML(«$2») </strong>
97 <ul> FORMAT_LIST_HTML($4) </ul>
102 divert(«1») </table> <hr> divert
103 <center> <h1> API Reference </h1> </center>
105 », OUTPUT_MODE, «ROFF»,«dnl ---------- ROFF output
109 define(«FORMAT_LIST_ROFF», «ifelse(«$#», «1», «», «
114 FORMAT_LIST_ROFF(shift(shift($@)))»dnl
116 define(«STATEMENT», «dnl
126 define(«DECLARE_FUNCTION», «
132 .SS "STRIP_RIGHT(«$6») $1(DECL_ARGLIST($4))"
159 dnl (1) name, (2) one-line summary, (3) prolog, (4) args,
160 dnl (5) arg doc, (6) return type, (7) one-line return text, (8) epilog
163 «The function that is executed on startup.»,
165 1. This function must not be static, it's always linked in.
167 Each executable needs to define exactly one main function.
169 «int argc», «usual argument count»,
170 «char **argv», «usual argument vector»
172 2. The arg list may optionally contain an env pointer. In any case
173 argc > 0 and argc < INT_MAX.
175 «int», «EXIT_SUCCESS or EXIT_FAILURE»,
177 3. On most systems EXIT_FAILURE is 1 and EXIT_SUCCESS is 0.
182 «Commit buffer cache to disk.»,
184 Causes all buffered modifications to file metadata and data
185 to be written to the underlying filesystems.
195 «Input of characters and strings.»,
197 Reads the next character from stdin.
202 «int», «the character read»,
204 On success the return value is an unsigned char cast to
205 an int. On end of file or error, EOF is returned.
211 «Free dynamic memory.»,
213 The memory space must have been returned by a previous call to
214 malloc(), calloc(), or realloc().
216 «void *ptr», «free the memory space pointed to by ptr»
218 If ptr is NULL, no operation is performed.
225 dnl (1) name, (2) one-line summary, (3) prolog, (4) member list, (5) epilog
228 «Describes a complex number»,
231 «float re», «real part»,
232 «float im», «imaginary part»,
237 «According to POSIX, the <sys/uio.h> header shall define the iovec structure.»,
239 This structure is employed for the readv() and writev() system calls.
241 For example, the readv() system call reads into buffers which is
242 described by an array of iovec structures.
244 «void *iov_base», «start address»,
245 «size_t iov_len», «number of bytes to transfer»
247 Buffers are processed in array order.
252 dnl (1) name, (2) one-line summary, (3) description
255 «Opaque structure that describes one connection to the foo subsystem»,
257 The compiler considers this structure an incomplete type.
259 Applications can still declare pointer variables or arrays of pointers
260 to this structure, and compare pointers for equality. However, they
261 will not be able to de-reference a pointer, and can only change the
262 pointer's content by calling some procedure of the library.