git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Cleaned up some more debug
[tpg/acess2.git]
/
Kernel
/
arch
/
x86
/
proc.c
diff --git
a/Kernel/arch/x86/proc.c
b/Kernel/arch/x86/proc.c
index
60f015b
..
2d68d65
100644
(file)
--- a/
Kernel/arch/x86/proc.c
+++ b/
Kernel/arch/x86/proc.c
@@
-113,6
+113,7
@@
void ArchThreads_Init()
gTSSs = &gTSS0;
#if USE_MP
}
gTSSs = &gTSS0;
#if USE_MP
}
+ #endif
// Initialise Double Fault TSS
gGDT[5].LimitLow = sizeof(tTSS);
// Initialise Double Fault TSS
gGDT[5].LimitLow = sizeof(tTSS);
@@
-123,7
+124,8
@@
void ArchThreads_Init()
gGDT[5].BaseMid = (Uint)&gDoubleFault_TSS >> 16;
gGDT[5].BaseHi = (Uint)&gDoubleFault_TSS >> 24;
gGDT[5].BaseMid = (Uint)&gDoubleFault_TSS >> 16;
gGDT[5].BaseHi = (Uint)&gDoubleFault_TSS >> 24;
- // Initialise TSS
+ #if USE_MP
+ // Initialise Normal TSS(s)
for(pos=0;pos<giNumCPUs;pos++)
{
#else
for(pos=0;pos<giNumCPUs;pos++)
{
#else
@@
-131,13
+133,13
@@
void ArchThreads_Init()
#endif
gTSSs[pos].SS0 = 0x10;
gTSSs[pos].ESP0 = 0; // Set properly by scheduler
#endif
gTSSs[pos].SS0 = 0x10;
gTSSs[pos].ESP0 = 0; // Set properly by scheduler
+ gGDT[6+pos].BaseLow = ((Uint)(&gTSSs[pos])) & 0xFFFF;
+ gGDT[6+pos].BaseMid = ((Uint)(&gTSSs[pos])) >> 16;
+ gGDT[6+pos].BaseHi = ((Uint)(&gTSSs[pos])) >> 24;
gGDT[6+pos].LimitLow = sizeof(tTSS);
gGDT[6+pos].LimitHi = 0;
gGDT[6+pos].Access = 0x89; // Type
gGDT[6+pos].Flags = 0x4;
gGDT[6+pos].LimitLow = sizeof(tTSS);
gGDT[6+pos].LimitHi = 0;
gGDT[6+pos].Access = 0x89; // Type
gGDT[6+pos].Flags = 0x4;
- gGDT[6+pos].BaseLow = (Uint)&gTSSs[pos] & 0xFFFF;
- gGDT[6+pos].BaseMid = (Uint)&gTSSs[pos] >> 16;
- gGDT[6+pos].BaseHi = (Uint)&gTSSs[pos] >> 24;
#if USE_MP
}
for(pos=0;pos<giNumCPUs;pos++) {
#if USE_MP
}
for(pos=0;pos<giNumCPUs;pos++) {
UCC
git Repository :: git.ucc.asn.au