// Register Structure
// TODO: Rebuild once IDT code is done
typedef struct {
- Uint ds, es, fs, gs;
- Uint r15, r14, r13, r12;
- Uint r11, r10, r9, r8;
- Uint rdi, rsi, rbp, krsp;
- Uint rbx, rdx, rcx, rax;
- Uint int_num, err_code;
- Uint eip, cs;
- Uint eflags, esp, ss;
+ // MMX
+ // FPU
+ Uint FS, GS;
+
+ Uint RAX, RCX, RDX, RBX;
+ Uint KernelRSP, RBP, RSI, RDI;
+ Uint R8, R9, R10, R11;
+ Uint R12, R13, R14, R15;
+
+ Uint IntNum, ErrorCode;
+ Uint RIP, CS;
+ Uint RFlags, RSP, SS;
} tRegs;
/**
typedef struct sTaskState
{
Uint RIP, RSP, RBP;
+ Uint64 UserRIP, UserCS;
} tTaskState;
+// === CONSTANTS ===
+#define KERNEL_STACK_SIZE 0x10000 // 64 KiB
+
#endif