对比新文件 |
| | |
| | | /* |
| | | * Copyright (c) 2019-2023 Beijing Hanwei Innovation Technology Ltd. Co. and |
| | | * its subsidiaries and affiliates (collectly called MKSEMI). |
| | | * |
| | | * All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * 1. Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * |
| | | * 2. Redistributions in binary form, except as embedded into an MKSEMI |
| | | * integrated circuit in a product or a software update for such product, |
| | | * must reproduce the above copyright notice, this list of conditions and |
| | | * the following disclaimer in the documentation and/or other materials |
| | | * provided with the distribution. |
| | | * |
| | | * 3. Neither the name of MKSEMI nor the names of its contributors may be used |
| | | * to endorse or promote products derived from this software without |
| | | * specific prior written permission. |
| | | * |
| | | * 4. This software, with or without modification, must only be used with a |
| | | * MKSEMI integrated circuit. |
| | | * |
| | | * 5. Any software provided in binary form under this license must not be |
| | | * reverse engineered, decompiled, modified and/or disassembled. |
| | | * |
| | | * THIS SOFTWARE IS PROVIDED BY MKSEMI "AS IS" AND ANY EXPRESS OR IMPLIED |
| | | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
| | | * MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| | | * DISCLAIMED. IN NO EVENT SHALL MKSEMI OR CONTRIBUTORS BE LIABLE FOR ANY |
| | | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
| | | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
| | | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
| | | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| | | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
| | | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| | | */ |
| | | |
| | | #ifndef LIBC_ROM_H__ |
| | | #define LIBC_ROM_H__ |
| | | #include "stdint.h" |
| | | #include "stdbool.h" |
| | | #include "stdarg.h" |
| | | |
| | | #include "string.h" |
| | | #include "stdio.h" |
| | | #include "stdlib.h" |
| | | #include "math.h" |
| | | |
| | | #ifndef STD_LIBC |
| | | |
| | | #ifdef __cplusplus |
| | | extern "C" { |
| | | #endif |
| | | |
| | | typedef void *(*__MEMCPY)(void *, const void *, size_t); |
| | | typedef void *(*__MEMMOVE)(void *, const void *, size_t); |
| | | typedef char *(*__STRCPY)(char *, const char *); |
| | | typedef char *(*__STRNCPY)(char *, const char *, size_t); |
| | | typedef char *(*__STRCAT)(char *, const char *); |
| | | typedef char *(*__STRNCAT)(char *, const char *, size_t); |
| | | typedef int (*__MEMCMP)(const void *, const void *, size_t); |
| | | typedef int (*__STRCMP)(const char *, const char *); |
| | | typedef int (*__STRNCMP)(const char *, const char *, size_t); |
| | | typedef int (*__STRCASECMP)(const char *, const char *); |
| | | typedef int (*__STRNCASECMP)(const char *, const char *, size_t); |
| | | typedef int (*__STRCOLL)(const char *, const char *); |
| | | typedef size_t (*__STRXFRM)(char *, const char *, size_t); |
| | | typedef void *(*__MEMCHR)(const void *, int, size_t); |
| | | typedef char *(*__STRCHR)(const char *, int); |
| | | typedef size_t (*__STRCSPN)(const char *, const char *); |
| | | typedef char *(*__STRPBRK)(const char *, const char *); |
| | | typedef char *(*__STRRCHR)(const char *, int); |
| | | typedef size_t (*__STRSPN)(const char *, const char *); |
| | | typedef char *(*__STRSTR)(const char *, const char *); |
| | | typedef char *(*__STRTOK)(char *, const char *); |
| | | typedef char *(*__STRTOK_R)(char *, const char *, char **); |
| | | typedef void *(*__MEMSET)(void *, int, size_t); |
| | | typedef char *(*__STRERROR)(int); |
| | | typedef size_t (*__STRLEN)(const char *); |
| | | typedef size_t (*__STRLCPY)(char *, const char *, size_t); |
| | | typedef size_t (*__STRLCAT)(char *, const char *, size_t); |
| | | |
| | | typedef int (*__PRINTF)(const char *, ...); |
| | | typedef int (*__SCANF)(const char *, ...); |
| | | typedef int (*__SPRINTF)(char *buf, const char *fmt, ...); |
| | | typedef int (*__SNPRINTF)(char *buf, size_t len, const char *fmt, ...); |
| | | typedef int (*__SSCANF)(const char *buf, const char *fmt, ...); |
| | | typedef int (*__VSPRINTF)(char *buf, const char *fmt, va_list ap); |
| | | typedef int (*__VSNPRINTF)(char *buf, size_t size, const char *fmt, va_list ap); |
| | | typedef int (*__VSSCANF)(const char *fp, const char *fmt0, va_list ap); |
| | | |
| | | typedef double (*__ATOF)(const char *); |
| | | typedef int (*__ATOI)(const char *); |
| | | typedef long int (*__ATOL)(const char *); |
| | | typedef long long (*__ATOLL)(const char *); |
| | | typedef double (*__STRTOD)(const char *, char **); |
| | | typedef float (*__STRTOF)(const char *, char **); |
| | | typedef long double (*__STRTOLD)(const char *, char **); |
| | | typedef long int (*__STRTOL)(const char *, char **, int); |
| | | typedef unsigned long int (*__STRTOUL)(const char *, char **, int); |
| | | typedef long long (*__STRTOLL)(const char *, char **, int); |
| | | typedef unsigned long long (*__STRTOULL)(const char *, char **, int); |
| | | typedef int (*__RAND)(void); |
| | | typedef void (*__SRAND)(unsigned int); |
| | | typedef void *(*__CALLOC)(size_t, size_t); |
| | | typedef void (*__FREE)(void *); |
| | | typedef void *(*__MALLOC)(size_t); |
| | | typedef void *(*__BSEARCH)(const void *, const void *, size_t, size_t, int (*)(const void *, const void *)); |
| | | typedef void (*__QSORT)(void *, size_t, size_t, int (*)(const void *, const void *)); |
| | | typedef int (*__ABS)(int); |
| | | typedef div_t (*__DIV)(int, int); |
| | | typedef long int (*__LABS)(long int); |
| | | typedef ldiv_t (*__LDIV)(long int, long int); |
| | | typedef long long (*__LLABS)(long long); |
| | | typedef lldiv_t (*__LLDIV)(long long, long long); |
| | | typedef int (*__MBLEN)(const char *, size_t); |
| | | typedef int (*__MBTOWC)(wchar_t *, const char *, size_t); |
| | | typedef int (*__WCTOMB)(char *, wchar_t); |
| | | typedef size_t (*__MBSTOWCS)(wchar_t *, const char *, size_t); |
| | | typedef size_t (*__WCSTOMBS)(char *, const wchar_t *, size_t); |
| | | |
| | | typedef double (*__ACOS)(double); |
| | | typedef double (*__ASIN)(double); |
| | | typedef double (*__ATAN)(double); |
| | | typedef double (*__ATAN2)(double, double); |
| | | typedef double (*__COS)(double); |
| | | typedef double (*__SIN)(double); |
| | | typedef double (*__TAN)(double); |
| | | typedef double (*__COSH)(double); |
| | | typedef double (*__SINH)(double); |
| | | typedef double (*__TANH)(double); |
| | | typedef double (*__EXP)(double); |
| | | typedef double (*__FREXP)(double, int *); |
| | | typedef double (*__LDEXP)(double, int); |
| | | typedef double (*__LOG)(double); |
| | | typedef double (*__LOG10)(double); |
| | | typedef double (*__MODF)(double, double *); |
| | | typedef double (*__POW)(double, double); |
| | | typedef double (*__SQRT)(double); |
| | | typedef double (*__CEIL)(double); |
| | | typedef double (*__FABS)(double); |
| | | typedef double (*__FLOOR)(double); |
| | | typedef double (*__FMOD)(double, double); |
| | | typedef double (*__ACOSH)(double); |
| | | typedef double (*__ASINH)(double); |
| | | typedef double (*__ATANH)(double); |
| | | typedef double (*__CBRT)(double); |
| | | typedef double (*__ERF)(double); |
| | | typedef double (*__ERFC)(double); |
| | | typedef double (*__EXPM1)(double); |
| | | typedef double (*__HYPOT)(double, double); |
| | | typedef int (*__ILOGB)(double); |
| | | typedef int (*__ILOGBF)(float); |
| | | typedef int (*__ILOGBL)(long double); |
| | | typedef double (*__LGAMMA)(double); |
| | | typedef double (*__LOG1P)(double); |
| | | typedef double (*__LOGB)(double); |
| | | typedef float (*__LOGBF)(float); |
| | | typedef long double (*__LOGBL)(long double); |
| | | typedef double (*__NEXTAFTER)(double, double); |
| | | typedef float (*__NEXTAFTERF)(float, float); |
| | | typedef long double (*__NEXTAFTERL)(long double, long double); |
| | | typedef double (*__NEXTTOWARD)(double, long double); |
| | | typedef float (*__NEXTTOWARDF)(float, long double); |
| | | typedef long double (*__NEXTTOWARDL)(long double, long double); |
| | | typedef double (*__REMAINDER)(double, double); |
| | | typedef double (*__RINT)(double); |
| | | typedef double (*__SCALBLN)(double, long int); |
| | | typedef float (*__SCALBLNF)(float, long int); |
| | | typedef long double (*__SCALBLNL)(long double, long int); |
| | | // typedef double (*__SCALBN)(double, int); |
| | | // typedef float (*__SCALBNF)(float, int); |
| | | typedef long double (*__SCALBNL)(long double, int); |
| | | typedef float (*__FABSF)(float); |
| | | typedef float (*__SINF)(float); |
| | | typedef float (*__COSF)(float); |
| | | typedef float (*__TANF)(float); |
| | | typedef float (*__ACOSF)(float); |
| | | typedef float (*__ASINF)(float); |
| | | typedef float (*__ATANF)(float); |
| | | typedef float (*__ATAN2F)(float, float); |
| | | typedef float (*__SINHF)(float); |
| | | typedef float (*__COSHF)(float); |
| | | typedef float (*__TANHF)(float); |
| | | typedef float (*__EXPF)(float); |
| | | typedef float (*__LOGF)(float); |
| | | typedef float (*__LOG10F)(float); |
| | | typedef float (*__POWF)(float, float); |
| | | typedef float (*__SQRTF)(float); |
| | | typedef float (*__LDEXPF)(float, int); |
| | | typedef float (*__FREXPF)(float, int *); |
| | | typedef float (*__CEILF)(float); |
| | | typedef float (*__FLOORF)(float); |
| | | typedef float (*__FMODF)(float, float); |
| | | typedef float (*__MODFF)(float, float *); |
| | | |
| | | /* C99 long double versions of functions. */ |
| | | typedef long double (*__ACOSL)(long double); |
| | | typedef long double (*__ASINL)(long double); |
| | | typedef long double (*__ATANL)(long double); |
| | | typedef long double (*__ATAN2L)(long double, long double); |
| | | typedef long double (*__CEILL)(long double); |
| | | typedef long double (*__COSL)(long double); |
| | | typedef long double (*__COSHL)(long double); |
| | | typedef long double (*__EXPL)(long double); |
| | | typedef long double (*__FABSL)(long double); |
| | | typedef long double (*__FLOORL)(long double); |
| | | typedef long double (*__FMODL)(long double, long double); |
| | | typedef long double (*__FREXPL)(long double, int *); |
| | | typedef long double (*__LDEXPL)(long double, int); |
| | | typedef long double (*__LOGL)(long double); |
| | | typedef long double (*__LOG10L)(long double); |
| | | typedef long double (*__MODFL)(long double, long double *); |
| | | typedef long double (*__POWL)(long double, long double); |
| | | typedef long double (*__SINL)(long double); |
| | | typedef long double (*__SINHL)(long double); |
| | | typedef long double (*__SQRTL)(long double); |
| | | typedef long double (*__TANL)(long double); |
| | | typedef long double (*__TANHL)(long double); |
| | | |
| | | typedef float (*__ACOSHF)(float); |
| | | typedef long double (*__ACOSHL)(long double); |
| | | typedef float (*__ASINHF)(float); |
| | | typedef long double (*__ASINHL)(long double); |
| | | typedef float (*__ATANHF)(float); |
| | | typedef long double (*__ATANHL)(long double); |
| | | typedef long double (*__COPYSIGNL)(long double, long double); |
| | | typedef float (*__CBRTF)(float); |
| | | typedef long double (*__CBRTL)(long double); |
| | | typedef float (*__ERFF)(float); |
| | | typedef long double (*__ERFL)(long double); |
| | | typedef float (*__ERFCF)(float); |
| | | typedef long double (*__ERFCL)(long double); |
| | | typedef float (*__EXPM1F)(float); |
| | | typedef long double (*__EXPM1L)(long double); |
| | | typedef float (*__LOG1PF)(float); |
| | | typedef long double (*__LOG1PL)(long double); |
| | | typedef float (*__HYPOTF)(float, float); |
| | | typedef long double (*__HYPOTL)(long double, long double); |
| | | typedef float (*__LGAMMAF)(float); |
| | | typedef long double (*__LGAMMAL)(long double); |
| | | typedef float (*__REMAINDERF)(float, float); |
| | | typedef long double (*__REMAINDERL)(long double, long double); |
| | | typedef float (*__RINTF)(float); |
| | | typedef long double (*__RINTL)(long double); |
| | | |
| | | typedef double (*__EXP2)(double); /* * 2.^x. */ |
| | | typedef float (*__EXP2F)(float); |
| | | typedef long double (*__EXP2L)(long double); |
| | | typedef double (*__FDIM)(double, double); |
| | | typedef float (*__FDIMF)(float, float); |
| | | typedef long double (*__FDIML)(long double, long double); |
| | | |
| | | typedef double (*__FMA)(double, double, double); |
| | | typedef float (*__FMAF)(float, float, float); |
| | | |
| | | typedef double (*__FMAX)(double, double); |
| | | typedef float (*__FMAXF)(float, float); |
| | | typedef long double (*__FMAXL)(long double, long double); |
| | | typedef double (*__FMIN)(double, double); |
| | | typedef float (*__FMINF)(float, float); |
| | | typedef long double (*__FMINL)(long double, long double); |
| | | typedef double (*__LOG2)(double); /* * log base 2 of x. */ |
| | | typedef float (*__LOG2F)(float); |
| | | typedef long double (*__LOG2L)(long double); |
| | | typedef long (*__LRINT)(double); |
| | | typedef long (*__LRINTF)(float); |
| | | |
| | | typedef long long (*__LLRINT)(double); |
| | | typedef long long (*__LLRINTF)(float); |
| | | |
| | | typedef long (*__LROUND)(double); |
| | | typedef long (*__LROUNDF)(float); |
| | | |
| | | typedef long long (*__LLROUND)(double); |
| | | typedef long long (*__LLROUNDF)(float); |
| | | |
| | | typedef double (*__NAN)(const char *); |
| | | typedef float (*__NANF)(const char *); |
| | | |
| | | typedef double (*__NEARBYINT)(double); |
| | | typedef float (*__NEARBYINTF)(float); |
| | | typedef long double (*__NEARBYINTL)(long double); |
| | | typedef double (*__REMQUO)(double, double, int *); |
| | | typedef float (*__REMQUOF)(float, float, int *); |
| | | |
| | | typedef double (*__ROUND)(double); |
| | | typedef float (*__ROUNDF)(float); |
| | | typedef long double (*__ROUNDL)(long double); |
| | | typedef double (*__TGAMMA)(double); /* * The gamma function of x. */ |
| | | typedef float (*__TGAMMAF)(float); |
| | | typedef long double (*__TGAMMAL)(long double); |
| | | typedef double (*__TRUNC)(double); |
| | | typedef float (*__TRUNCF)(float); |
| | | typedef long double (*__TRUNCL)(long double); |
| | | |
| | | struct LIBC_ROM_T |
| | | { |
| | | // string.h |
| | | __MEMCPY memcpy; |
| | | __MEMMOVE memmove; |
| | | __STRCPY strcpy; |
| | | __STRNCPY strncpy; |
| | | __STRCAT strcat; |
| | | __STRNCAT strncat; |
| | | __MEMCMP memcmp; |
| | | __STRCMP strcmp; |
| | | __STRNCMP strncmp; |
| | | __STRCASECMP strcasecmp; |
| | | __STRNCASECMP strncasecmp; |
| | | __STRCOLL strcoll; |
| | | __STRXFRM strxfrm; |
| | | __MEMCHR memchr; |
| | | __STRCHR strchr; |
| | | __STRCSPN strcspn; |
| | | __STRPBRK strpbrk; |
| | | __STRRCHR strrchr; |
| | | __STRSPN strspn; |
| | | __STRSTR strstr; |
| | | __STRTOK strtok; |
| | | //__STRTOK_R strtok_r; |
| | | __MEMSET memset; |
| | | __STRERROR strerror; |
| | | __STRLEN strlen; |
| | | __STRLCPY strlcpy; |
| | | __STRLCAT strlcat; |
| | | |
| | | // stdio.h |
| | | //__PRINTF printf; |
| | | //__SCANF scanf; |
| | | __SPRINTF sprintf; |
| | | __SNPRINTF snprintf; |
| | | __SSCANF sscanf; |
| | | __VSSCANF vsscanf; |
| | | __VSPRINTF vsprintf; |
| | | __VSNPRINTF vsnprintf; |
| | | |
| | | // stdlib.h |
| | | __ATOF atof; |
| | | __ATOI atoi; |
| | | __ATOL atol; |
| | | __ATOLL atoll; |
| | | __STRTOD strtod; |
| | | __STRTOF strtof; |
| | | __STRTOLD strtold; |
| | | |
| | | __STRTOL strtol; |
| | | __STRTOUL strtoul; |
| | | __STRTOLL strtoll; |
| | | __STRTOULL strtoull; |
| | | __RAND rand; |
| | | __SRAND srand; |
| | | |
| | | //__CALLOC calloc; |
| | | //__FREE free; |
| | | //__MALLOC malloc; |
| | | |
| | | __BSEARCH bsearch; |
| | | __QSORT qsort; |
| | | __ABS abs; |
| | | __DIV div; |
| | | __LABS labs; |
| | | __LDIV ldiv; |
| | | __LLABS llabs; |
| | | __LLDIV lldiv; |
| | | |
| | | //__MBLEN mblen; |
| | | //__MBTOWC mbtowc; |
| | | //__WCTOMB wctomb; |
| | | //__MBSTOWCS mbstowcs; |
| | | //__WCSTOMBS wcstombs; |
| | | |
| | | // math.h |
| | | |
| | | __ACOS acos; |
| | | __ASIN asin; |
| | | __ATAN2 atan2; |
| | | __ATAN atan; |
| | | __CEIL ceil; |
| | | __COS cos; |
| | | __COSH cosh; |
| | | __EXP exp; |
| | | __FABS fabs; |
| | | __FLOOR floor; |
| | | __FMOD fmod; |
| | | __FREXP frexp; |
| | | __LDEXP ldexp; |
| | | __LOG10 log10; |
| | | __LOG log; |
| | | __MODF modf; |
| | | __POW pow; |
| | | __SIN sin; |
| | | __SINH sinh; |
| | | __SQRT sqrt; |
| | | __TAN tan; |
| | | __TANH tanh; |
| | | /* C99 float and long double versions in already-C89-reserved namespace */ |
| | | __ACOSF acosf; |
| | | __ACOSL acosl; |
| | | __ASINF asinf; |
| | | __ASINL asinl; |
| | | __ATAN2F atan2f; |
| | | __ATAN2L atan2l; |
| | | __ATANF atanf; |
| | | __ATANL atanl; |
| | | __CEILF ceilf; |
| | | __CEILL ceill; |
| | | __COSF cosf; |
| | | __COSHF coshf; |
| | | __COSHL coshl; |
| | | __COSL cosl; |
| | | __EXPF expf; |
| | | __EXPL expl; |
| | | __FABSF fabsf; |
| | | __FABSL fabsl; |
| | | __FLOORF floorf; |
| | | __FLOORL floorl; |
| | | __FMODF fmodf; |
| | | __FMODL fmodl; |
| | | __FREXPF frexpf; |
| | | __FREXPL frexpl; |
| | | __LDEXPF ldexpf; |
| | | __LDEXPL ldexpl; |
| | | __LOG10F log10f; |
| | | __LOG10L log10l; |
| | | __LOGF logf; |
| | | __LOGL logl; |
| | | __MODFF modff; |
| | | __MODFL modfl; |
| | | __POWF powf; |
| | | __POWL powl; |
| | | __SINF sinf; |
| | | __SINHF sinhf; |
| | | __SINHL sinhl; |
| | | __SINL sinl; |
| | | __SQRTF sqrtf; |
| | | __SQRTL sqrtl; |
| | | __TANF tanf; |
| | | __TANHF tanhf; |
| | | __TANHL tanhl; |
| | | __TANL tanl; |
| | | __ACOSH acosh; |
| | | __ASINH asinh; |
| | | __ATANH atanh; |
| | | __CBRT cbrt; |
| | | |
| | | __ERF erf; |
| | | __ERFC erfc; |
| | | __EXPM1 expm1; |
| | | __HYPOT hypot; |
| | | //__ILOGB ilogb; |
| | | //__ILOGBF ilogbf; |
| | | //__ILOGBL ilogbl; |
| | | //__LGAMMA lgamma; |
| | | __LOG1P log1p; |
| | | //__LOGB logb; |
| | | //__LOGBF logbf; |
| | | //__LOGBL logbl; |
| | | //__NEXTAFTER nextafter; |
| | | //__NEXTAFTERF nextafterf; |
| | | //__NEXTAFTERL nextafterl; |
| | | //__NEXTTOWARD nexttoward; |
| | | //__NEXTTOWARDF nexttowardf; |
| | | //__NEXTTOWARDL nexttowardl; |
| | | __REMAINDER remainder; |
| | | __RINT rint; |
| | | __SCALBLN scalbln; |
| | | __SCALBLNF scalblnf; |
| | | __SCALBLNL scalblnl; |
| | | //__SCALBN scalbn; |
| | | //__SCALBNF scalbnf; |
| | | //__SCALBNL scalbnl; |
| | | |
| | | __ACOSHF acoshf; |
| | | __ACOSHL acoshl; |
| | | __ASINHF asinhf; |
| | | __ASINHL asinhl; |
| | | __ATANHF atanhf; |
| | | __ATANHL atanhl; |
| | | __COPYSIGNL copysignl; |
| | | __CBRTF cbrtf; |
| | | __CBRTL cbrtl; |
| | | __ERFF erff; |
| | | __ERFL erfl; |
| | | __ERFCF erfcf; |
| | | __ERFCL erfcl; |
| | | __EXPM1F expm1f; |
| | | __EXPM1L expm1l; |
| | | __LOG1PF log1pf; |
| | | __LOG1PL log1pl; |
| | | __HYPOTF hypotf; |
| | | __HYPOTL hypotl; |
| | | //__LGAMMAF lgammaf; |
| | | //__LGAMMAL lgammal; |
| | | __REMAINDERF remainderf; |
| | | __REMAINDERL remainderl; |
| | | __RINTF rintf; |
| | | __RINTL rintl; |
| | | |
| | | /* Functions new in C99. */ |
| | | __EXP2 exp2; |
| | | __EXP2F exp2f; |
| | | __EXP2L exp2l; |
| | | __FDIM fdim; |
| | | __FDIMF fdimf; |
| | | __FDIML fdiml; |
| | | __FMA fma; |
| | | __FMAF fmaf; |
| | | |
| | | __FMAX fmax; |
| | | __FMAXF fmaxf; |
| | | __FMAXL fmaxl; |
| | | __FMIN fmin; |
| | | __FMINF fminf; |
| | | __FMINL fminl; |
| | | __LOG2 log2; |
| | | __LOG2F log2f; |
| | | __LOG2L log2l; |
| | | __LRINT lrint; |
| | | __LRINTF lrintf; |
| | | __LLRINT llrint; |
| | | __LLRINTF llrintf; |
| | | __LROUND lround; |
| | | __LROUNDF lroundf; |
| | | __LLROUND llround; |
| | | __LLROUNDF llroundf; |
| | | __NAN nan; |
| | | __NANF nanf; |
| | | __NEARBYINT nearbyint; |
| | | __NEARBYINTF nearbyintf; |
| | | __NEARBYINTL nearbyintl; |
| | | __REMQUO remquo; |
| | | __REMQUOF remquof; |
| | | __ROUND round; |
| | | __ROUNDF roundf; |
| | | __ROUNDL roundl; |
| | | __TGAMMA tgamma; |
| | | __TGAMMAF tgammaf; |
| | | __TGAMMAL tgammal; |
| | | __TRUNC trunc; |
| | | __TRUNCF truncf; |
| | | __TRUNCL truncl; |
| | | }; |
| | | |
| | | void update_libc_rom_table(void); |
| | | |
| | | #ifdef __cplusplus |
| | | } |
| | | #endif |
| | | |
| | | #endif |
| | | |
| | | #endif /* LIBC_ROM_H__ */ |