/*\r
-AcessOS LibC\r
-\r
-stdlib.h\r
-*/\r
+ * AcessOS LibC\r
+ * stdlib.h\r
+ */\r
#ifndef __STDLIB_H\r
#define __STDLIB_H\r
\r
+#include <stddef.h>\r
#include <stdarg.h>\r
#include <sys/types.h>\r
\r
-#ifndef NULL\r
-# define NULL ((void*)0)\r
-#endif\r
-\r
-typedef unsigned int size_t;\r
+#define EXIT_FAILURE 1\r
+#define EXIT_SUCCESS 0\r
\r
// --- Spinlock Macros ---\r
#define DEFLOCK(_name) static int _spinlock_##_name=0;\r
#define UNLOCK(_name) __asm__ __volatile__("lock andl $0, (%0)"::"D"(&_spinlock_##_name))\r
\r
// --- StdLib ---\r
+extern void _exit(int code); //NOTE: Also defined in acess/sys.h\r
extern int atoi(const char *ptr);\r
-\r
-extern void *memcpy(void *dest, void *src, size_t count);\r
-extern void *memmove(void *dest, void *src, size_t count);\r
+extern void exit(int status) __attribute__((noreturn));\r
+extern void qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *));\r
\r
// --- Environment ---\r
extern char *getenv(const char *name);\r
extern void *realloc(void *oldPos, unsigned int bytes);\r
extern int IsHeap(void *ptr);\r
\r
-// --- Strings ---\r
-extern int strlen(const char *string);\r
-extern int strcmp(char *str1, char *str2);\r
-extern int strncmp(char *str1, char *str2, size_t len);\r
-extern char *strcpy(char *dst, const char *src);\r
-\r
#ifndef SEEK_CUR\r
# define SEEK_CUR 0\r
# define SEEK_SET 1\r