summaryrefslogtreecommitdiffhomepage
path: root/Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp')
-rw-r--r--Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp b/Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp
index 4e9d2ff6..c8eb094c 100644
--- a/Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp
+++ b/Kernel/HALKit/AMD64/HalCoreMultiProcessingAMD64.cpp
@@ -163,7 +163,8 @@ namespace NewOS::HAL
EXTERN_C Void hal_apic_acknowledge_cont(Void)
{
- _hal_spin_core();
+ kcout << "newoskrnl: stopping core...\r";
+ ke_stop(RUNTIME_CHECK_BOOTSTRAP);
}
EXTERN_C StackFramePtr _hal_leak_current_context(Void)
@@ -211,12 +212,12 @@ namespace NewOS::HAL
for (SizeT coreAt = cStartAt; coreAt < cMaxProbableCores; ++coreAt)
{
- if (madt->MadtRecords[coreAt].Flags != kThreadBoot) // if local apic.
+ if (madt->MadtRecords[coreAt].Flags < kThreadBoot) // if local apic.
{
MadtType::MadtAddress& madtRecord = madt->MadtRecords[coreAt];
// then register as a core for scheduler.
- kcout << "newoskrnl: Register Local APIC.\r";
+ kcout << "newoskrnl: Register APIC.\r";
kApicMadtAddresses[kApicMadtAddressesCount].fAddress = madtRecord.Address;
kApicMadtAddresses[kApicMadtAddressesCount].fKind = madt->MadtRecords[coreAt].Flags;