X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Farch%2Fx86%2Finclude%2Fproc.h;h=9ecd98b553a2d2bb022fe38bcfacda496caa63a9;hb=8fdfdc58b3a041f11592dd49c3a5726126b36859;hp=5e3fadd91569741900b0d6ae0016fbdfc4a50226;hpb=dea6bcf35a3f52396724d74e47f71cb3afade37c;p=tpg%2Facess2.git diff --git a/Kernel/arch/x86/include/proc.h b/Kernel/arch/x86/include/proc.h index 5e3fadd9..9ecd98b5 100644 --- a/Kernel/arch/x86/include/proc.h +++ b/Kernel/arch/x86/include/proc.h @@ -5,19 +5,7 @@ #ifndef _PROC_H #define _PROC_H -#include - -// === TYPES === -#if USE_MP -typedef struct sCPU -{ - Uint8 APICID; - Uint8 State; // 0: Unavaliable, 1: Idle, 2: Active - Uint16 Resvd; - tThread *Current; -} tCPU; -#endif - +// === TYPES == typedef struct sTSS { Uint32 Link; Uint32 ESP0, SS0; @@ -33,8 +21,29 @@ typedef struct sTSS { Uint16 Resvd, IOPB; // IO Permissions Bitmap } __attribute__((packed)) tTSS; -// === FUNCTIONS === -extern void Proc_Start(void); -extern int Proc_Clone(Uint *Err, Uint Flags); +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 + +#define USER_MAX KERNEL_BASE #endif