Usermode - Moved include files to each library's directory
[tpg/acess2.git] / Usermode / Libraries / libc.so_src / include_exp / stdlib.h
diff --git a/Usermode/Libraries/libc.so_src/include_exp/stdlib.h b/Usermode/Libraries/libc.so_src/include_exp/stdlib.h
new file mode 100644 (file)
index 0000000..0e6d9e0
--- /dev/null
@@ -0,0 +1,49 @@
+/*\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
+#define EXIT_FAILURE   1\r
+#define EXIT_SUCCESS   0\r
+\r
+/* --- Spinlock Macros --- */\r
+/* TODO: Support non-x86 architectures */\r
+#define DEFLOCK(_name) static int _spinlock_##_name=0;\r
+#define LOCK(_name)    do{int v=1;while(v){__asm__ __volatile__("lock cmpxchgl %0, (%1)":"=a"(v):"D"((&_spinlock_##_name)),"a"(1));yield();}}while(0)\r
+#define UNLOCK(_name) __asm__ __volatile__("lock andl $0, (%0)"::"D"(&_spinlock_##_name))\r
+\r
+/* --- StdLib --- */\r
+extern void    _exit(int code) __attribute__((noreturn));      /* NOTE: Also defined in acess/sys.h */\r
+extern int     atoi(const char *ptr);\r
+extern void    exit(int status) __attribute__((noreturn));\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
+\r
+/* --- Environment --- */\r
+extern char    *getenv(const char *name);\r
+\r
+/* --- Heap --- */\r
+extern void    free(void *mem);\r
+extern void    *malloc(size_t bytes);\r
+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
+\r
+/* --- Random --- */\r
+extern void    srand(unsigned int seed);\r
+extern int     rand(void);\r
+extern int     rand_p(unsigned int *seedp);\r
+\r
+#ifndef SEEK_CUR\r
+# define SEEK_CUR      0\r
+# define SEEK_SET      1\r
+# define SEEK_END      (-1)\r
+#endif\r
+\r
+#endif\r

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