X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2Finclude%2Fstdlib.h;h=6ea8db505578f669c6ae2b07b9dac0c5adfcd6f0;hb=a45616f079defd57d6447862ce1663c773db43a2;hp=6f745f16ca8bf8c7ff118c56c33355ba27fa03fa;hpb=91dd38c34820c03311738439125675d59bf9e3f1;p=tpg%2Facess2.git diff --git a/Usermode/include/stdlib.h b/Usermode/include/stdlib.h index 6f745f16..6ea8db50 100644 --- a/Usermode/include/stdlib.h +++ b/Usermode/include/stdlib.h @@ -1,19 +1,16 @@ /* -AcessOS LibC - -stdlib.h -*/ + * AcessOS LibC + * stdlib.h + */ #ifndef __STDLIB_H #define __STDLIB_H +#include #include #include -#ifndef NULL -# define NULL ((void*)0) -#endif - -typedef unsigned int size_t; +#define EXIT_FAILURE 1 +#define EXIT_SUCCESS 0 // --- Spinlock Macros --- #define DEFLOCK(_name) static int _spinlock_##_name=0; @@ -22,16 +19,20 @@ typedef unsigned int size_t; #define UNLOCK(_name) __asm__ __volatile__("lock andl $0, (%0)"::"D"(&_spinlock_##_name)) // --- StdLib --- +extern void _exit(int code) __attribute__((noreturn)); //NOTE: Also defined in acess/sys.h extern int atoi(const char *ptr); extern void exit(int status) __attribute__((noreturn)); +extern void atexit(void (*__func)(void)); +extern void qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *)); // --- Environment --- extern char *getenv(const char *name); // --- Heap --- extern void free(void *mem); -extern void *malloc(unsigned int bytes); -extern void *realloc(void *oldPos, unsigned int bytes); +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); #ifndef SEEK_CUR