Kernel/x86_64 - Debugging GUI errors (and a wild goose chase)
[tpg/acess2.git] / KernelLand / Kernel / arch / x86_64 / include / proc.h
1 /*
2  * Acess2 x86_64 Port
3  * 
4  * proc.h - Process/Thread management code
5  */
6 #ifndef _PROC_H_
7 #define _PROC_H_
8
9 #include <arch.h>
10
11 // Register Structure
12 // TODO: Rebuild once IDT code is done
13 typedef struct {
14         // MMX
15         // FPU
16         Uint    FS, GS;
17         
18         Uint    RAX, RCX, RDX, RBX;
19         Uint    KernelRSP, RBP, RSI, RDI;
20         Uint    R8,  R9,  R10, R11;
21         Uint    R12, R13, R14, R15;
22         
23         Uint    IntNum, ErrorCode;
24         Uint    RIP, CS;
25         Uint    RFlags, RSP, SS;
26 } tRegs;
27
28 /**
29  * \brief Memory State for thread handler
30  */
31 typedef struct sMemoryState
32 {
33         tPAddr  CR3;
34 }       tMemoryState;
35
36 // 512 bytes, 16 byte aligned
37 typedef struct sSSEState
38 {
39         char    data[512];
40 } tSSEState;
41
42 /**
43  * \brief Task state for thread handler
44  */
45 typedef struct sTaskState
46 {
47         Uint    RIP, RSP;
48         Uint64  UserRIP, UserCS;
49         tSSEState       *SSE;
50          int    bSSEModified;
51 }       tTaskState;
52
53 // === CONSTANTS ===
54 #define KERNEL_STACK_SIZE       0x8000  // 32 KiB
55 //#define KERNEL_STACK_SIZE     0x10000 // 64 KiB
56
57 #endif
58

UCC git Repository :: git.ucc.asn.au