]> git.llucax.com Git - software/druntime.git/blob - import/stdc/posix/stdlib.d
e9b0ba20f7fcf604e5f47cde153a44f35050e454
[software/druntime.git] / import / stdc / posix / stdlib.d
1 /**
2  * D header file for POSIX.
3  *
4  * Copyright: Public Domain
5  * License:   Public Domain
6  * Authors:   Sean Kelly
7  * Standards: The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition
8  */
9 module stdc.posix.stdlib;
10
11 private import stdc.posix.config;
12 public import stdc.stdlib;
13 public import stdc.posix.sys.wait;
14
15 extern (C):
16
17 //
18 // Required (defined in stdc.stdlib)
19 //
20 /*
21 EXIT_FAILURE
22 EXIT_SUCCESS
23 NULL
24 RAND_MAX
25 MB_CUR_MAX
26 div_t
27 ldiv_t
28 lldiv_t
29 size_t
30 wchar_t
31
32 void    _Exit(int);
33 void    abort();
34 int     abs(int);
35 int     atexit(void function());
36 double  atof(in char*);
37 int     atoi(in char*);
38 c_long  atol(in char*);
39 long    atoll(in char*);
40 void*   bsearch(in void*, in void*, size_t, size_t, int function(in void*, in void*));
41 void*   calloc(size_t, size_t);
42 div_t   div(int, int);
43 void    exit(int);
44 void    free(void*);
45 char*   getenv(in char*);
46 c_long  labs(c_long);
47 ldiv_t  ldiv(c_long, c_long);
48 long    llabs(long);
49 lldiv_t lldiv(long, long);
50 void*   malloc(size_t);
51 int     mblen(in char*, size_t);
52 size_t  mbstowcs(wchar_t*, in char*, size_t);
53 int     mbtowc(wchar_t*, in char*, size_t);
54 void    qsort(void*, size_t, size_t, int function(in void*, in void*));
55 int     rand();
56 void*   realloc(void*, size_t);
57 void    srand(uint);
58 double  strtod(in char*, char**);
59 float   strtof(in char*, char**);
60 c_long  strtol(in char*, char**, int);
61 real    strtold(in char*, char**);
62 long    strtoll(in char*, char**, int);
63 c_ulong strtoul(in char*, char**, int);
64 ulong   strtoull(in char*, char**, int);
65 int     system(in char*);
66 size_t  wcstombs(char*, in wchar_t*, size_t);
67 int     wctomb(char*, wchar_t);
68 */
69
70 //
71 // Advisory Information (ADV)
72 //
73 /*
74 int posix_memalign(void**, size_t, size_t);
75 */
76
77 version( linux )
78 {
79     int posix_memalign(void**, size_t, size_t);
80 }
81
82 //
83 // C Extension (CX)
84 //
85 /*
86 int setenv(in char*, in char*, int);
87 int unsetenv(in char*);
88 */
89
90 version( linux )
91 {
92     int setenv(in char*, in char*, int);
93     int unsetenv(in char*);
94
95     void* valloc(size_t); // LEGACY non-standard
96 }
97 else version( darwin )
98 {
99     int setenv(in char*, in char*, int);
100     int unsetenv(in char*);
101
102     void* valloc(size_t); // LEGACY non-standard
103 }
104 else version( freebsd )
105 {
106     int setenv(in char*, in char*, int);
107     int unsetenv(in char*);
108
109     void* valloc(size_t); // LEGACY non-standard
110 }
111
112 //
113 // Thread-Safe Functions (TSF)
114 //
115 /*
116 int rand_r(uint*);
117 */
118
119 version( linux )
120 {
121     int rand_r(uint*);
122 }
123 else version( darwin )
124 {
125     int rand_r(uint*);
126 }
127 else version( freebsd )
128 {
129     int rand_r(uint*);
130 }
131
132 //
133 // XOpen (XSI)
134 //
135 /*
136 WNOHANG     (defined in stdc.posix.sys.wait)
137 WUNTRACED   (defined in stdc.posix.sys.wait)
138 WEXITSTATUS (defined in stdc.posix.sys.wait)
139 WIFEXITED   (defined in stdc.posix.sys.wait)
140 WIFSIGNALED (defined in stdc.posix.sys.wait)
141 WIFSTOPPED  (defined in stdc.posix.sys.wait)
142 WSTOPSIG    (defined in stdc.posix.sys.wait)
143 WTERMSIG    (defined in stdc.posix.sys.wait)
144
145 c_long a64l(in char*);
146 double drand48();
147 char*  ecvt(double, int, int *, int *); // LEGACY
148 double erand48(ushort[3]);
149 char*  fcvt(double, int, int *, int *); // LEGACY
150 char*  gcvt(double, int, char*); // LEGACY
151 // per spec: int getsubopt(char** char* const*, char**);
152 int    getsubopt(char**, in char**, char**);
153 int    grantpt(int);
154 char*  initstate(uint, char*, size_t);
155 c_long jrand48(ushort[3]);
156 char*  l64a(c_long);
157 void   lcong48(ushort[7]);
158 c_long lrand48();
159 char*  mktemp(char*); // LEGACY
160 int    mkstemp(char*);
161 c_long mrand48();
162 c_long nrand48(ushort[3]);
163 int    posix_openpt(int);
164 char*  ptsname(int);
165 int    putenv(char*);
166 c_long random();
167 char*  realpath(in char*, char*);
168 ushort seed48(ushort[3]);
169 void   setkey(in char*);
170 char*  setstate(in char*);
171 void   srand48(c_long);
172 void   srandom(uint);
173 int    unlockpt(int);
174 */
175
176 version( linux )
177 {
178     //WNOHANG     (defined in stdc.posix.sys.wait)
179     //WUNTRACED   (defined in stdc.posix.sys.wait)
180     //WEXITSTATUS (defined in stdc.posix.sys.wait)
181     //WIFEXITED   (defined in stdc.posix.sys.wait)
182     //WIFSIGNALED (defined in stdc.posix.sys.wait)
183     //WIFSTOPPED  (defined in stdc.posix.sys.wait)
184     //WSTOPSIG    (defined in stdc.posix.sys.wait)
185     //WTERMSIG    (defined in stdc.posix.sys.wait)
186
187     c_long a64l(in char*);
188     double drand48();
189     char*  ecvt(double, int, int *, int *); // LEGACY
190     double erand48(ushort[3]);
191     char*  fcvt(double, int, int *, int *); // LEGACY
192     char*  gcvt(double, int, char*); // LEGACY
193     int    getsubopt(char**, in char**, char**);
194     int    grantpt(int);
195     char*  initstate(uint, char*, size_t);
196     c_long jrand48(ushort[3]);
197     char*  l64a(c_long);
198     void   lcong48(ushort[7]);
199     c_long lrand48();
200     char*  mktemp(char*); // LEGACY
201     //int    mkstemp(char*);
202     c_long mrand48();
203     c_long nrand48(ushort[3]);
204     int    posix_openpt(int);
205     char*  ptsname(int);
206     int    putenv(char*);
207     c_long random();
208     char*  realpath(in char*, char*);
209     ushort seed48(ushort[3]);
210     void   setkey(in char*);
211     char*  setstate(in char*);
212     void   srand48(c_long);
213     void   srandom(uint);
214     int    unlockpt(int);
215
216   static if( __USE_LARGEFILE64 )
217   {
218     int    mkstemp64(char*);
219     alias  mkstemp64 mkstemp;
220   }
221   else
222   {
223     int    mkstemp(char*);
224   }
225 }
226 else version( darwin )
227 {
228     //WNOHANG     (defined in stdc.posix.sys.wait)
229     //WUNTRACED   (defined in stdc.posix.sys.wait)
230     //WEXITSTATUS (defined in stdc.posix.sys.wait)
231     //WIFEXITED   (defined in stdc.posix.sys.wait)
232     //WIFSIGNALED (defined in stdc.posix.sys.wait)
233     //WIFSTOPPED  (defined in stdc.posix.sys.wait)
234     //WSTOPSIG    (defined in stdc.posix.sys.wait)
235     //WTERMSIG    (defined in stdc.posix.sys.wait)
236
237     c_long a64l(in char*);
238     double drand48();
239     char*  ecvt(double, int, int *, int *); // LEGACY
240     double erand48(ushort[3]);
241     char*  fcvt(double, int, int *, int *); // LEGACY
242     char*  gcvt(double, int, char*); // LEGACY
243     int    getsubopt(char**, in char**, char**);
244     int    grantpt(int);
245     char*  initstate(uint, char*, size_t);
246     c_long jrand48(ushort[3]);
247     char*  l64a(c_long);
248     void   lcong48(ushort[7]);
249     c_long lrand48();
250     char*  mktemp(char*); // LEGACY
251     int    mkstemp(char*);
252     c_long mrand48();
253     c_long nrand48(ushort[3]);
254     int    posix_openpt(int);
255     char*  ptsname(int);
256     int    putenv(char*);
257     c_long random();
258     char*  realpath(in char*, char*);
259     ushort seed48(ushort[3]);
260     void   setkey(in char*);
261     char*  setstate(in char*);
262     void   srand48(c_long);
263     void   srandom(uint);
264     int    unlockpt(int);
265 }
266 else version( freebsd )
267 {
268     //WNOHANG     (defined in stdc.posix.sys.wait)
269     //WUNTRACED   (defined in stdc.posix.sys.wait)
270     //WEXITSTATUS (defined in stdc.posix.sys.wait)
271     //WIFEXITED   (defined in stdc.posix.sys.wait)
272     //WIFSIGNALED (defined in stdc.posix.sys.wait)
273     //WIFSTOPPED  (defined in stdc.posix.sys.wait)
274     //WSTOPSIG    (defined in stdc.posix.sys.wait)
275     //WTERMSIG    (defined in stdc.posix.sys.wait)
276
277     c_long a64l(in char*);
278     double drand48();
279     //char*  ecvt(double, int, int *, int *); // LEGACY
280     double erand48(ushort[3]);
281     //char*  fcvt(double, int, int *, int *); // LEGACY
282     //char*  gcvt(double, int, char*); // LEGACY
283     int    getsubopt(char**, in char**, char**);
284     int    grantpt(int);
285     char*  initstate(uint, char*, size_t);
286     c_long jrand48(ushort[3]);
287     char*  l64a(c_long);
288     void   lcong48(ushort[7]);
289     c_long lrand48();
290     char*  mktemp(char*); // LEGACY
291     int    mkstemp(char*);
292     c_long mrand48();
293     c_long nrand48(ushort[3]);
294     int    posix_openpt(int);
295     char*  ptsname(int);
296     int    putenv(char*);
297     c_long random();
298     char*  realpath(in char*, char*);
299     ushort seed48(ushort[3]);
300     void   setkey(in char*);
301     char*  setstate(in char*);
302     void   srand48(c_long);
303     void   srandom(uint);
304     int    unlockpt(int);
305 }