X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Farch%2Fx86_64%2Finclude%2Fproc.h;h=dad8f0610789262db0cb5a64a2094ca1f42922ff;hb=a2495c6ea4f4cab16b5d339ae511428e92e89e73;hp=c92ce7e5d22b24fa1bf1d69e86a1cdd9b5b645a9;hpb=eecce4b7a55315f6c385ad8be35c25dbb12d43d8;p=tpg%2Facess2.git diff --git a/Kernel/arch/x86_64/include/proc.h b/Kernel/arch/x86_64/include/proc.h index c92ce7e5..dad8f061 100644 --- a/Kernel/arch/x86_64/include/proc.h +++ b/Kernel/arch/x86_64/include/proc.h @@ -14,12 +14,14 @@ typedef struct { // MMX // FPU Uint FS, GS; + Uint RAX, RCX, RDX, RBX; - Uint KernelRSP, RBP, RSI, RDI; + Uint KernelRSP, RBP, RSI, RDI; Uint R8, R9, R10, R11; Uint R12, R13, R14, R15; - Uint IntNum, ErrorCode; - Uint RIP, CS; + + Uint IntNum, ErrorCode; + Uint RIP, CS; Uint RFlags, RSP, SS; } tRegs; @@ -31,13 +33,26 @@ typedef struct sMemoryState tPAddr CR3; } tMemoryState; +// 512 bytes, 16 byte aligned +typedef struct sSSEState +{ + char data[512]; +} tSSEState; + /** * \brief Task state for thread handler */ typedef struct sTaskState { - Uint RIP, RSP, RBP; + Uint RIP, RSP; + Uint64 UserRIP, UserCS; + tSSEState *SSE; + int bSSEModified; } tTaskState; +// === CONSTANTS === +#define KERNEL_STACK_SIZE 0x8000 // 32 KiB +//#define KERNEL_STACK_SIZE 0x10000 // 64 KiB + #endif