Working on separating architecture dependent and independent stuff,
[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         Uint    ds, es, fs, gs;
15         Uint    r15, r14, r13, r12;
16         Uint    r11, r10, r9, r8;
17     Uint        rdi, rsi, rbp, krsp;
18         Uint    rbx, rdx, rcx, rax;
19     Uint        int_num, err_code;
20     Uint        eip, cs;
21         Uint    eflags, esp, ss;
22 } tRegs;
23
24 /**
25  * \brief Memory State for thread handler
26  */
27 typedef struct sMemoryState
28 {
29         tPAddr  CR3;
30 }       tMemoryState;
31
32 /**
33  * \brief Task state for thread handler
34  */
35 typedef struct sTaskState
36 {
37         Uint    RIP, RSP, RBP;
38 }       tTaskState;
39
40 #endif
41

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