More work on error and interrupt handling (almost got it working)
[tpg/acess2.git] / 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 /**
37  * \brief Task state for thread handler
38  */
39 typedef struct sTaskState
40 {
41         Uint    RIP, RSP, RBP;
42 }       tTaskState;
43
44 #endif
45

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