summaryrefslogtreecommitdiffhomepage
path: root/Private/HALKit/AMD64/HalCoreInterruptHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Private/HALKit/AMD64/HalCoreInterruptHandler.cpp')
-rw-r--r--Private/HALKit/AMD64/HalCoreInterruptHandler.cpp27
1 files changed, 6 insertions, 21 deletions
diff --git a/Private/HALKit/AMD64/HalCoreInterruptHandler.cpp b/Private/HALKit/AMD64/HalCoreInterruptHandler.cpp
index b161f1db..5a353b6e 100644
--- a/Private/HALKit/AMD64/HalCoreInterruptHandler.cpp
+++ b/Private/HALKit/AMD64/HalCoreInterruptHandler.cpp
@@ -33,9 +33,9 @@ static const char* kExceptionMessage[32] = {
"Machine check",
"Reserved",
"Reserved",
- "System Process Switch Issued",
- "System was interrupted by kernel",
- "System hang by kernel",
+ "Reserved",
+ "Reserved",
+ "Reservedl",
"Reserved",
"Reserved",
"Reserved",
@@ -46,24 +46,9 @@ static const char* kExceptionMessage[32] = {
"Reserved",
};
-extern "C" HCore::UIntPtr rt_handle_interrupts(HCore::UIntPtr& rsp) {
- HCore::HAL::rt_cli();
-
- HCore::HAL::StackFramePtr sf = (HCore::HAL::StackFramePtr)rsp;
-
- if (sf->IntNum == 0x21) {
- rt_syscall_handle(sf);
- }
-
- if (sf->IntNum < 32) {
- HCore::kcout << "Exception:" << kExceptionMessage[sf->IntNum] << "\n";
- }
-
- if (sf->IntNum >= 40) HCore::HAL::Out8(0x20, 0x20); // ACK MASTER
-
- HCore::HAL::Out8(0xA0, 0x20); // ACK SLAVE
-
- HCore::HAL::rt_sti();
+/// @brief System call interrupt (like DOS and NT)
+#define kKernelSyscallInterrupt (0x21)
+EXTERN_C HCore::UIntPtr rt_handle_interrupts(HCore::UIntPtr rsp) {
return rsp;
}