comparison lib/stdlib.in.h @ 272:d5392bb5da3c 2.5

Added generated files
author lost
date Sun, 16 Aug 2009 17:16:49 +0000
parents
children
comparison
equal deleted inserted replaced
271:3b793ba7a6c6 272:d5392bb5da3c
1 /* A GNU-like <stdlib.h>.
2
3 Copyright (C) 1995, 2001-2004, 2006-2008 Free Software Foundation, Inc.
4
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 3 of the License, or
8 (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>. */
17
18 #if __GNUC__ >= 3
19 @PRAGMA_SYSTEM_HEADER@
20 #endif
21
22 #if defined __need_malloc_and_calloc
23 /* Special invocation convention inside glibc header files. */
24
25 #@INCLUDE_NEXT@ @NEXT_STDLIB_H@
26
27 #else
28 /* Normal invocation convention. */
29
30 #ifndef _GL_STDLIB_H
31
32 /* The include_next requires a split double-inclusion guard. */
33 #@INCLUDE_NEXT@ @NEXT_STDLIB_H@
34
35 #ifndef _GL_STDLIB_H
36 #define _GL_STDLIB_H
37
38
39 /* Solaris declares getloadavg() in <sys/loadavg.h>. */
40 #if @GNULIB_GETLOADAVG@ && @HAVE_SYS_LOADAVG_H@
41 # include <sys/loadavg.h>
42 #endif
43
44 #if @GNULIB_RANDOM_R@ || !@HAVE_STRUCT_RANDOM_DATA@
45 # include <stdint.h>
46 #endif
47
48 #if !@HAVE_STRUCT_RANDOM_DATA@
49 struct random_data
50 {
51 int32_t *fptr; /* Front pointer. */
52 int32_t *rptr; /* Rear pointer. */
53 int32_t *state; /* Array of state values. */
54 int rand_type; /* Type of random number generator. */
55 int rand_deg; /* Degree of random number generator. */
56 int rand_sep; /* Distance between front and rear. */
57 int32_t *end_ptr; /* Pointer behind state table. */
58 };
59 #endif
60
61 /* The definition of GL_LINK_WARNING is copied here. */
62
63
64 /* Some systems do not define EXIT_*, despite otherwise supporting C89. */
65 #ifndef EXIT_SUCCESS
66 # define EXIT_SUCCESS 0
67 #endif
68 /* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere
69 with proper operation of xargs. */
70 #ifndef EXIT_FAILURE
71 # define EXIT_FAILURE 1
72 #elif EXIT_FAILURE != 1
73 # undef EXIT_FAILURE
74 # define EXIT_FAILURE 1
75 #endif
76
77
78 #ifdef __cplusplus
79 extern "C" {
80 #endif
81
82
83 #if @GNULIB_MALLOC_POSIX@
84 # if !@HAVE_MALLOC_POSIX@
85 # undef malloc
86 # define malloc rpl_malloc
87 extern void * malloc (size_t size);
88 # endif
89 #elif defined GNULIB_POSIXCHECK
90 # undef malloc
91 # define malloc(s) \
92 (GL_LINK_WARNING ("malloc is not POSIX compliant everywhere - " \
93 "use gnulib module malloc-posix for portability"), \
94 malloc (s))
95 #endif
96
97
98 #if @GNULIB_REALLOC_POSIX@
99 # if !@HAVE_REALLOC_POSIX@
100 # undef realloc
101 # define realloc rpl_realloc
102 extern void * realloc (void *ptr, size_t size);
103 # endif
104 #elif defined GNULIB_POSIXCHECK
105 # undef realloc
106 # define realloc(p,s) \
107 (GL_LINK_WARNING ("realloc is not POSIX compliant everywhere - " \
108 "use gnulib module realloc-posix for portability"), \
109 realloc (p, s))
110 #endif
111
112
113 #if @GNULIB_CALLOC_POSIX@
114 # if !@HAVE_CALLOC_POSIX@
115 # undef calloc
116 # define calloc rpl_calloc
117 extern void * calloc (size_t nmemb, size_t size);
118 # endif
119 #elif defined GNULIB_POSIXCHECK
120 # undef calloc
121 # define calloc(n,s) \
122 (GL_LINK_WARNING ("calloc is not POSIX compliant everywhere - " \
123 "use gnulib module calloc-posix for portability"), \
124 calloc (n, s))
125 #endif
126
127
128 #if @GNULIB_ATOLL@
129 # if !@HAVE_ATOLL@
130 /* Parse a signed decimal integer.
131 Returns the value of the integer. Errors are not detected. */
132 extern long long atoll (const char *string);
133 # endif
134 #elif defined GNULIB_POSIXCHECK
135 # undef atoll
136 # define atoll(s) \
137 (GL_LINK_WARNING ("atoll is unportable - " \
138 "use gnulib module atoll for portability"), \
139 atoll (s))
140 #endif
141
142
143 #if @GNULIB_GETLOADAVG@
144 # if !@HAVE_DECL_GETLOADAVG@
145 /* Store max(NELEM,3) load average numbers in LOADAVG[].
146 The three numbers are the load average of the last 1 minute, the last 5
147 minutes, and the last 15 minutes, respectively.
148 LOADAVG is an array of NELEM numbers. */
149 extern int getloadavg (double loadavg[], int nelem);
150 # endif
151 #elif defined GNULIB_POSIXCHECK
152 # undef getloadavg
153 # define getloadavg(l,n) \
154 (GL_LINK_WARNING ("getloadavg is not portable - " \
155 "use gnulib module getloadavg for portability"), \
156 getloadavg (l, n))
157 #endif
158
159
160 #if @GNULIB_GETSUBOPT@
161 /* Assuming *OPTIONP is a comma separated list of elements of the form
162 "token" or "token=value", getsubopt parses the first of these elements.
163 If the first element refers to a "token" that is member of the given
164 NULL-terminated array of tokens:
165 - It replaces the comma with a NUL byte, updates *OPTIONP to point past
166 the first option and the comma, sets *VALUEP to the value of the
167 element (or NULL if it doesn't contain an "=" sign),
168 - It returns the index of the "token" in the given array of tokens.
169 Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined.
170 For more details see the POSIX:2001 specification.
171 http://www.opengroup.org/susv3xsh/getsubopt.html */
172 # if !@HAVE_GETSUBOPT@
173 extern int getsubopt (char **optionp, char *const *tokens, char **valuep);
174 # endif
175 #elif defined GNULIB_POSIXCHECK
176 # undef getsubopt
177 # define getsubopt(o,t,v) \
178 (GL_LINK_WARNING ("getsubopt is unportable - " \
179 "use gnulib module getsubopt for portability"), \
180 getsubopt (o, t, v))
181 #endif
182
183
184 #if @GNULIB_MKDTEMP@
185 # if !@HAVE_MKDTEMP@
186 /* Create a unique temporary directory from TEMPLATE.
187 The last six characters of TEMPLATE must be "XXXXXX";
188 they are replaced with a string that makes the directory name unique.
189 Returns TEMPLATE, or a null pointer if it cannot get a unique name.
190 The directory is created mode 700. */
191 extern char * mkdtemp (char * /*template*/);
192 # endif
193 #elif defined GNULIB_POSIXCHECK
194 # undef mkdtemp
195 # define mkdtemp(t) \
196 (GL_LINK_WARNING ("mkdtemp is unportable - " \
197 "use gnulib module mkdtemp for portability"), \
198 mkdtemp (t))
199 #endif
200
201
202 #if @GNULIB_MKSTEMP@
203 # if @REPLACE_MKSTEMP@
204 /* Create a unique temporary file from TEMPLATE.
205 The last six characters of TEMPLATE must be "XXXXXX";
206 they are replaced with a string that makes the file name unique.
207 The file is then created, ensuring it didn't exist before.
208 The file is created read-write (mask at least 0600 & ~umask), but it may be
209 world-readable and world-writable (mask 0666 & ~umask), depending on the
210 implementation.
211 Returns the open file descriptor if successful, otherwise -1 and errno
212 set. */
213 # define mkstemp rpl_mkstemp
214 extern int mkstemp (char * /*template*/);
215 # else
216 /* On MacOS X 10.3, only <unistd.h> declares mkstemp. */
217 # include <unistd.h>
218 # endif
219 #elif defined GNULIB_POSIXCHECK
220 # undef mkstemp
221 # define mkstemp(t) \
222 (GL_LINK_WARNING ("mkstemp is unportable - " \
223 "use gnulib module mkstemp for portability"), \
224 mkstemp (t))
225 #endif
226
227
228 #if @GNULIB_PUTENV@
229 # if @REPLACE_PUTENV@
230 # undef putenv
231 # define putenv rpl_putenv
232 extern int putenv (char *string);
233 # endif
234 #endif
235
236
237 #if @GNULIB_RANDOM_R@
238 # if !@HAVE_RANDOM_R@
239
240 # ifndef RAND_MAX
241 # define RAND_MAX 2147483647
242 # endif
243
244 int srandom_r (unsigned int seed, struct random_data *rand_state);
245 int initstate_r (unsigned int seed, char *buf, size_t buf_size,
246 struct random_data *rand_state);
247 int setstate_r (char *arg_state, struct random_data *rand_state);
248 int random_r (struct random_data *buf, int32_t *result);
249 # endif
250 #elif defined GNULIB_POSIXCHECK
251 # undef random_r
252 # define random_r(b,r) \
253 (GL_LINK_WARNING ("random_r is unportable - " \
254 "use gnulib module random_r for portability"), \
255 random_r (b,r))
256 # undef initstate_r
257 # define initstate_r(s,b,sz,r) \
258 (GL_LINK_WARNING ("initstate_r is unportable - " \
259 "use gnulib module random_r for portability"), \
260 initstate_r (s,b,sz,r))
261 # undef srandom_r
262 # define srandom_r(s,r) \
263 (GL_LINK_WARNING ("srandom_r is unportable - " \
264 "use gnulib module random_r for portability"), \
265 srandom_r (s,r))
266 # undef setstate_r
267 # define setstate_r(a,r) \
268 (GL_LINK_WARNING ("setstate_r is unportable - " \
269 "use gnulib module random_r for portability"), \
270 setstate_r (a,r))
271 #endif
272
273
274 #if @GNULIB_RPMATCH@
275 # if !@HAVE_RPMATCH@
276 /* Test a user response to a question.
277 Return 1 if it is affirmative, 0 if it is negative, or -1 if not clear. */
278 extern int rpmatch (const char *response);
279 # endif
280 #elif defined GNULIB_POSIXCHECK
281 # undef rpmatch
282 # define rpmatch(r) \
283 (GL_LINK_WARNING ("rpmatch is unportable - " \
284 "use gnulib module rpmatch for portability"), \
285 rpmatch (r))
286 #endif
287
288
289 #if @GNULIB_SETENV@
290 # if !@HAVE_SETENV@
291 /* Set NAME to VALUE in the environment.
292 If REPLACE is nonzero, overwrite an existing value. */
293 extern int setenv (const char *name, const char *value, int replace);
294 # endif
295 #endif
296
297
298 #if @GNULIB_UNSETENV@
299 # if @HAVE_UNSETENV@
300 # if @VOID_UNSETENV@
301 /* On some systems, unsetenv() returns void.
302 This is the case for MacOS X 10.3, FreeBSD 4.8, NetBSD 1.6, OpenBSD 3.4. */
303 # define unsetenv(name) ((unsetenv)(name), 0)
304 # endif
305 # else
306 /* Remove the variable NAME from the environment. */
307 extern int unsetenv (const char *name);
308 # endif
309 #endif
310
311
312 #if @GNULIB_STRTOD@
313 # if @REPLACE_STRTOD@
314 # define strtod rpl_strtod
315 # endif
316 # if !@HAVE_STRTOD@ || @REPLACE_STRTOD@
317 /* Parse a double from STRING, updating ENDP if appropriate. */
318 extern double strtod (const char *str, char **endp);
319 # endif
320 #elif defined GNULIB_POSIXCHECK
321 # undef strtod
322 # define strtod(s, e) \
323 (GL_LINK_WARNING ("strtod is unportable - " \
324 "use gnulib module strtod for portability"), \
325 strtod (s, e))
326 #endif
327
328
329 #if @GNULIB_STRTOLL@
330 # if !@HAVE_STRTOLL@
331 /* Parse a signed integer whose textual representation starts at STRING.
332 The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
333 it may be decimal or octal (with prefix "0") or hexadecimal (with prefix
334 "0x").
335 If ENDPTR is not NULL, the address of the first byte after the integer is
336 stored in *ENDPTR.
337 Upon overflow, the return value is LLONG_MAX or LLONG_MIN, and errno is set
338 to ERANGE. */
339 extern long long strtoll (const char *string, char **endptr, int base);
340 # endif
341 #elif defined GNULIB_POSIXCHECK
342 # undef strtoll
343 # define strtoll(s,e,b) \
344 (GL_LINK_WARNING ("strtoll is unportable - " \
345 "use gnulib module strtoll for portability"), \
346 strtoll (s, e, b))
347 #endif
348
349
350 #if @GNULIB_STRTOULL@
351 # if !@HAVE_STRTOULL@
352 /* Parse an unsigned integer whose textual representation starts at STRING.
353 The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
354 it may be decimal or octal (with prefix "0") or hexadecimal (with prefix
355 "0x").
356 If ENDPTR is not NULL, the address of the first byte after the integer is
357 stored in *ENDPTR.
358 Upon overflow, the return value is ULLONG_MAX, and errno is set to
359 ERANGE. */
360 extern unsigned long long strtoull (const char *string, char **endptr, int base);
361 # endif
362 #elif defined GNULIB_POSIXCHECK
363 # undef strtoull
364 # define strtoull(s,e,b) \
365 (GL_LINK_WARNING ("strtoull is unportable - " \
366 "use gnulib module strtoull for portability"), \
367 strtoull (s, e, b))
368 #endif
369
370
371 #ifdef __cplusplus
372 }
373 #endif
374
375 #endif /* _GL_STDLIB_H */
376 #endif /* _GL_STDLIB_H */
377 #endif