#define _ARCH_H_
#include <stdint.h>
-#include <stdlib.h>
-
+//#include <stdlib.h>
+#undef CLONE_VM
#define _MODULE_NAME_ "NativeKernel"
+#define PAGE_SIZE 0x1000 // Assume, making an Ass out of u and me
#define BITS (sizeof(intptr_t)*8)
typedef uint8_t Uint8;
typedef intptr_t tVAddr;
typedef intptr_t tPAddr;
+typedef int BOOL;
+
+extern void exit(int status) __attribute__((noreturn));
+#define HALT_CPU() exit(1)
+
+#include <stddef.h>
+#undef offsetof
+
struct sShortSpinlock
{
- int Lock;
+ void *Mutex;
};
-#define SHORTLOCK(...)
-#define SHORTREL(...)
+extern void Threads_int_ShortLock(void **Ptr);
+extern void Threads_int_ShortRel(void **Ptr);
+extern int Threads_int_ShortHas(void **Ptr);
+
+#define SHORTLOCK(l) Threads_int_ShortLock(&(l)->Mutex)
+#define SHORTREL(l) Threads_int_ShortRel(&(l)->Mutex)
+#define CPU_HAS_LOCK(l) Threads_int_ShortHas(&(l)->Mutex)
+
+//#define NUM_CFG_ENTRIES 10
+
+extern void Debug_PutCharDebug(char ch);
+extern void Debug_PutStringDebug(const char *str);
#endif