X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Farch%2Fx86%2Finclude%2Fproc.h;h=9ecd98b553a2d2bb022fe38bcfacda496caa63a9;hb=7aa331d83b8dd23d3ca7530fa582cec528df274a;hp=6619ec0de5ff3331e2b13f8d0207a604022f0f5d;hpb=f119d0e5b18b7286d04fc536a94e0f96e3c51714;p=tpg%2Facess2.git diff --git a/Kernel/arch/x86/include/proc.h b/Kernel/arch/x86/include/proc.h index 6619ec0d..9ecd98b5 100644 --- a/Kernel/arch/x86/include/proc.h +++ b/Kernel/arch/x86/include/proc.h @@ -5,13 +5,7 @@ #ifndef _PROC_H #define _PROC_H -#include - -// === CONSTANTS === -#define GETMSG_IGNORE ((void*)-1) - -// === TYPES === - +// === TYPES == typedef struct sTSS { Uint32 Link; Uint32 ESP0, SS0; @@ -25,10 +19,31 @@ typedef struct sTSS { Uint32 ES, CS, DS, SS, FS, GS; Uint32 LDTR; Uint16 Resvd, IOPB; // IO Permissions Bitmap -} tTSS; +} __attribute__((packed)) tTSS; + +typedef struct { + #if USE_PAE + Uint PDPT[4]; + #else + Uint32 CR3; + #endif +} tMemoryState; + +// 512 bytes, 16 byte aligned +typedef struct sSSEState +{ + char data[512]; +} tSSEState; + +typedef struct { + Uint EIP, ESP; + Uint32 UserCS, UserEIP; + tSSEState *SSE; + int bSSEModified; +} tTaskState; + +#include -// === FUNCTIONS === -extern void Proc_Start(); -extern int Proc_Clone(Uint *Err, Uint Flags); +#define USER_MAX KERNEL_BASE #endif