git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Misc - Fixed all-install not setting up destination dirs/static files
[tpg/acess2.git]
/
Usermode
/
include
/
stdlib.h
diff --git
a/Usermode/include/stdlib.h
b/Usermode/include/stdlib.h
index
8774427
..
160993d
100644
(file)
--- a/
Usermode/include/stdlib.h
+++ b/
Usermode/include/stdlib.h
@@
-1,47
+1,40
@@
/*
\r
/*
\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
#ifndef __STDLIB_H
\r
#define __STDLIB_H
\r
\r
+#include <stddef.h>
\r
#include <stdarg.h>
\r
#include <sys/types.h>
\r
\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
\r
-// --- Spinlock Macros ---
\r
+/* --- Spinlock Macros --- */
\r
+/* TODO: Support non-x86 architectures */
\r
#define DEFLOCK(_name) static int _spinlock_##_name=0;
\r
#define DEFLOCK(_name) static int _spinlock_##_name=0;
\r
-//#define LOCK(_name) __asm__ __volatile__("jmp ._tst;\n\t._lp:call yield;\n\t._tst:lock btsl $1,(%0);\n\tjc ._lp"::"D"(&_spinlock_##_name))
\r
-#define LOCK(_name) do{int v=1;while(v){__asm__ __volatile__("lock cmpxchgl %%eax, (%1)":"=a"(v):"D"((&_spinlock_##_name)),"a"(1));yield();}}while(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
#define UNLOCK(_name) __asm__ __volatile__("lock andl $0, (%0)"::"D"(&_spinlock_##_name))
\r
\r
-// --- StdLib ---
\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 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
\r
-extern void *memcpy(void *dest, void *src, size_t count);
\r
-extern void *memmove(void *dest, void *src, size_t count);
\r
-
\r
-// --- Environment ---
\r
+/* --- Environment --- */
\r
extern char *getenv(const char *name);
\r
\r
extern char *getenv(const char *name);
\r
\r
-// --- Heap ---
\r
-extern void free(void *mem);
\r
-extern void *malloc(unsigned int bytes);
\r
-extern void *realloc(void *oldPos, unsigned int bytes);
\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
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
#ifndef SEEK_CUR
\r
# define SEEK_CUR 0
\r
# define SEEK_SET 1
\r
UCC
git Repository :: git.ucc.asn.au