Usermode - More hackery to get glib compiling
[tpg/acess2.git] / Usermode / Libraries / libc.so_src / include_exp / stdlib.h
index 8acfb8b..fa923ee 100644 (file)
@@ -9,9 +9,51 @@
 #include <stdarg.h>\r
 #include <sys/types.h>\r
 \r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
 #define EXIT_FAILURE   1\r
 #define EXIT_SUCCESS   0\r
 \r
+#ifdef ARCHDIR_is_native\r
+# define _exit acess__exit\r
+\r
+//# define strtoll     acess_strtoll\r
+//# define strtol      acess_strtol\r
+//# define strtoul     acess_strtoul\r
+//# define strtoull    acess_strtoull\r
+\r
+# define strtod        acess_strtod\r
+# define strtof        acess_strtof\r
+# define atof  acess_atof\r
+\r
+# define exit  acess_exit\r
+# define atexit        acess_atexit\r
+# define abort acess_abort\r
+# define abs   acess_abs\r
+# define labs  acess_labs\r
+# define llabs acess_llabs\r
+\r
+# define mktemp        acess_mktemp\r
+\r
+# define getenv        acess_getenv\r
+# define putenv        acess_putenv\r
+\r
+# define bsearch       acess_bsearch\r
+# define qsort acess_qsort\r
+\r
+# define free  acess_free\r
+# define malloc        acess_malloc\r
+# define calloc        acess_calloc\r
+# define realloc       acess_realloc\r
+# define IsHeap        acess_IsHeap\r
+\r
+# define srand acess_srand\r
+# define rand  acess_rand\r
+# define rand_p        acess_rand_p\r
+#endif\r
+\r
 /* --- Spinlock Macros --- */\r
 /* TODO: Support non-x86 architectures */\r
 #define DEFLOCK(_name) static int _spinlock_##_name=0;\r
 \r
 /* --- StdLib --- */\r
 extern void    _exit(int code) __attribute__((noreturn));      /* NOTE: Also defined in acess/sys.h */\r
+\r
 extern long long       strtoll(const char *ptr, char **end, int base);\r
 extern long    strtol(const char *ptr, char **end, int base);\r
+extern unsigned long long      strtoull(const char *ptr, char **end, int base);\r
+extern unsigned long   strtoul(const char *ptr, char **end, int base);\r
 extern int     atoi(const char *ptr);\r
+extern long    atol(const char *ptr);\r
+extern long long       atoll(const char *ptr);\r
+\r
+extern double  strtod(const char *ptr, char **end);\r
+extern float   strtof(const char *ptr, char **end);\r
+extern float   atof(const char *ptr);\r
+\r
 extern void    exit(int status) __attribute__((noreturn));\r
+extern void    abort(void);\r
 extern void    atexit(void (*__func)(void));\r
-extern void    qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *));\r
 extern int     abs(int j);\r
 extern long int        labs(long int j);\r
 extern long long int   llabs(long long int j);\r
 \r
+extern char    *mktemp(char *__template);\r
+\r
 /* --- Environment --- */\r
 extern char    *getenv(const char *name);\r
+extern int     putenv(char *string);\r
+\r
+/* --- Search/Sort --- */\r
+typedef int (*_stdlib_compar_t)(const void *, const void *);\r
+extern void    *bsearch(const void *key, const void *base, size_t nmemb, size_t size, _stdlib_compar_t compar);\r
+extern void    qsort(void *base, size_t nmemb, size_t size, _stdlib_compar_t compar);\r
 \r
 /* --- Heap --- */\r
 extern void    free(void *mem);\r
@@ -39,6 +99,7 @@ extern void   *malloc(size_t bytes);
 extern void    *calloc(size_t __nmemb, size_t __size);\r
 extern void    *realloc(void *__ptr, size_t __size);\r
 extern int     IsHeap(void *ptr);\r
+extern int     Heap_Validate(int bDump);\r
 \r
 /* --- Random --- */\r
 extern void    srand(unsigned int seed);\r
@@ -51,4 +112,12 @@ extern int  rand_p(unsigned int *seedp);
 # define SEEK_END      (-1)\r
 #endif\r
 \r
+#define MB_CUR_MAX     5       // (C99) Max number of bytes in a single multibyte character (UTF8=5)\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#include <libposix_stdlib.h>\r
+\r
 #endif\r

UCC git Repository :: git.ucc.asn.au