X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Farch%2Fx86%2Finclude%2Fproc.h;h=9ecd98b553a2d2bb022fe38bcfacda496caa63a9;hb=8fdfdc58b3a041f11592dd49c3a5726126b36859;hp=baf9402c73559bd21b07cdd30b898288ae559f67;hpb=a79ebcb3a2e206251f44e99376ec2ed6c2bacc63;p=tpg%2Facess2.git diff --git a/Kernel/arch/x86/include/proc.h b/Kernel/arch/x86/include/proc.h index baf9402c..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(); -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