summaryrefslogtreecommitdiffstats
path: root/gl/stdlib.in.h
diff options
context:
space:
mode:
Diffstat (limited to 'gl/stdlib.in.h')
-rw-r--r--gl/stdlib.in.h171
1 files changed, 170 insertions, 1 deletions
diff --git a/gl/stdlib.in.h b/gl/stdlib.in.h
index 100ff526..3820b109 100644
--- a/gl/stdlib.in.h
+++ b/gl/stdlib.in.h
@@ -1,6 +1,6 @@
1/* A GNU-like <stdlib.h>. 1/* A GNU-like <stdlib.h>.
2 2
3 Copyright (C) 1995, 2001-2004, 2006-2007 Free Software Foundation, Inc. 3 Copyright (C) 1995, 2001-2004, 2006-2008 Free Software Foundation, Inc.
4 4
5 This program is free software: you can redistribute it and/or modify 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 6 it under the terms of the GNU General Public License as published by
@@ -15,6 +15,10 @@
15 You should have received a copy of the GNU General Public License 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/>. */ 16 along with this program. If not, see <http://www.gnu.org/licenses/>. */
17 17
18#if __GNUC__ >= 3
19@PRAGMA_SYSTEM_HEADER@
20#endif
21
18#if defined __need_malloc_and_calloc 22#if defined __need_malloc_and_calloc
19/* Special invocation convention inside glibc header files. */ 23/* Special invocation convention inside glibc header files. */
20 24
@@ -32,6 +36,28 @@
32#define _GL_STDLIB_H 36#define _GL_STDLIB_H
33 37
34 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@
49struct 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
35/* The definition of GL_LINK_WARNING is copied here. */ 61/* The definition of GL_LINK_WARNING is copied here. */
36 62
37 63
@@ -99,6 +125,38 @@ extern void * calloc (size_t nmemb, size_t size);
99#endif 125#endif
100 126
101 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. */
132extern 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. */
149extern 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
102#if @GNULIB_GETSUBOPT@ 160#if @GNULIB_GETSUBOPT@
103/* Assuming *OPTIONP is a comma separated list of elements of the form 161/* Assuming *OPTIONP is a comma separated list of elements of the form
104 "token" or "token=value", getsubopt parses the first of these elements. 162 "token" or "token=value", getsubopt parses the first of these elements.
@@ -176,6 +234,58 @@ extern int putenv (char *string);
176#endif 234#endif
177 235
178 236
237#if @GNULIB_RANDOM_R@
238# if !@HAVE_RANDOM_R@
239
240# ifndef RAND_MAX
241# define RAND_MAX 2147483647
242# endif
243
244int srandom_r (unsigned int seed, struct random_data *rand_state);
245int initstate_r (unsigned int seed, char *buf, size_t buf_size,
246 struct random_data *rand_state);
247int setstate_r (char *arg_state, struct random_data *rand_state);
248int 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. */
278extern 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
179#if @GNULIB_SETENV@ 289#if @GNULIB_SETENV@
180# if !@HAVE_SETENV@ 290# if !@HAVE_SETENV@
181/* Set NAME to VALUE in the environment. 291/* Set NAME to VALUE in the environment.
@@ -199,6 +309,65 @@ extern int unsetenv (const char *name);
199#endif 309#endif
200 310
201 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. */
318extern 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. */
339extern 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. */
360extern 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
202#ifdef __cplusplus 371#ifdef __cplusplus
203} 372}
204#endif 373#endif