10 #include <sys/types.h>
\r
13 # define NULL ((void*)0)
\r
16 typedef unsigned int size_t;
\r
18 // --- Spinlock Macros ---
\r
19 #define DEFLOCK(_name) static int _spinlock_##_name=0;
\r
20 //#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
21 #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
22 #define UNLOCK(_name) __asm__ __volatile__("lock andl $0, (%0)"::"D"(&_spinlock_##_name))
\r
25 extern int atoi(const char *ptr);
\r
27 extern void *memcpy(void *dest, void *src, size_t count);
\r
28 extern void *memmove(void *dest, void *src, size_t count);
\r
30 // --- Environment ---
\r
31 extern char *getenv(const char *name);
\r
34 extern void free(void *mem);
\r
35 extern void *malloc(unsigned int bytes);
\r
36 extern void *realloc(void *oldPos, unsigned int bytes);
\r
37 extern int IsHeap(void *ptr);
\r
40 extern int strlen(const char *string);
\r
41 extern int strcmp(char *str1, char *str2);
\r
42 extern int strncmp(char *str1, char *str2, size_t len);
\r
43 extern char *strcpy(char *dst, const char *src);
\r
48 # define SEEK_END (-1)
\r