add the c99 strtold function
[AROS.git] / compiler / stdc / stdc.conf
blobc97c78f0ef97d261a86090668c74902ae1b20cca
1 ##begin config
2 version 0.1
3 basename StdC
4 libbasetypeextern struct StdCBase
5 libbasetype struct StdCIntBase
6 options peropenerbase
7 ##end config
9 ##begin cdef
10 #include <libraries/stdc.h>
11 #include <setjmp.h>
12 #include <complex.h>
13 #include <fenv.h>
14 #include <math.h>
15 #include <signal.h>
16 #include <stdarg.h>
17 #include <stdlib.h>
18 #include <time.h>
20 #ifdef __GNUC__
21 #undef cimag
22 #undef cimagf
23 #undef cimagl
24 #undef creal
25 #undef crealf
26 #undef creall
27 #endif
29 /* Avoid warning for redefinition of isinf()/isnan() */
30 #define STDC_NOLIBINLINE
31 #define STDC_NOLIBDEFINES
33 ##end cdef
35 ##begin cdefprivate
36 #include "__stdc_intbase.h"
37 ##end cdefprivate
39 ##begin startup
40 #include "stdc_startup.c"
41 ##end startup
43 ##begin functionlist
44 # == Internal functions ==
46 int __stdc_gmtoffset(void)
47 void __stdc_program_startup(jmp_buf exitjmp, int *errorptr)
48 void __stdc_program_end(void)
49 int *__stdc_set_errorptr(int *errorptr)
50 int *__stdc_get_errorptr(void)
51 void __stdc_set_exitjmp(jmp_buf exitjmp, jmp_buf previousjmp)
52 void __stdc_jmp2exit(int normal, int returncode)
53 .skip 3
54 # == C99 functions ordered per include file ==
55 # * assert.h: Support function for assert() macro
56 .skip 1
57 #__stdc_assert(const char * expr, const char * file, unsigned int line)
58 #.alias __assert
60 # * complex.h
61 .skip 42
62 #double complex cacos(double complex z)
63 #float complex cacosf(float complex z)
64 #long double complex cacosl(long double complex z)
65 #double complex casin(double complex z)
66 #float complex casinf(float complex z)
67 #long double complex casinl(long double complex z)
68 #double complex catan(double complex z)
69 #float complex catanf(float complex z)
70 #long double complex catanl(long double complex z)
71 #double complex ccos(double complex z)
72 #float complex ccosf(float complex z)
73 #long double complex ccosl(long double complex z)
74 #double complex csin(double complex z)
75 #float complex csinf(float complex z)
76 #long double complex csinl(long double complex z)
77 #double complex ctan(double complex z)
78 #float complex ctanf(float complex z)
79 #long double complex ctanl(long double complex z)
80 #double complex cacosh(double complex z)
81 #float complex cacoshf(float complex z)
82 #long double complex cacoshl(long double complex z)
83 #double complex casinh(double complex z)
84 #float complex casinhf(float complex z)
85 #long double complex casinhl(long double complex z)
86 #double complex catanh(double complex z)
87 #float complex catanhf(float complex z)
88 #long double complex catanhl(long double complex z)
89 #double complex ccosh(double complex z)
90 #float complex ccoshf(float complex z)
91 #long double complex ccoshl(long double complex z)
92 #double complex csinh(double complex z)
93 #float complex csinhf(float complex z)
94 #long double complex csinhl(long double complex z)
95 #double complex ctanh(double complex z)
96 #float complex ctanhf(float complex z)
97 #long double complex ctanhl(long double complex z)
98 #double complex cexp(double complex z)
99 #float complex cexpf(float complex z)
100 #long double complex cexpl(long double complex z)
101 #double complex clog(double complex z)
102 #float complex clogf(float complex z)
103 #long double complex clogl(long double complex z)
104 double cabs(double complex z)
105 float cabsf(float complex z)
106 .skip 10
107 #long double cabsl(long double complex z)
108 #double complex cpow(double complex x, double complex y)
109 #float complex cpowf(float complex x, float complex y)
110 #long double complex cpowl(long double complex x, long double complex y)
111 #double complex csqrt(double complex z)
112 #float complex csqrtf(float complex z)
113 #long double complex csqrtl(long double complex z)
114 #double carg(double complex z)
115 #float cargf(float complex z)
116 #long double cargl(long double complex z)
117 double cimag(double complex z)
118 float cimagf(float complex z)
119 long double cimagl(long double complex z)
120 double complex conj(double complex z)
121 float complex conjf(float complex z)
122 long double complex conjl(long double complex z)
123 .skip 3
124 #double complex cproj(double complex z)
125 #float complex cprojf(float complex z)
126 #long double complex cprojl(long double complex z)
127 double creal(double complex z)
128 float crealf(float complex z)
129 long double creall(long double complex z)
131 # * ctype.h: functions are declared as static inline functions
133 # * errno.h
134 int __stdc_ioerr2errno(int ioerr)
135 .alias ioerr2errno
137 # * fenv.h
138 int feclearexcept(int excepts)
139 .function _feclearexcept
140 int fegetexceptflag(fexcept_t *flagp, int excepts)
141 .function _fegetexceptflag
142 int feraiseexcept(int excepts)
143 .function _feraiseexcept
144 int fesetexceptflag(const fexcept_t *flagp, int excepts)
145 .function _fesetexceptflag
146 int fetestexcept(int excepts)
147 .function _fetestexcept
148 int fegetround(void)
149 .function _fegetround
150 int fesetround(int round)
151 .function _fesetround
152 int fegetenv(fenv_t *envp)
153 .function _fegetenv
154 int feholdexcept(fenv_t *envp)
155 .function _feholdexcept
156 int fesetenv(const fenv_t *envp)
157 .function _fesetenv
158 int feupdateenv(const fenv_t *envp)
159 .function _feupdateenv
161 # * float.h: no functions in float.h
163 # * inttypes.h
164 .skip 2
165 #intmax_t imaxabs(intmax_t j)
166 #imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom)
167 intmax_t strtoimax(const char * restrict nptr, char ** restrict endptr, int base)
168 uintmax_t strtoumax(const char * restrict nptr, char ** restrict endptr, int base)
169 .skip 2
170 #intmax_t wcstoimax(const wchar_t * restrict nptr, wchar_t ** restrict endptr, int base)
171 #uintmax_t wcstoumax(const wchar_t * restrict nptr, wchar_t ** restrict endptr, int base)
173 # * iso646.h: no functions in iso646.h
175 # * limits.h: no functions in limits.h
177 # * locale.h
178 char *setlocale(int category, const char *locale)
179 struct lconv *localeconv(void)
181 # * math.h
182 .skip 3
183 #int __fpclassify(double)
184 #int __fpclassifyf(float)
185 #int __fpclassifyl(long double)
186 int __isfinite(double)
187 .unusedlibbase
188 .alias finite
189 int __isfinitef(float)
190 .unusedlibbase
191 .alias finitef
192 int __isfinitel(long double)
193 .unusedlibbase
194 .alias finitel
195 int __isinf(double)
196 .unusedlibbase
197 .alias isinf
198 int __isinff(float)
199 .unusedlibbase
200 .alias isinff
201 .skip 1
202 #int __isinfl(long double)
203 #.unusedlibbase
204 #.alias isinfl
205 int __isnan(double)
206 .unusedlibbase
207 .alias isnan
208 int __isnanf(float)
209 .unusedlibbase
210 .alias isnanf
211 int __isnanl(long double)
212 .unusedlibbase
213 .alias isnanl
214 int __isnormal(double)
215 .unusedlibbase
216 int __isnormalf(float)
217 .unusedlibbase
218 int __isnormall(long double)
219 .unusedlibbase
220 int __signbit(double)
221 .unusedlibbase
222 int __signbitf(float)
223 .unusedlibbase
224 int __signbitl(long double)
225 .unusedlibbase
226 double acos(double)
227 double asin(double)
228 double atan(double)
229 double atan2(double, double)
230 double cos(double)
231 double sin(double)
232 double tan(double)
233 double acosh(double)
234 double asinh(double)
235 double atanh(double)
236 double cosh(double)
237 double sinh(double)
238 double tanh(double)
239 double exp(double)
240 double exp2(double)
241 double expm1(double)
242 double frexp(double, int *)
243 int ilogb(double)
244 double ldexp(double, int)
245 double log(double)
246 double log10(double)
247 double log1p(double)
248 .skip 1
249 #double log2(double) 
250 double logb(double)
251 double modf(double, double *)
252 double scalbn(double, int)
253 double scalbln(double, long)
254 double cbrt(double)
255 double fabs(double)
256 double hypot(double, double)
257 double pow(double, double)
258 double sqrt(double)
259 double erf(double)
260 double erfc(double)
261 double lgamma(double)
262 .alias gamma
263 .skip 1
264 #double tgamma(double)
265 double ceil(double)
266 double floor(double)
267 double nearbyint(double)
268 double rint(double)
269 long lrint(double)
270 long long llrint(double)
271 double round(double)
272 long lround(double)
273 long long llround(double)
274 double trunc(double)
275 double fmod(double, double)
276 double remainder(double, double)
277 .alias drem
278 double remquo(double, double, int *)
279 double copysign(double, double)
280 double nan(const char *tagp)
281 double nextafter(double, double)
282 double nexttoward(double, long double)
283 double fdim(double, double)
284 double fmax(double, double)
285 double fmin(double, double)
286 double fma(double, double, double)
287 float acosf(float)
288 float asinf(float)
289 float atanf(float)
290 float atan2f(float, float)
291 float cosf(float)
292 float sinf(float)
293 float tanf(float)
294 float acoshf(float)
295 float asinhf(float)
296 float atanhf(float)
297 float coshf(float)
298 float sinhf(float)
299 float tanhf(float)
300 float expf(float)
301 float exp2f(float)
302 float expm1f(float)
303 float frexpf(float, int *)
304 int ilogbf(float)
305 float ldexpf(float, int)
306 float logf(float)
307 float log10f(float)
308 float log1pf(float)
309 .skip 1
310 #float log2f(float) 
311 float logbf(float)
312 float modff(float, float *)
313 float scalbnf(float, int)
314 float scalblnf(float, long)
315 float cbrtf(float)
316 float fabsf(float)
317 float hypotf(float, float)
318 float powf(float, float)
319 float sqrtf(float)
320 float erff(float)
321 float erfcf(float)
322 float lgammaf(float)
323 .alias gammaf
324 .skip 1
325 #float tgammaf(float)
326 float ceilf(float)
327 float floorf(float)
328 float nearbyintf(float)
329 float rintf(float)
330 long lrintf(float)
331 long long llrintf(float)
332 float roundf(float)
333 long lroundf(float)
334 long long llroundf(float)
335 float truncf(float)
336 float fmodf(float, float)
337 float remainderf(float, float)
338 .alias dremf
339 float remquof(float, float, int *)
340 float copysignf(float, float)
341 float nanf(const char *tagp)
342 float nextafterf(float, float)
343 float nexttowardf(float, long double)
344 float fdimf(float, float)
345 float fmaxf(float, float)
346 float fminf(float, float)
347 float fmaf(float, float, float)
348 .skip 16
349 #long double acosl(long double)
350 #long double asinl(long double)
351 #long double atanl(long double)
352 #long double atan2l(long double, long double)
353 #long double cosl(long double)
354 #long double sinl(long double)
355 #long double tanl(long double)
356 #long double acoshl(long double)
357 #long double asinhl(long double)
358 #long double atanhl(long double)
359 #long double coshl(long double)
360 #long double sinhl(long double)
361 #long double tanhl(long double)
362 #long double expl(long double)
363 #long double exp2l(long double)
364 #long double expm1l(long double)
365 long double frexpl(long double value, int *)
366 int ilogbl(long double)
367 long double ldexpl(long double, int)
368 .skip 5
369 #long double logl(long double)
370 #long double log10l(long double)
371 #long double log1pl(long double)
372 #long double log2l(long double)
373 #long double logbl(long double)
374 long double modfl(long double, long double *)
375 long double scalbnl(long double, int)
376 long double scalblnl(long double, long)
377 .skip 1
378 #long double cbrtl(long double)
379 long double fabsl(long double)
380 .skip 7
381 #long double hypotl(long double, long double)
382 #long double powl(long double, long double)
383 #long double sqrtl(long double)
384 #long double erfl(long double)
385 #long double erfcl(long double)
386 #long double lgammal(long double)
387 #.alias gammal
388 #long double tgammal(long double)
389 long double ceill(long double)
390 long double floorl(long double)
391 .skip 4
392 #long double nearbyintl(long double)
393 #long double rintl(long double)
394 #long lrintl(long double)
395 #long long llrintl(long double)
396 long double roundl(long double)
397 long lroundl(long double)
398 long long llroundl(long double)
399 long double truncl(long double)
400 .skip 3
401 #long double fmodl(long double, long double)
402 #long double remainderl(long double, long double)
403 #.alias dreml
404 #long double remquol(long double, long double, int *)
405 long double copysignl(long double, long double)
406 long double nanl(const char *tagp)
407 long double nextafterl(long double, long double)
408 long double nexttowardl(long double, long double)
409 long double fdiml(long double, long double)
410 long double fmaxl(long double, long double)
411 long double fminl(long double, long double)
412 long double fmal(long double, long double, long double)
414 # * setjmp.h
415 .skip 2
416 int setjmp(jmp_buf env)
417 .unusedlibbase
418 void longjmp(jmp_buf env, int val)
419 .unusedlibbase
421 # * signal.h
422 __sighandler_t *signal(int, __sighandler_t *)
423 int raise(int)
425 # * stdarg.h: implementation has to be provided by the compiler.
427 # * stdbool.h: no functions in stdbool.h
429 # * stddef.h: no functions in stddef.h
431 # * stdint.h: no functions in stdint.h
433 # * stdio.h: only string based functions are implemented, the rest in stdcio.library
434 int snprintf(char * restrict s, size_t n, const char * restrict format, ...)
435 int sprintf(char * restrict s, const char * restrict format, ...)
436 int sscanf(const char * restrict s, const char * restrict format, ...)
437 int vsnprintf(char * restrict s, size_t n, const char * restrict format, va_list arg)
438 int vsprintf(char * restrict s, const char * restrict format, va_list arg)
439 int vsscanf(const char * restrict s, const char * restrict format, va_list arg)
441 # * stdlib.h: getenv() and system() implemented in stdcio.library
442 double atof(const char *nptr)
443 int atoi(const char *nptr)
444 long int atol(const char *nptr)
445 .skip 1
446 #long long int atoll(const char *nptr)
447 double strtod(const char * restrict nptr, char ** restrict endptr)
448 .skip 2
449 #float strtof(const char * restrict nptr, char ** restrict endptr)
450 long double strtold(const char * restrict nptr, char ** restrict endptr)
451 long int strtol(const char * restrict nptr, char ** restrict endptr, int base)
452 long long int strtoll(const char * restrict nptr, char ** restrict endptr, int base)
453 unsigned long int strtoul(const char * restrict nptr, char ** restrict endptr, int base)
454 unsigned long long int strtoull(const char * restrict nptr, char ** restrict endptr, int base)
455 int rand(void)
456 void srand(unsigned int seed)
457 void *calloc(size_t count, size_t size)
458 void free(void *memory)
459 void *malloc(size_t size)
460 void *malloc_align(size_t size, size_t alignment)
461 void *realloc(void *oldmem, size_t newsize)
462 void *realloc_nocopy(void *oldmem, size_t newsize)
463 void abort(void)
464 int atexit(void (*func)(void))
465 int on_exit(void (*func)(int, void *), void *)
466 void exit(int code)
467 void _Exit(int)
468 .alias _exit
469 void *bsearch(const void * key, const void * base, size_t count, size_t size, int (*comparefunction)(const void *, const void *))
470 void qsort(void * array, size_t count, size_t elementsize, int (*comparefunction)(const void * element1, const void * element2))
471 int abs(int j)
472 long labs(long j)
473 long long llabs(long long j)
474 div_t div(int numer, int denom)
475 ldiv_t ldiv(long int numer, long int denom)
476 lldiv_t lldiv(long long int numer, long long int denom)
477 int mblen(const char *s, size_t n)
478 .skip 4
479 #int mbtowc(wchar_t * restrict pwc, const char * restrict s, size_t n)
480 #int wctomb(char *s, wchar_t wc)
481 #size_t mbstowcs(wchar_t * restrict pwcs, const char * restrict s, size_t n)
482 #size_t wcstombs(char * restrict s, const wchar_t * restrict pwcs, size_t n)
484 # * string.h: memcpy is the same as memmove
485 void *memmove (void * dest, const void * src, size_t n)
486 .unusedlibbase
487 .alias memcpy
488 char *strcpy (char * restrict dest, const char * restrict src)
489 .unusedlibbase
490 char *strncpy (char * restrict dest, const char * restrict src, size_t n)
491 .unusedlibbase
492 char *strcat (char * restrict dest, const char * restrict src)
493 .unusedlibbase
494 char *strncat (char * restrict dest, const char * restrict src, size_t n)
495 .unusedlibbase
496 int memcmp (const void * s1, const void * s2, size_t n)
497 .unusedlibbase
498 int strcmp (const char * s1, const char * s2)
499 .unusedlibbase
500 int strcoll (const char *s1, const char *s2)
501 .unusedlibbase
502 int strncmp (const char * s1, const char * s2, size_t n)
503 .unusedlibbase
504 size_t strxfrm (char * restrict s1, const char * restrict s2, size_t n)
505 .unusedlibbase
506 void *memchr (const void * dest, int c, size_t n)
507 .unusedlibbase
508 char *strchr (const char * s, int c)
509 .unusedlibbase
510 .alias index
511 size_t strcspn (const char *s1, const char *s2)
512 .unusedlibbase
513 char *strpbrk (const char * s1, const char * s2)
514 .unusedlibbase
515 char *strrchr (const char * s, int c)
516 .unusedlibbase
517 .alias rindex
518 size_t strspn (const char * s1, const char * s2)
519 .unusedlibbase
520 char *strstr (const char * buf, const char * str)c
521 .unusedlibbase
522 char *strtok (char * str, const char * sep)v
523 .unusedlibbase
524 void *memset (void * dest, int c, size_t n)
525 .unusedlibbase
526 char *__stdc_strerror (int n)
527 .alias strerror
528 size_t strlen (const char * str)
529 .unusedlibbase
531 # * tgmath.h: not implemented in stdc.library
533 # * time.h
534 .skip 9
535 clock_t clock(void)
536 double difftime(time_t, time_t)
537 .unusedlibbase
538 time_t mktime(struct tm *)
539 .unusedlibbase
540 time_t time(time_t *)
541 char *asctime(const struct tm *)
542 char *ctime(const time_t *)
543 struct tm *gmtime(const time_t *)
544 struct tm *localtime(const time_t *)
545 size_t strftime(char *, size_t, const char *, const struct tm *)
547 # * wchar.h: not implemented in stdc.library
549 # * wctype.h: not implemented in stdc.library
551 # == Extensions ==
552 # <math.h>: Mostly BSD functions
553 double j0(double)
554 double j1(double)
555 double jn(int, double)
556 double scalb(double, double)
557 double y0(double)
558 double y1(double)
559 double yn(int, double)
560 double gamma_r(double, int *)
561 double lgamma_r(double, int *)
562 void sincos(double, double *, double *)
563 double significand(double)
564 float j0f(float)
565 float j1f(float)
566 float jnf(int, float)
567 float scalbf(float, float)
568 float y0f(float)
569 float y1f(float)
570 float ynf(int, float)
571 float gammaf_r(float, int *)
572 float lgammaf_r(float, int *)
573 void sincosf(float, float *, float *)
574 float significandf(float)
575 .skip 9
576 #long double j0l(long double)
577 #long double j1l(long double)
578 #long double jnl(int, long double)
579 #long double scalbl(long double, long double)
580 #long double y0l(long double)
581 #long double y1l(long double)
582 #long double ynl(int, long double)
583 #long double gammal_r(long double, int *)
584 #long double lgammal_r(long double, int *)
585 void sincosl(long double, long double *, long double *)
586 .skip 1
587 #long double significandl(long double)
589 # * stdio.h: AROS specific support functions based on libnix
590 int __vcformat(void * data, int (*outc)(int, void *), const char * format, va_list args)
591 int __vcscan(void * data, int (*getc)(void *), int (*ungetc)(int, void *), const char * format, va_list args)
593 # * string.h: POSIX, BSD/UNIX, SAS/C
594 .skip 1
595 #void *memccpy(void *restrict, const void *restrict, int, size_t)
596 char *stpcpy(char *restrict, const char *restrict)
597 .skip 2
598 #char *stpncpy(char *restrict, const char *restrict, size_t)
599 #int strcoll_l(const char *, const char *, locale_t)
600 char *strdup(const char *)
601 .skip 2
602 #char *strerror_l(int, locale_t)
603 #int strerror_r(int, char *, size_t)
604 char *strndup(const char *, size_t)
605 .skip 4
606 #size_t strnlen(const char *, size_t)
607 #char *strsignal(int)
608 char *strtok_r(char *restrict, const char *restrict, char **restrict)
609 #size_t strxfrm_l(char *restrict, const char *restrict, size_t, locale_t)
610 size_t strlcpy(char *dst, const char *src, size_t size)
611 .unusedlibbase
612 size_t strlcat(char *dst, const char *src, size_t size)
613 .unusedlibbase
614 char *strsep(char **, const char *)
615 char *strlwr(char *)
616 .unusedlibbase
617 char *strupr(char *)
618 .unusedlibbase
619 char *strrev(char * s)
620 .unusedlibbase
621 int stch_l(const char * in, long * lvalue)
622 .unusedlibbase
623 int stcd_l(const char * in, long * lvalue)
624 .unusedlibbase
625 int stco_l(const char * in, long * lvalue)
626 .unusedlibbase
627 int stcl_d(char * out, long lvalue)
628 .unusedlibbase
629 int stcl_h(char * out, long lvalue)
630 .unusedlibbase
631 int stcl_o(char * out, long lvalue)
632 .unusedlibbase
633 int stcu_d(char * out, unsigned uivalue)
634 size_t stccpy(char *str1_ptr, const char *str2_ptr, size_t max)
635 .unusedlibbase
636 char *stpsym(char *str_ptr, char *dest_ptr, int dest_size)
637 .unusedlibbase
638 char *stpblk( const char * str )
640 # * strings.h: POSIX, BSD
641 int strcasecmp(const char * s1, const char * s2)
642 .skip 1
643 #int strcasecmp_l(const char *, const char *, locale_t)
644 int strncasecmp(const char *, const char *, size_t)
645 .skip 1
646 #int strncasecmp_l(const char *, const char *, size_t, locale_t)
648 # * time.h: reentrant versions of some C99 functions (POSIX)
649 .skip 4
650 char *asctime_r(const struct tm *, char *)
651 char *ctime_r(const time_t *, char *)
652 struct tm *gmtime_r(const time_t *, struct tm *)
653 struct tm *localtime_r(const time_t *, struct tm *)
655 ##end functionlist