X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Flibc.so_src%2Finclude_exp%2Fstdlib.h;h=fa923eef6e7244cc3fe896d50852165e76605e0c;hb=ba78deafcc3016555469ed263d7a0370fa99db4b;hp=8acfb8bc9c74717433480fc92fe9d6183ea26f5d;hpb=8dcc3e209d0d728565a18c8dca2b0ba220b74a6f;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/libc.so_src/include_exp/stdlib.h b/Usermode/Libraries/libc.so_src/include_exp/stdlib.h index 8acfb8bc..fa923eef 100644 --- a/Usermode/Libraries/libc.so_src/include_exp/stdlib.h +++ b/Usermode/Libraries/libc.so_src/include_exp/stdlib.h @@ -9,9 +9,51 @@ #include #include +#ifdef __cplusplus +extern "C" { +#endif + #define EXIT_FAILURE 1 #define EXIT_SUCCESS 0 +#ifdef ARCHDIR_is_native +# define _exit acess__exit + +//# define strtoll acess_strtoll +//# define strtol acess_strtol +//# define strtoul acess_strtoul +//# define strtoull acess_strtoull + +# define strtod acess_strtod +# define strtof acess_strtof +# define atof acess_atof + +# define exit acess_exit +# define atexit acess_atexit +# define abort acess_abort +# define abs acess_abs +# define labs acess_labs +# define llabs acess_llabs + +# define mktemp acess_mktemp + +# define getenv acess_getenv +# define putenv acess_putenv + +# define bsearch acess_bsearch +# define qsort acess_qsort + +# define free acess_free +# define malloc acess_malloc +# define calloc acess_calloc +# define realloc acess_realloc +# define IsHeap acess_IsHeap + +# define srand acess_srand +# define rand acess_rand +# define rand_p acess_rand_p +#endif + /* --- Spinlock Macros --- */ /* TODO: Support non-x86 architectures */ #define DEFLOCK(_name) static int _spinlock_##_name=0; @@ -20,18 +62,36 @@ /* --- StdLib --- */ extern void _exit(int code) __attribute__((noreturn)); /* NOTE: Also defined in acess/sys.h */ + extern long long strtoll(const char *ptr, char **end, int base); extern long strtol(const char *ptr, char **end, int base); +extern unsigned long long strtoull(const char *ptr, char **end, int base); +extern unsigned long strtoul(const char *ptr, char **end, int base); extern int atoi(const char *ptr); +extern long atol(const char *ptr); +extern long long atoll(const char *ptr); + +extern double strtod(const char *ptr, char **end); +extern float strtof(const char *ptr, char **end); +extern float atof(const char *ptr); + extern void exit(int status) __attribute__((noreturn)); +extern void abort(void); extern void atexit(void (*__func)(void)); -extern void qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *)); extern int abs(int j); extern long int labs(long int j); extern long long int llabs(long long int j); +extern char *mktemp(char *__template); + /* --- Environment --- */ extern char *getenv(const char *name); +extern int putenv(char *string); + +/* --- Search/Sort --- */ +typedef int (*_stdlib_compar_t)(const void *, const void *); +extern void *bsearch(const void *key, const void *base, size_t nmemb, size_t size, _stdlib_compar_t compar); +extern void qsort(void *base, size_t nmemb, size_t size, _stdlib_compar_t compar); /* --- Heap --- */ extern void free(void *mem); @@ -39,6 +99,7 @@ extern void *malloc(size_t bytes); extern void *calloc(size_t __nmemb, size_t __size); extern void *realloc(void *__ptr, size_t __size); extern int IsHeap(void *ptr); +extern int Heap_Validate(int bDump); /* --- Random --- */ extern void srand(unsigned int seed); @@ -51,4 +112,12 @@ extern int rand_p(unsigned int *seedp); # define SEEK_END (-1) #endif +#define MB_CUR_MAX 5 // (C99) Max number of bytes in a single multibyte character (UTF8=5) + +#ifdef __cplusplus +} +#endif + +#include + #endif