diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-05-24 10:59:49 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-05-24 10:59:49 +0200 |
| commit | 386d9a5bffcd66633e4c3c72eb6cb25722796c92 (patch) | |
| tree | 438158dbf0856bf2563cdc9e4b183e290f4bb03a /dev/kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cc | |
| parent | e89d4a1402bdd32b8ad7e2ed04278b7ad54740c3 (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.cc | 8 |
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. |
