+typedef char BOOL;
+
+#define __ASM__ __asm__ __volatile__
+
+// === MACROS ===
+/**
+ * \brief Halt the CPU
+ */
+#define HALT() __asm__ __volatile__ ("sti;\n\thlt")
+/**
+ * \brief Fire a magic breakpoint (bochs)
+ */
+#define MAGIC_BREAK() __asm__ __volatile__ ("xchg %bx, %bx")
+
+// Systemcall Registers
+// TODO: Fix this structure
+typedef struct sSyscallRegs
+{
+ union {
+ Uint Num;
+ Uint Return;
+ }; // RAX
+ Uint Arg4; // RCX
+ Uint Arg3; // RDX
+ Uint Error; // RBX
+ Uint Resvd1[2]; // Kernel RSP, RBP
+ Uint Arg2; // RSI
+ Uint Arg1; // RDI
+ Uint Arg5; // R8
+ Uint Arg6; // R9
+ Uint Resvd2[6]; // R10 - R15
+ Uint Resvd3[5]; // IntNum, ErrCode, RIP, CS, RFLAGS
+
+ Uint Resvd4[5]; // Int, Err, rip, CS, ...
+ Uint StackPointer; // RSP
+ Uint Resvd5[1]; // SS
+} tSyscallRegs;
+
+/**
+ * \brief Short Spinlock structure
+ */
+struct sShortSpinlock {
+ #if STACKED_LOCKS == 2
+ volatile void *Lock; //!< Lock value
+ #else
+ volatile int Lock; //!< Lock value
+ #endif
+
+ #if LOCK_DISABLE_INTS
+ int IF; //!< Interrupt state on call to SHORTLOCK
+ #endif
+ #if STACKED_LOCKS
+ int Depth;
+ #endif
+};