123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312 |
- #ifndef _STDLIB
- #define _STDLIB
- #pragma diag_push
- #pragma CHECK_MISRA("-6.3")
- #pragma CHECK_MISRA("-8.5")
- #pragma CHECK_MISRA("-19.1")
- #pragma CHECK_MISRA("-19.7")
- #pragma CHECK_MISRA("-20.1")
- #pragma CHECK_MISRA("-20.2")
- #ifndef __ATTRIBUTE
- #if __TI_STRICT_ANSI_MODE__
- #define __ATTRIBUTE(attr)
- #else
- #define __ATTRIBUTE(attr) __attribute__(attr)
- #endif
- #endif
- #ifdef __cplusplus
- extern "C" namespace std {
- #endif
- #pragma diag_push
- #pragma CHECK_MISRA("-5.7")
- typedef struct { int quot, rem; } div_t;
- typedef struct { long quot, rem; } ldiv_t;
- #define _LLONG_AVAILABLE 1
- typedef struct { long long quot, rem; } lldiv_t;
- #pragma diag_pop
- #define MB_CUR_MAX 1
- #ifndef NULL
- #define NULL 0
- #endif
- #ifndef _SIZE_T
- #define _SIZE_T
- typedef __SIZE_T_TYPE__ size_t;
- #endif
- #ifndef __cplusplus
- #ifndef _WCHAR_T
- #define _WCHAR_T
- typedef __WCHAR_T_TYPE__ wchar_t;
- #endif
- #endif
- #define EXIT_FAILURE 1
- #define EXIT_SUCCESS 0
- #define RAND_MAX 32767
- #include <linkage.h>
- #pragma diag_push
- #pragma CHECK_MISRA("-16.4")
- _CODE_ACCESS int abs(int _val);
- _CODE_ACCESS long labs(long _val);
- #if defined(_LLONG_AVAILABLE)
- _CODE_ACCESS long long llabs(long long _val);
- #endif
- #pragma diag_pop
- _CODE_ACCESS int atoi(const char *_st);
- _CODE_ACCESS long atol(const char *_st);
- #if defined(_LLONG_AVAILABLE)
- _CODE_ACCESS long long atoll(const char *_st);
- #endif
- _CODE_ACCESS int ltoa(long val, char *buffer);
- _IDECL double atof(const char *_st);
- _CODE_ACCESS long strtol(const char * __restrict _st,
- char ** __restrict _endptr, int _base);
- _CODE_ACCESS unsigned long strtoul(const char * __restrict _st,
- char ** __restrict _endptr, int _base);
- #if defined(_LLONG_AVAILABLE)
- _CODE_ACCESS long long strtoll(const char * __restrict _st,
- char ** __restrict _endptr, int _base);
- _CODE_ACCESS unsigned long long strtoull(const char * __restrict _st,
- char ** __restrict _endptr,
- int _base);
- #endif
- _CODE_ACCESS float strtof(const char * __restrict _st,
- char ** __restrict _endptr);
- _CODE_ACCESS double strtod(const char * __restrict _st,
- char ** __restrict _endptr);
- _CODE_ACCESS long double strtold(const char * __restrict _st,
- char ** __restrict _endptr);
-
- _CODE_ACCESS int rand(void);
- _CODE_ACCESS void srand(unsigned _seed);
-
- _CODE_ACCESS void *calloc(size_t _num, size_t _size)
- __ATTRIBUTE((malloc));
- _CODE_ACCESS void *malloc(size_t _size)
- __ATTRIBUTE((malloc));
- _CODE_ACCESS void *realloc(void *_ptr, size_t _size)
- __ATTRIBUTE((malloc));
- _CODE_ACCESS void free(void *_ptr);
- _CODE_ACCESS void *memalign(size_t _aln, size_t _size)
- __ATTRIBUTE((malloc));
-
- _CODE_ACCESS void abort(void);
- typedef void (*__TI_atexit_fn)(void);
- _CODE_ACCESS int atexit(__TI_atexit_fn _func);
- typedef int (*__TI_compar_fn)(const void *_a,const void *_b);
- _CODE_ACCESS void *bsearch(const void *_key, const void *_base,
- size_t _nmemb, size_t _size,
- __TI_compar_fn compar);
- _CODE_ACCESS void qsort(void *_base, size_t _nmemb, size_t _size,
- __TI_compar_fn compar);
- _CODE_ACCESS void exit(int _status);
-
- _CODE_ACCESS div_t div(int _numer, int _denom);
- _CODE_ACCESS ldiv_t ldiv(long _numer, long _denom);
- #if defined(_LLONG_AVAILABLE)
- _CODE_ACCESS lldiv_t lldiv(long long _numer, long long _denom);
- #endif
- _CODE_ACCESS char *getenv(const char *_string);
- _CODE_ACCESS int system(const char *_name);
- _CODE_ACCESS int mblen(const char *_s, size_t _n);
- _CODE_ACCESS size_t mbstowcs(wchar_t * __restrict _dest,
- const char * __restrict _src, size_t _n);
- _CODE_ACCESS int mbtowc(wchar_t * __restrict _dest,
- const char * __restrict _src, size_t _n);
- _CODE_ACCESS size_t wcstombs(char * __restrict _dest,
- const wchar_t * __restrict _src, size_t _n);
- _CODE_ACCESS int wctomb(char *_s, wchar_t _wc);
- #ifdef __cplusplus
- }
- #endif
- #ifdef _INLINE
- #ifdef __cplusplus
- namespace std {
- #endif
- static __inline double atof(const char *_st)
- {
- return strtod(_st, (char **)0);
- }
- #ifdef __cplusplus
- }
- #endif
- #endif
- #ifdef __cplusplus
- #if __TI_STRICT_ANSI_MODE__
- namespace std {
- _CODE_ACCESS inline int atexit(void (*func)(void))
- {
- return atexit((__TI_atexit_fn)func);
- }
- _CODE_ACCESS inline void *bsearch(const void *_key, const void *_base,
- size_t _nmemb, size_t _size,
- int (*compar)(const void *,const void *))
- {
- return bsearch(_key, _base, _nmemb, _size, (__TI_compar_fn)compar);
- }
- _CODE_ACCESS inline void qsort(void *_base, size_t _nmemb, size_t _size,
- int (*_compar)(const void *, const void *))
- {
- return qsort(_base, _nmemb, _size, (__TI_compar_fn)_compar);
- }
- }
- #endif
- #endif
- #pragma diag_pop
- #endif
- #pragma diag_push
- #pragma CHECK_MISRA("-19.15")
- #if defined(__cplusplus) && !defined(_CPP_STYLE_HEADER)
- using std::div_t;
- using std::ldiv_t;
- #if defined(_LLONG_AVAILABLE)
- using std::lldiv_t;
- #endif
- using std::size_t;
- using std::abs;
- using std::labs;
- using std::atoi;
- using std::atol;
- #if defined(_LLONG_AVAILABLE)
- using std::llabs;
- using std::atoll;
- #endif
- using std::atof;
- using std::strtol;
- using std::strtoul;
- #if defined(_LLONG_AVAILABLE)
- using std::strtoll;
- using std::strtoull;
- #endif
- using std::strtof;
- using std::strtod;
- using std::strtold;
- using std::rand;
- using std::srand;
- using std::calloc;
- using std::malloc;
- using std::realloc;
- using std::free;
- using std::memalign;
- using std::abort;
- using std::atexit;
- using std::bsearch;
- using std::qsort;
- using std::exit;
- using std::div;
- using std::ldiv;
- #if defined(_LLONG_AVAILABLE)
- using std::lldiv;
- #endif
- using std::getenv;
- using std::system;
- using std::mblen;
- using std::mbtowc;
- using std::wctomb;
- using std::mbstowcs;
- using std::wcstombs;
- #endif
- #pragma diag_pop
- #pragma diag_push
- #pragma CHECK_MISRA("-19.1")
- #pragma CHECK_MISRA("-19.15")
- #pragma diag_pop
|