20 #if defined(MULTIPROCESSOR) 22 #include "../x86_common/Multiprocessor.h" 23 #include "InterruptManager.h" 24 #include "SyscallManager.h" 26 #include "machine/mach_pc/Pc.h" 27 #include "pedigree/kernel/Spinlock.h" 28 #include "pedigree/kernel/process/initialiseMultitasking.h" 29 #include "pedigree/kernel/processor/NMFaultHandler.h" 30 #include "pedigree/kernel/processor/Processor.h" 32 void Multiprocessor::applicationProcessorStartup()
36 asm volatile(
"mov %%cr0, %%rax; or $0x10000, %%rax; mov %%rax, %%cr0" ::
44 m_ProcessorLock1.release();
48 m_ProcessorLock2.acquire(
false,
false);
49 m_ProcessorLock2.release();
64 Pc::instance().initialiseProcessor();
71 initialiseMultitaskingPerProcessor();
bool initialiseProcessor()
static NMFaultHandler & instance()
static void initialiseProcessor() INITIALISATION_ONLY
static void initialiseProcessor() INITIALISATION_ONLY
static void initialiseProcessor() INITIALISATION_ONLY
static void invalidate(void *pAddress)