tAPIC *gpMP_LocalAPIC = NULL;
Uint8 gaAPIC_to_CPU[256] = {0};
tCPU gaCPUs[MAX_CPUS];
+tTSS gaTSSs[MAX_CPUS]; // TSS Array
int giProc_BootProcessorID = 0;
#else
tThread *gCurrentThread = NULL;
#if USE_PAE
Uint32 *gPML4s[4] = NULL;
#endif
-tTSS *gTSSs = NULL;
+tTSS *gTSSs = NULL; // Pointer to TSS array
tTSS gTSS0 = {0};
// --- Error Recovery ---
char gaDoubleFaultStack[1024];
Warning("Too many CPUs detected (%i), only using %i of them", giNumCPUs, MAX_CPUS);
giNumCPUs = MAX_CPUS;
}
+ gTSSs = gaTSSs;
}
else {
Log("No MP Table was found, assuming uniprocessor\n");
gCurrentThread = thread;
#endif
+ //Log("CPU = %i", CPU);
+
// Update Kernel Stack pointer
gTSSs[CPU].ESP0 = thread->KernelStack-4;