Kernel/x86 - Moved MP Table parsing into its own file
[tpg/acess2.git] / KernelLand / Kernel / arch / x86 / include / proc_int.h
1 /*
2  * Acess2 Kernel (x86 Port)
3  * - By John Hodge (thePowersGang)
4  * 
5  * include/proc_int.h
6  * - Low-level threading internals
7  */
8 #ifndef _PROC_INT_H_
9 #define _PROC_INT_H_
10
11 #include <acess.h>
12 #include <threads.h>
13 #include <apic.h>
14
15 // === TYPES ===
16 typedef struct sCPU     tCPU;
17
18 // === STRUCTS ===
19 struct sCPU
20 {
21         Uint8   APICID;
22         Uint8   State;  // 0: Unavaliable, 1: Idle, 2: Active
23         Uint16  Resvd;
24         tThread *Current;
25         tThread *LastTimerThread;       // Used to do preeemption
26 };
27
28 // === FUNCTIONS ===
29 // - mptable.c - MP Table parsing code
30 extern const void       *MPTable_LocateFloatPtr(void);
31 extern int      MPTable_FillCPUs(const void *FloatPtr, tCPU *CPUs, int MaxCPUs, int *BSPIndex);
32
33 // - proc.asm
34 extern void     SwitchTasks(Uint NewSP, Uint *OldSP, Uint NewIP, Uint *OldIO, Uint CR3);
35 extern void     Proc_InitialiseSSE(void);
36 extern void     Proc_SaveSSE(Uint DestPtr);
37 extern void     Proc_DisableSSE(void);
38
39 #endif
40

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