summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/HALKit
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-06-23 22:59:26 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-06-23 22:59:26 +0200
commit0d44c75062a313f7d1b8813816843bc8ab51b135 (patch)
tree6d44b12ba358c19f8512f1fe61dce58cd3a11a3c /dev/kernel/HALKit
parentcbda3fef30c3575eb12a22b5fd7cd7d5d2e01c20 (diff)
fix: Fix AP init code, and format codebase.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/HALKit')
-rw-r--r--dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc12
-rw-r--r--dev/kernel/HALKit/AMD64/HalCoreInterruptHandler.cc4
-rw-r--r--dev/kernel/HALKit/AMD64/HalDescriptorLoader.cc9
-rw-r--r--dev/kernel/HALKit/ARM64/HalCoreInterruptHandler.cc4
4 files changed, 16 insertions, 13 deletions
diff --git a/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc b/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc
index aeaeff52..8b4c0d1a 100644
--- a/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc
+++ b/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc
@@ -113,17 +113,19 @@ EXTERN_C HAL::StackFramePtr mp_get_current_task(ThreadID thrdid) {
/***********************************************************************************/
EXTERN_C BOOL mp_register_task(HAL::StackFramePtr stack_frame, ThreadID thrdid) {
- if (thrdid > kSMPCount) return NO;
if (!stack_frame) return NO;
- kHWThread[thrdid].mFramePtr = stack_frame;
-
- HardwareThreadScheduler::The()[thrdid].Leak()->Busy(NO);
-
if (!kSMPAware) {
sched_jump_to_task(kHWThread[thrdid].mFramePtr);
+
+ return YES;
}
+ HardwareThreadScheduler::The()[thrdid].Leak()->Busy(NO);
+
+ kHWThread[thrdid].mFramePtr = stack_frame;
+ if (thrdid > kSMPCount) return NO;
+
return YES;
}
diff --git a/dev/kernel/HALKit/AMD64/HalCoreInterruptHandler.cc b/dev/kernel/HALKit/AMD64/HalCoreInterruptHandler.cc
index c2988767..b837497e 100644
--- a/dev/kernel/HALKit/AMD64/HalCoreInterruptHandler.cc
+++ b/dev/kernel/HALKit/AMD64/HalCoreInterruptHandler.cc
@@ -148,8 +148,8 @@ EXTERN_C Kernel::Void hal_system_call_enter(Kernel::UIntPtr rcx_hash,
/// @brief Enter Kernel call from assembly (libDDK only).
/// @param stack the stack pushed from assembly routine.
/// @return nothing.
-EXTERN_C Kernel::Void hal_kernel_call_enter(Kernel::UIntPtr rcx_hash,
- Kernel::SizeT cnt, Kernel::UIntPtr arg, Kernel::SizeT sz) {
+EXTERN_C Kernel::Void hal_kernel_call_enter(Kernel::UIntPtr rcx_hash, Kernel::SizeT cnt,
+ Kernel::UIntPtr arg, Kernel::SizeT sz) {
hal_idt_send_eoi(51);
if (!Kernel::kRootUser) return;
diff --git a/dev/kernel/HALKit/AMD64/HalDescriptorLoader.cc b/dev/kernel/HALKit/AMD64/HalDescriptorLoader.cc
index dc680ce8..56d46a15 100644
--- a/dev/kernel/HALKit/AMD64/HalDescriptorLoader.cc
+++ b/dev/kernel/HALKit/AMD64/HalDescriptorLoader.cc
@@ -30,10 +30,11 @@ Void IDTLoader::Load(Register64& idt) {
volatile UIntPtr** ptr_ivt = (volatile UIntPtr**) idt.Base;
for (SizeT idt_indx = 0; idt_indx < kKernelIdtSize; ++idt_indx) {
- Detail::kInterruptVectorTable[idt_indx].Selector = kIDTSelector;
- Detail::kInterruptVectorTable[idt_indx].Ist = 0;
- Detail::kInterruptVectorTable[idt_indx].TypeAttributes = kKernelInterruptId ? kUserInterruptGate : kInterruptGate;
- Detail::kInterruptVectorTable[idt_indx].OffsetLow = ((UIntPtr) ptr_ivt[idt_indx] & 0xFFFF);
+ Detail::kInterruptVectorTable[idt_indx].Selector = kIDTSelector;
+ Detail::kInterruptVectorTable[idt_indx].Ist = 0;
+ Detail::kInterruptVectorTable[idt_indx].TypeAttributes =
+ kKernelInterruptId ? kUserInterruptGate : kInterruptGate;
+ Detail::kInterruptVectorTable[idt_indx].OffsetLow = ((UIntPtr) ptr_ivt[idt_indx] & 0xFFFF);
Detail::kInterruptVectorTable[idt_indx].OffsetMid =
(((UIntPtr) ptr_ivt[idt_indx] >> 16) & 0xFFFF);
Detail::kInterruptVectorTable[idt_indx].OffsetHigh =
diff --git a/dev/kernel/HALKit/ARM64/HalCoreInterruptHandler.cc b/dev/kernel/HALKit/ARM64/HalCoreInterruptHandler.cc
index 4c02e8cc..0c26f4cb 100644
--- a/dev/kernel/HALKit/ARM64/HalCoreInterruptHandler.cc
+++ b/dev/kernel/HALKit/ARM64/HalCoreInterruptHandler.cc
@@ -143,8 +143,8 @@ EXTERN_C Kernel::Void hal_system_call_enter(Kernel::UIntPtr rcx_hash,
/// @brief Enter Kernel call from assembly (libDDK only).
/// @param stack the stack pushed from assembly routine.
/// @return nothing.
-EXTERN_C Kernel::Void hal_kernel_call_enter(Kernel::UIntPtr rcx_hash,
- Kernel::SizeT cnt, Kernel::UIntPtr arg, Kernel::SizeT sz) {
+EXTERN_C Kernel::Void hal_kernel_call_enter(Kernel::UIntPtr rcx_hash, Kernel::SizeT cnt,
+ Kernel::UIntPtr arg, Kernel::SizeT sz) {
if (!Kernel::kRootUser) return;
if (Kernel::kCurrentUser != Kernel::kRootUser) return;
if (!Kernel::kCurrentUser->IsSuperUser()) return;