X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=Kernel%2Farch%2Fx86_64%2Finclude%2Fproc.h;h=dad8f0610789262db0cb5a64a2094ca1f42922ff;hb=a3ca5c97e1e761815f1890dccdbe9dce243b5c8f;hp=94d21272264d11f1035570adeaedabab6bd9de50;hpb=dec96d539a700885bace43218e26f684934a1a01;p=tpg%2Facess2.git diff --git a/Kernel/arch/x86_64/include/proc.h b/Kernel/arch/x86_64/include/proc.h index 94d21272..dad8f061 100644 --- a/Kernel/arch/x86_64/include/proc.h +++ b/Kernel/arch/x86_64/include/proc.h @@ -16,12 +16,12 @@ typedef struct { 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; @@ -33,20 +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 0x10000 // 64 KiB - -// === FUNCTIONS === -extern void Proc_Start(void); -extern int Proc_Clone(Uint *Err, Uint Flags); +#define KERNEL_STACK_SIZE 0x8000 // 32 KiB +//#define KERNEL_STACK_SIZE 0x10000 // 64 KiB #endif