diff options
| author | Amlal El Mahrouss <amlalelmahrouss@icloud.com> | 2024-02-27 21:57:04 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlalelmahrouss@icloud.com> | 2024-02-27 21:57:04 +0100 |
| commit | 2cf9f370d40a5c6512530c600292c5fac0410e11 (patch) | |
| tree | 964a997e4ba3285aac8e1ffde3d91bf7fefc7c36 /Private/HALKit/AMD64/HalCoreInterruptHandler.cpp | |
| parent | 9b67443fe423bf6d84725183697a040e12296bce (diff) | |
Kernel: remove SFN, hanging interrupts and COM1 logging.
Signed-off-by: Amlal El Mahrouss <amlalelmahrouss@icloud.com>
Diffstat (limited to 'Private/HALKit/AMD64/HalCoreInterruptHandler.cpp')
| -rw-r--r-- | Private/HALKit/AMD64/HalCoreInterruptHandler.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/Private/HALKit/AMD64/HalCoreInterruptHandler.cpp b/Private/HALKit/AMD64/HalCoreInterruptHandler.cpp index eb81532d..0b3af515 100644 --- a/Private/HALKit/AMD64/HalCoreInterruptHandler.cpp +++ b/Private/HALKit/AMD64/HalCoreInterruptHandler.cpp @@ -35,7 +35,7 @@ static const char* kExceptionMessages[32] = { "Reserved", "Reserved", "Reserved", - "Reservedl", + "Reserved", "Reserved", "Reserved", "Reserved", @@ -49,16 +49,24 @@ static const char* kExceptionMessages[32] = { /// @brief System call interrupt (like DOS and NT) #define kKernelSyscallInterrupt (0x21) -EXTERN_C HCore::UIntPtr rt_handle_interrupts(HCore::UIntPtr &rsp) { - HCore::HAL::StackFramePtr sf = (HCore::HAL::StackFramePtr)rsp; +extern "C" { - if (sf->IntNum < 32) { +HCore::UIntPtr rt_handle_interrupts(HCore::HAL::StackFramePtr sf) { + HCore::HAL::rt_cli(); + if (sf->IntNum < 32) { } else if (sf->IntNum == 0x21) { - } - return rsp; -} + if ((sf->IntNum - 32) >= 12) { + HCore::HAL::Out8(0xA0, 0x20); + } + + HCore::HAL::Out8(0x20, 0x20); + HCore::HAL::rt_sti(); + + return (HCore::UIntPtr)sf; +} +}
\ No newline at end of file |
