4 libbasetypeextern struct StdCBase
5 libbasetype struct StdCIntBase
6 options peropenerbase,rellinklib
10 #include <libraries/stdc.h>
29 /* Avoid warning for redefinition of isinf()/isnan() */
30 #define STDC_NOLIBINLINE
31 #define STDC_NOLIBDEFINES
40 #include "__stdc_intbase.h"
44 #include "stdc_startup.c"
48 # == Internal functions ==
50 int __stdc_gmtoffset(void)
51 void __stdc_program_startup(jmp_buf exitjmp, int *errorptr)
52 void __stdc_program_end(void)
53 int *__stdc_set_errorptr(int *errorptr)
54 int *__stdc_get_errorptr(void)
55 void __stdc_set_exitjmp(jmp_buf exitjmp, jmp_buf previousjmp)
56 void __stdc_jmp2exit(int normal, int returncode)
57 # private functions for patching in softfloat/fenv support
58 void *__stdc_set_fpuprivate(void *fpuprivate)
59 void *__stdc_get_fpuprivate(void)
60 void *__stdc_get_fe_dfl(void)
61 void *__stdc_get_fe_nom(void)
62 int __stdc_get_fe_round(void)
64 # == C99 functions ordered per include file ==
65 # * assert.h: Support function for assert() macro
66 void __assert(const char * expr, const char * file, unsigned int line)
69 double complex cacos(double complex z)
70 float complex cacosf(float complex z)
71 long double complex cacosl(long double complex z)
72 double complex casin(double complex z)
73 float complex casinf(float complex z)
74 long double complex casinl(long double complex z)
75 double complex catan(double complex z)
76 float complex catanf(float complex z)
77 long double complex catanl(long double complex z)
78 double complex ccos(double complex z)
79 float complex ccosf(float complex z)
80 long double complex ccosl(long double complex z)
81 double complex csin(double complex z)
82 float complex csinf(float complex z)
83 long double complex csinl(long double complex z)
84 double complex ctan(double complex z)
85 float complex ctanf(float complex z)
86 long double complex ctanl(long double complex z)
87 double complex cacosh(double complex z)
88 float complex cacoshf(float complex z)
89 long double complex cacoshl(long double complex z)
90 double complex casinh(double complex z)
91 float complex casinhf(float complex z)
92 long double complex casinhl(long double complex z)
93 double complex catanh(double complex z)
94 float complex catanhf(float complex z)
95 long double complex catanhl(long double complex z)
96 double complex ccosh(double complex z)
97 float complex ccoshf(float complex z)
98 long double complex ccoshl(long double complex z)
99 double complex csinh(double complex z)
100 float complex csinhf(float complex z)
101 long double complex csinhl(long double complex z)
102 double complex ctanh(double complex z)
103 float complex ctanhf(float complex z)
104 long double complex ctanhl(long double complex z)
105 double complex cexp(double complex z)
106 float complex cexpf(float complex z)
107 long double complex cexpl(long double complex z)
108 double complex clog(double complex z)
109 float complex clogf(float complex z)
110 long double complex clogl(long double complex z)
111 double cabs(double complex z)
112 float cabsf(float complex z)
113 long double cabsl(long double complex z)
114 double complex cpow(double complex x, double complex y)
115 float complex cpowf(float complex x, float complex y)
116 long double complex cpowl(long double complex x, long double complex y)
117 double complex csqrt(double complex z)
118 float complex csqrtf(float complex z)
119 long double complex csqrtl(long double complex z)
120 double carg(double complex z)
121 float cargf(float complex z)
122 long double cargl(long double complex z)
123 double cimag(double complex z)
124 float cimagf(float complex z)
125 long double cimagl(long double complex z)
126 double complex conj(double complex z)
127 float complex conjf(float complex z)
128 long double complex conjl(long double complex z)
129 double complex cproj(double complex z)
130 float complex cprojf(float complex z)
131 long double complex cprojl(long double complex z)
132 double creal(double complex z)
133 float crealf(float complex z)
134 long double creall(long double complex z)
136 # * ctype.h: functions are declared as static inline functions
139 int __stdc_ioerr2errno(int ioerr)
143 int feclearexcept(int excepts)
144 .function _feclearexcept
145 int fegetexceptflag(fexcept_t *flagp, int excepts)
146 .function _fegetexceptflag
147 int feraiseexcept(int excepts)
148 .function _feraiseexcept
149 int fesetexceptflag(const fexcept_t *flagp, int excepts)
150 .function _fesetexceptflag
151 int fetestexcept(int excepts)
152 .function _fetestexcept
154 .function _fegetround
155 int fesetround(int round)
156 .function _fesetround
157 int fegetenv(fenv_t *envp)
159 int feholdexcept(fenv_t *envp)
160 .function _feholdexcept
161 int fesetenv(const fenv_t *envp)
163 int feupdateenv(const fenv_t *envp)
164 .function _feupdateenv
166 # * float.h: no functions in float.h
169 intmax_t imaxabs(intmax_t j)
170 imaxdiv_t imaxdiv(intmax_t numer, intmax_t denom)
171 intmax_t strtoimax(const char * restrict nptr, char ** restrict endptr, int base)
172 uintmax_t strtoumax(const char * restrict nptr, char ** restrict endptr, int base)
174 #intmax_t wcstoimax(const wchar_t * restrict nptr, wchar_t ** restrict endptr, int base)
175 #uintmax_t wcstoumax(const wchar_t * restrict nptr, wchar_t ** restrict endptr, int base)
177 # * iso646.h: no functions in iso646.h
179 # * limits.h: no functions in limits.h
182 char *setlocale(int category, const char *locale)
183 struct lconv *localeconv(void)
186 int __fpclassifyd(double)
187 int __fpclassifyf(float)
188 int __fpclassifyl(long double)
189 int __isfinite(double)
192 int __isfinitef(float)
195 int __isfinitel(long double)
204 int __isinfl(long double)
213 int __isnanl(long double)
216 int __isnormal(double)
218 int __isnormalf(float)
220 int __isnormall(long double)
222 int __signbit(double)
224 int __signbitf(float)
226 int __signbitl(long double)
231 double atan2(double, double)
244 double frexp(double, int *)
246 double ldexp(double, int)
252 double modf(double, double *)
253 double scalbn(double, int)
254 double scalbln(double, long)
257 double hypot(double, double)
258 double pow(double, double)
262 double lgamma(double)
264 double tgamma(double)
267 double nearbyint(double)
270 long long llrint(double)
273 long long llround(double)
275 double fmod(double, double)
276 double remainder(double, double)
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)
290 float atan2f(float, float)
303 float frexpf(float, int *)
305 float ldexpf(float, int)
311 float modff(float, float *)
312 float scalbnf(float, int)
313 float scalblnf(float, long)
316 float hypotf(float, float)
317 float powf(float, float)
326 float nearbyintf(float)
329 long long llrintf(float)
332 long long llroundf(float)
334 float fmodf(float, float)
335 float remainderf(float, float)
337 float remquof(float, float, int *)
338 float copysignf(float, float)
339 float nanf(const char *tagp)
340 float nextafterf(float, float)
341 float nexttowardf(float, long double)
342 float fdimf(float, float)
343 float fmaxf(float, float)
344 float fminf(float, float)
345 float fmaf(float, float, float)
346 long double acosl(long double)
347 long double asinl(long double)
348 long double atanl(long double)
349 long double atan2l(long double, long double)
350 long double cosl(long double)
351 long double sinl(long double)
352 long double tanl(long double)
353 long double acoshl(long double)
354 long double asinhl(long double)
355 long double atanhl(long double)
356 long double coshl(long double)
357 long double sinhl(long double)
358 long double tanhl(long double)
359 long double expl(long double)
360 long double exp2l(long double)
361 long double expm1l(long double)
362 long double frexpl(long double value, int *)
363 int ilogbl(long double)
364 long double ldexpl(long double, int)
365 long double logl(long double)
366 long double log10l(long double)
367 long double log1pl(long double)
368 long double log2l(long double)
369 long double logbl(long double)
370 long double modfl(long double, long double *)
371 long double scalbnl(long double, int)
372 long double scalblnl(long double, long)
373 long double cbrtl(long double)
374 long double fabsl(long double)
375 long double hypotl(long double, long double)
376 long double powl(long double, long double)
377 long double sqrtl(long double)
378 long double erfl(long double)
379 long double erfcl(long double)
380 long double lgammal(long double)
382 long double tgammal(long double)
383 long double ceill(long double)
384 long double floorl(long double)
385 long double nearbyintl(long double)
386 long double rintl(long double)
387 long lrintl(long double)
388 long long llrintl(long double)
389 long double roundl(long double)
390 long lroundl(long double)
391 long long llroundl(long double)
392 long double truncl(long double)
393 long double fmodl(long double, long double)
394 long double remainderl(long double, long double)
396 long double remquol(long double, long double, int *)
397 long double copysignl(long double, long double)
398 long double nanl(const char *tagp)
399 long double nextafterl(long double, long double)
400 long double nexttowardl(long double, long double)
401 long double fdiml(long double, long double)
402 long double fmaxl(long double, long double)
403 long double fminl(long double, long double)
404 long double fmal(long double, long double, long double)
407 int setjmp(jmp_buf env)
409 void longjmp(jmp_buf env, int val)
413 __sighandler_t *signal(int, __sighandler_t *)
416 # * stdarg.h: implementation has to be provided by the compiler.
418 # * stdbool.h: no functions in stdbool.h
420 # * stddef.h: no functions in stddef.h
422 # * stdint.h: no functions in stdint.h
424 # * stdio.h: only string based functions are implemented, the rest in stdcio.library
425 int snprintf(char * restrict s, size_t n, const char * restrict format, ...)
426 int sprintf(char * restrict s, const char * restrict format, ...)
427 int sscanf(const char * restrict s, const char * restrict format, ...)
428 int vsnprintf(char * restrict s, size_t n, const char * restrict format, va_list arg)
429 int vsprintf(char * restrict s, const char * restrict format, va_list arg)
430 int vsscanf(const char * restrict s, const char * restrict format, va_list arg)
432 # * stdlib.h: getenv() and system() implemented in stdcio.library
433 double atof(const char *nptr)
434 int atoi(const char *nptr)
435 long int atol(const char *nptr)
436 long long int atoll(const char *nptr)
437 double strtod(const char * restrict nptr, char ** restrict endptr)
438 float strtof(const char * restrict nptr, char ** restrict endptr)
439 long double strtold(const char * restrict nptr, char ** restrict endptr)
440 long int strtol(const char * restrict nptr, char ** restrict endptr, int base)
441 long long int strtoll(const char * restrict nptr, char ** restrict endptr, int base)
442 unsigned long int strtoul(const char * restrict nptr, char ** restrict endptr, int base)
443 unsigned long long int strtoull(const char * restrict nptr, char ** restrict endptr, int base)
445 void srand(unsigned int seed)
446 void *calloc(size_t count, size_t size)
447 void free(void *memory)
448 void *malloc(size_t size)
449 void *malloc_align(size_t size, size_t alignment)
450 void *realloc(void *oldmem, size_t newsize)
451 void *realloc_nocopy(void *oldmem, size_t newsize)
453 int atexit(void (*func)(void))
454 int on_exit(void (*func)(int, void *), void *)
458 void *bsearch(const void * key, const void * base, size_t count, size_t size, int (*comparefunction)(const void *, const void *))
459 void qsort(void * array, size_t count, size_t elementsize, int (*comparefunction)(const void * element1, const void * element2))
462 long long llabs(long long j)
463 div_t div(int numer, int denom)
464 ldiv_t ldiv(long int numer, long int denom)
465 lldiv_t lldiv(long long int numer, long long int denom)
466 int mblen(const char *s, size_t n)
468 #int mbtowc(wchar_t * restrict pwc, const char * restrict s, size_t n)
469 #int wctomb(char *s, wchar_t wc)
470 #size_t mbstowcs(wchar_t * restrict pwcs, const char * restrict s, size_t n)
471 #size_t wcstombs(char * restrict s, const wchar_t * restrict pwcs, size_t n)
473 # * string.h: memcpy is the same as memmove
474 void *memmove (void * dest, const void * src, size_t n)
477 char *strcpy (char * restrict dest, const char * restrict src)
479 char *strncpy (char * restrict dest, const char * restrict src, size_t n)
481 char *strcat (char * restrict dest, const char * restrict src)
483 char *strncat (char * restrict dest, const char * restrict src, size_t n)
485 int memcmp (const void * s1, const void * s2, size_t n)
487 int strcmp (const char * s1, const char * s2)
489 int strcoll (const char *s1, const char *s2)
491 int strncmp (const char * s1, const char * s2, size_t n)
493 size_t strxfrm (char * restrict s1, const char * restrict s2, size_t n)
495 void *memchr (const void * dest, int c, size_t n)
497 char *strchr (const char * s, int c)
500 size_t strcspn (const char *s1, const char *s2)
502 char *strpbrk (const char * s1, const char * s2)
504 char *strrchr (const char * s, int c)
507 size_t strspn (const char * s1, const char * s2)
509 char *strstr (const char * buf, const char * str)c
511 char *strtok (char * str, const char * sep)v
512 void *memset (void * dest, int c, size_t n)
514 char *__stdc_strerror (int n)
516 size_t strlen (const char * str)
519 # * tgmath.h: not implemented in stdc.library
523 double difftime(time_t, time_t)
525 time_t mktime(struct tm *)
527 time_t time(time_t *)
528 char *asctime(const struct tm *)
529 char *ctime(const time_t *)
530 struct tm *gmtime(const time_t *)
531 struct tm *localtime(const time_t *)
532 size_t strftime(char *, size_t, const char *, const struct tm *)
534 # * wchar.h: not implemented in stdc.library
536 # * wctype.h: not implemented in stdc.library
539 # <math.h>: Mostly BSD functions
542 double jn(int, double)
543 double scalb(double, double)
546 double yn(int, double)
547 double gamma_r(double, int *)
548 double lgamma_r(double, int *)
549 void sincos(double, double *, double *)
550 double significand(double)
553 float jnf(int, float)
554 float scalbf(float, float)
557 float ynf(int, float)
558 float gammaf_r(float, int *)
559 float lgammaf_r(float, int *)
560 void sincosf(float, float *, float *)
561 float significandf(float)
563 #long double j0l(long double)
564 #long double j1l(long double)
565 #long double jnl(int, long double)
566 #long double scalbl(long double, long double)
567 #long double y0l(long double)
568 #long double y1l(long double)
569 #long double ynl(int, long double)
570 #long double gammal_r(long double, int *)
571 long double lgammal_r(long double, int *)
572 void sincosl(long double, long double *, long double *)
574 #long double significandl(long double)
576 # * stdio.h: AROS specific support functions based on libnix
577 int __vcformat(void * data, int (*outc)(int, void *), const char * format, va_list args)
578 int __vcscan(void * data, int (*getc)(void *), int (*ungetc)(int, void *), const char * format, va_list args)
580 # * string.h: POSIX, BSD/UNIX, SAS/C
582 #void *memccpy(void *restrict, const void *restrict, int, size_t)
583 char *stpcpy(char *restrict, const char *restrict)
585 #char *stpncpy(char *restrict, const char *restrict, size_t)
586 #int strcoll_l(const char *, const char *, locale_t)
587 char *strdup(const char *)
589 #char *strerror_l(int, locale_t)
590 #int strerror_r(int, char *, size_t)
591 char *strndup(const char *, size_t)
592 size_t strnlen (const char *, size_t)
595 #char *strsignal(int)
596 char *strtok_r(char *restrict, const char *restrict, char **restrict)
598 #size_t strxfrm_l(char *restrict, const char *restrict, size_t, locale_t)
599 size_t strlcpy(char *dst, const char *src, size_t size)
601 size_t strlcat(char *dst, const char *src, size_t size)
603 char *strsep(char **, const char *)
608 char *strrev(char * s)
610 int stch_l(const char * in, long * lvalue)
612 int stcd_l(const char * in, long * lvalue)
614 int stco_l(const char * in, long * lvalue)
616 int stcl_d(char * out, long lvalue)
618 int stcl_h(char * out, long lvalue)
620 int stcl_o(char * out, long lvalue)
622 int stcu_d(char * out, unsigned uivalue)
623 size_t stccpy(char *str1_ptr, const char *str2_ptr, size_t max)
625 char *stpsym(char *str_ptr, char *dest_ptr, int dest_size)
627 char *stpblk( const char * str )
629 # * strings.h: POSIX, BSD
630 int strcasecmp(const char * s1, const char * s2)
632 #int strcasecmp_l(const char *, const char *, locale_t)
633 int strncasecmp(const char *, const char *, size_t)
635 #int strncasecmp_l(const char *, const char *, size_t, locale_t)
637 # * time.h: reentrant versions of some C99 functions (POSIX)
638 char *asctime_r(const struct tm *, char *)
639 char *ctime_r(const time_t *, char *)
640 struct tm *gmtime_r(const time_t *, struct tm *)
641 struct tm *localtime_r(const time_t *, struct tm *)