summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-05-24 10:59:49 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-05-24 10:59:49 +0200
commit386d9a5bffcd66633e4c3c72eb6cb25722796c92 (patch)
tree438158dbf0856bf2563cdc9e4b183e290f4bb03a /dev/kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc
parente89d4a1402bdd32b8ad7e2ed04278b7ad54740c3 (diff)
feat(kernel): Better syscall routing, also added new tools.
what: - ping, manual have been added. - Rework RtlCurrentPID to SchedGetCurrentProcessID. - Cleanup codebase overall. Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc')
-rw-r--r--dev/kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc8
1 files changed, 3 insertions, 5 deletions
diff --git a/dev/kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc b/dev/kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc
index 54a79571..b70cd51f 100644
--- a/dev/kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc
+++ b/dev/kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc
@@ -19,15 +19,13 @@ STATIC BOOL kIsRunning = NO;
/// @note
STATIC void hal_idt_send_eoi(UInt8 vector) {
((volatile UInt32*) kApicBaseAddress)[0xB0 / 4] = 0;
-
+
if (vector >= kPICCommand && vector <= 0x2F) {
if (vector >= 0x28) {
Kernel::HAL::rt_out8(kPIC2Command, kPICCommand);
}
Kernel::HAL::rt_out8(kPICCommand, kPICCommand);
}
-
- kIsRunning = NO;
}
/// @brief Handle GPF fault.
@@ -58,6 +56,8 @@ EXTERN_C void idt_handle_pf(Kernel::UIntPtr rsp) {
/// @brief Handle scheduler interrupt.
EXTERN_C void idt_handle_scheduler(Kernel::UIntPtr rsp) {
+ NE_UNUSED(rsp);
+
hal_idt_send_eoi(32);
while (kIsRunning)
@@ -65,7 +65,6 @@ EXTERN_C void idt_handle_scheduler(Kernel::UIntPtr rsp) {
kIsRunning = YES;
- NE_UNUSED(rsp);
Kernel::UserProcessHelper::StartScheduling();
kIsRunning = NO;
@@ -82,7 +81,6 @@ EXTERN_C void idt_handle_math(Kernel::UIntPtr rsp) {
process.Leak().Signal.SignalArg = rsp;
process.Leak().Signal.SignalID = SIGKILL;
process.Leak().Signal.Status = process.Leak().Status;
-
}
/// @brief Handle any generic fault.