17777dab0Sopenharmony_ci#ifndef _STDLIB_H 27777dab0Sopenharmony_ci#define _STDLIB_H 37777dab0Sopenharmony_ci 47777dab0Sopenharmony_ci#ifdef __cplusplus 57777dab0Sopenharmony_ciextern "C" { 67777dab0Sopenharmony_ci#endif 77777dab0Sopenharmony_ci 87777dab0Sopenharmony_ci#include <features.h> 97777dab0Sopenharmony_ci 107777dab0Sopenharmony_ci#ifdef __cplusplus 117777dab0Sopenharmony_ci#define NULL 0L 127777dab0Sopenharmony_ci#else 137777dab0Sopenharmony_ci#define NULL ((void*)0) 147777dab0Sopenharmony_ci#endif 157777dab0Sopenharmony_ci 167777dab0Sopenharmony_ci#define __NEED_size_t 177777dab0Sopenharmony_ci#define __NEED_wchar_t 187777dab0Sopenharmony_ci 197777dab0Sopenharmony_ci#include <bits/alltypes.h> 207777dab0Sopenharmony_ci 217777dab0Sopenharmony_ciint atoi (const char *); 227777dab0Sopenharmony_cilong atol (const char *); 237777dab0Sopenharmony_cilong long atoll (const char *); 247777dab0Sopenharmony_cidouble atof (const char *); 257777dab0Sopenharmony_ci 267777dab0Sopenharmony_cifloat strtof (const char *__restrict, char **__restrict); 277777dab0Sopenharmony_cidouble strtod (const char *__restrict, char **__restrict); 287777dab0Sopenharmony_cilong double strtold (const char *__restrict, char **__restrict); 297777dab0Sopenharmony_ci 307777dab0Sopenharmony_cilong strtol (const char *__restrict, char **__restrict, int); 317777dab0Sopenharmony_ciunsigned long strtoul (const char *__restrict, char **__restrict, int); 327777dab0Sopenharmony_cilong long strtoll (const char *__restrict, char **__restrict, int); 337777dab0Sopenharmony_ciunsigned long long strtoull (const char *__restrict, char **__restrict, int); 347777dab0Sopenharmony_ci 357777dab0Sopenharmony_ciint rand (void); 367777dab0Sopenharmony_civoid srand (unsigned); 377777dab0Sopenharmony_ci 387777dab0Sopenharmony_civoid *malloc (size_t); 397777dab0Sopenharmony_civoid *calloc (size_t, size_t); 407777dab0Sopenharmony_civoid *realloc (void *, size_t); 417777dab0Sopenharmony_civoid free (void *); 427777dab0Sopenharmony_civoid *aligned_alloc(size_t, size_t); 437777dab0Sopenharmony_ci 447777dab0Sopenharmony_ci_Noreturn void abort (void); 457777dab0Sopenharmony_ciint atexit (void (*) (void)); 467777dab0Sopenharmony_ci_Noreturn void exit (int); 477777dab0Sopenharmony_ci_Noreturn void _Exit (int); 487777dab0Sopenharmony_ciint at_quick_exit (void (*) (void)); 497777dab0Sopenharmony_ci_Noreturn void quick_exit (int); 507777dab0Sopenharmony_ci 517777dab0Sopenharmony_cichar *getenv (const char *); 527777dab0Sopenharmony_ci 537777dab0Sopenharmony_ciint system (const char *); 547777dab0Sopenharmony_ci 557777dab0Sopenharmony_civoid *bsearch (const void *, const void *, size_t, size_t, int (*)(const void *, const void *)); 567777dab0Sopenharmony_civoid qsort (void *, size_t, size_t, int (*)(const void *, const void *)); 577777dab0Sopenharmony_ci 587777dab0Sopenharmony_ciint abs (int); 597777dab0Sopenharmony_cilong labs (long); 607777dab0Sopenharmony_cilong long llabs (long long); 617777dab0Sopenharmony_ci 627777dab0Sopenharmony_citypedef struct { int quot, rem; } div_t; 637777dab0Sopenharmony_citypedef struct { long quot, rem; } ldiv_t; 647777dab0Sopenharmony_citypedef struct { long long quot, rem; } lldiv_t; 657777dab0Sopenharmony_ci 667777dab0Sopenharmony_cidiv_t div (int, int); 677777dab0Sopenharmony_cildiv_t ldiv (long, long); 687777dab0Sopenharmony_cilldiv_t lldiv (long long, long long); 697777dab0Sopenharmony_ci 707777dab0Sopenharmony_ciint mblen (const char *, size_t); 717777dab0Sopenharmony_ciint mbtowc (wchar_t *__restrict, const char *__restrict, size_t); 727777dab0Sopenharmony_ciint wctomb (char *, wchar_t); 737777dab0Sopenharmony_cisize_t mbstowcs (wchar_t *__restrict, const char *__restrict, size_t); 747777dab0Sopenharmony_cisize_t wcstombs (char *__restrict, const wchar_t *__restrict, size_t); 757777dab0Sopenharmony_ci 767777dab0Sopenharmony_ciunsigned int arc4random(void); 777777dab0Sopenharmony_ciunsigned int arc4random_uniform(unsigned int); 787777dab0Sopenharmony_civoid arc4random_buf(void *, size_t); 797777dab0Sopenharmony_ci 807777dab0Sopenharmony_ci#define EXIT_FAILURE 1 817777dab0Sopenharmony_ci#define EXIT_SUCCESS 0 827777dab0Sopenharmony_ci 837777dab0Sopenharmony_cisize_t __ctype_get_mb_cur_max(void); 847777dab0Sopenharmony_ci#define MB_CUR_MAX (__ctype_get_mb_cur_max()) 857777dab0Sopenharmony_ci 867777dab0Sopenharmony_ci#define RAND_MAX (0x7fffffff) 877777dab0Sopenharmony_ci 887777dab0Sopenharmony_ci 897777dab0Sopenharmony_ci#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ 907777dab0Sopenharmony_ci || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ 917777dab0Sopenharmony_ci || defined(_BSD_SOURCE) 927777dab0Sopenharmony_ci 937777dab0Sopenharmony_ci#define WNOHANG 1 947777dab0Sopenharmony_ci#define WUNTRACED 2 957777dab0Sopenharmony_ci 967777dab0Sopenharmony_ci#define WEXITSTATUS(s) (((s) & 0xff00) >> 8) 977777dab0Sopenharmony_ci#define WTERMSIG(s) ((s) & 0x7f) 987777dab0Sopenharmony_ci#define WSTOPSIG(s) WEXITSTATUS(s) 997777dab0Sopenharmony_ci#define WIFEXITED(s) (!WTERMSIG(s)) 1007777dab0Sopenharmony_ci#define WIFSTOPPED(s) ((short)((((s)&0xffff)*0x10001)>>8) > 0x7f00) 1017777dab0Sopenharmony_ci#define WIFSIGNALED(s) (((s)&0xffff)-1U < 0xffu) 1027777dab0Sopenharmony_ci 1037777dab0Sopenharmony_ciint posix_memalign (void **, size_t, size_t); 1047777dab0Sopenharmony_ciint setenv (const char *, const char *, int); 1057777dab0Sopenharmony_ciint unsetenv (const char *); 1067777dab0Sopenharmony_ciint mkstemp (char *); 1077777dab0Sopenharmony_ciint mkostemp (char *, int); 1087777dab0Sopenharmony_cichar *mkdtemp (char *); 1097777dab0Sopenharmony_ciint getsubopt (char **, char *const *, char **); 1107777dab0Sopenharmony_ciint rand_r (unsigned *); 1117777dab0Sopenharmony_ci 1127777dab0Sopenharmony_ci#endif 1137777dab0Sopenharmony_ci 1147777dab0Sopenharmony_ci 1157777dab0Sopenharmony_ci#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ 1167777dab0Sopenharmony_ci || defined(_BSD_SOURCE) 1177777dab0Sopenharmony_cichar *realpath (const char *__restrict, char *__restrict); 1187777dab0Sopenharmony_cilong int random (void); 1197777dab0Sopenharmony_civoid srandom (unsigned int); 1207777dab0Sopenharmony_cichar *initstate (unsigned int, char *, size_t); 1217777dab0Sopenharmony_cichar *setstate (char *); 1227777dab0Sopenharmony_ciint putenv (char *); 1237777dab0Sopenharmony_ciint posix_openpt (int); 1247777dab0Sopenharmony_ciint grantpt (int); 1257777dab0Sopenharmony_ciint unlockpt (int); 1267777dab0Sopenharmony_cichar *ptsname (int); 1277777dab0Sopenharmony_cidouble drand48 (void); 1287777dab0Sopenharmony_cidouble erand48 (unsigned short [3]); 1297777dab0Sopenharmony_cilong int lrand48 (void); 1307777dab0Sopenharmony_cilong int nrand48 (unsigned short [3]); 1317777dab0Sopenharmony_cilong mrand48 (void); 1327777dab0Sopenharmony_cilong jrand48 (unsigned short [3]); 1337777dab0Sopenharmony_civoid srand48 (long); 1347777dab0Sopenharmony_ciunsigned short *seed48 (unsigned short [3]); 1357777dab0Sopenharmony_civoid lcong48 (unsigned short [7]); 1367777dab0Sopenharmony_ci#endif 1377777dab0Sopenharmony_ci 1387777dab0Sopenharmony_ci#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 1397777dab0Sopenharmony_ci#include <alloca.h> 1407777dab0Sopenharmony_cichar *mktemp (char *); 1417777dab0Sopenharmony_ciint mkstemps (char *, int); 1427777dab0Sopenharmony_ciint mkostemps (char *, int, int); 1437777dab0Sopenharmony_civoid *valloc (size_t); 1447777dab0Sopenharmony_civoid *memalign(size_t, size_t); 1457777dab0Sopenharmony_ciint getloadavg(double *, int); 1467777dab0Sopenharmony_ciint clearenv(void); 1477777dab0Sopenharmony_ci#define WCOREDUMP(s) ((s) & 0x80) 1487777dab0Sopenharmony_ci#define WIFCONTINUED(s) ((s) == 0xffff) 1497777dab0Sopenharmony_ci#endif 1507777dab0Sopenharmony_ci 1517777dab0Sopenharmony_ci#ifdef _GNU_SOURCE 1527777dab0Sopenharmony_ciint ptsname_r(int, char *, size_t); 1537777dab0Sopenharmony_cistruct __locale_struct; 1547777dab0Sopenharmony_cifloat strtof_l(const char *__restrict, char **__restrict, struct __locale_struct *); 1557777dab0Sopenharmony_cidouble strtod_l(const char *__restrict, char **__restrict, struct __locale_struct *); 1567777dab0Sopenharmony_cilong double strtold_l(const char *__restrict, char **__restrict, struct __locale_struct *); 1577777dab0Sopenharmony_ci#endif 1587777dab0Sopenharmony_ci 1597777dab0Sopenharmony_ci#if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE) 1607777dab0Sopenharmony_ci#define mkstemp64 mkstemp 1617777dab0Sopenharmony_ci#define mkostemp64 mkostemp 1627777dab0Sopenharmony_ci#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 1637777dab0Sopenharmony_ci#define mkstemps64 mkstemps 1647777dab0Sopenharmony_ci#define mkostemps64 mkostemps 1657777dab0Sopenharmony_ci#endif 1667777dab0Sopenharmony_ci#endif 1677777dab0Sopenharmony_ci 1687777dab0Sopenharmony_ci#include <fortify/stdlib.h> 1697777dab0Sopenharmony_ci 1707777dab0Sopenharmony_ci#ifdef __cplusplus 1717777dab0Sopenharmony_ci} 1727777dab0Sopenharmony_ci#endif 1737777dab0Sopenharmony_ci 1747777dab0Sopenharmony_ci#endif 175