summaryrefslogtreecommitdiffhomepage
path: root/Kernel/HALKit/AMD64/HalInterruptAPI.asm
diff options
context:
space:
mode:
authorAmlal <amlalelmahrouss@icloud.com>2024-06-13 06:32:06 +0000
committerAmlal <amlalelmahrouss@icloud.com>2024-06-13 06:32:06 +0000
commit36ff25861676cd1f5fb94b901fa59b015c614bc5 (patch)
tree92d68c0e4ba1eeb0d608a917bfdc587909260e13 /Kernel/HALKit/AMD64/HalInterruptAPI.asm
parent4e75e05a20ddd0dbca982e8f3bc2ea8043ed3a3f (diff)
parenta0b3442fe9978093326dc29d0938f1116eadd147 (diff)
Merged in MHR-23 (pull request #15)
MHR-23
Diffstat (limited to 'Kernel/HALKit/AMD64/HalInterruptAPI.asm')
-rw-r--r--Kernel/HALKit/AMD64/HalInterruptAPI.asm52
1 files changed, 47 insertions, 5 deletions
diff --git a/Kernel/HALKit/AMD64/HalInterruptAPI.asm b/Kernel/HALKit/AMD64/HalInterruptAPI.asm
index 875a1abc..ef5a8319 100644
--- a/Kernel/HALKit/AMD64/HalInterruptAPI.asm
+++ b/Kernel/HALKit/AMD64/HalInterruptAPI.asm
@@ -1,7 +1,7 @@
;; /*
;; * ---------------------------------------------------
;; *
-;; * Copyright SoftwareLabs, all rights reserved.
+;; * Copyright Zeta Electronics Corporation, all rights reserved.
;; *
;; * File: HalInterruptAPI.asm
;; * Purpose: Interrupt routing, redirect raw interrupts into their handlers.
@@ -14,7 +14,7 @@
%define kInterruptId 0x21
%macro IntExp 1
-global __NEW_INT_%1
+global __NEW_INT_%1
__NEW_INT_%1:
cld
@@ -22,7 +22,7 @@ __NEW_INT_%1:
%endmacro
%macro IntNormal 1
-global __NEW_INT_%1
+global __NEW_INT_%1
__NEW_INT_%1:
cld
@@ -100,7 +100,7 @@ __NEW_INT_14:
sti
iretq
-
+
IntNormal 15
IntNormal 16
IntExp 17
@@ -120,7 +120,49 @@ IntExp 30
IntNormal 31
-IntNormal 32
+[extern hal_apic_acknowledge]
+
+__NEW_INT_32:
+ push rax
+ push rcx
+ push rdx
+ push rbx
+ push rbp
+ push rsi
+ push rdi
+ push r8
+ push r9
+ push r10
+ push r11
+ push r12
+ push r13
+ push r14
+ push r15
+
+ jmp hal_apic_acknowledge
+
+ pop r15
+ pop r14
+ pop r13
+ pop r12
+ pop r11
+ pop r10
+ pop r9
+ pop r8
+ pop rdi
+ pop rsi
+ pop rbp
+ pop rbx
+ pop rdx
+ pop rcx
+ pop rax
+
+ mov eax, 0
+
+ ;; tell there local apic that we're done.
+ mov dword [0xFEE00000 + 0xB0], eax ; LAPIC_EOI
+
+ iretq
IntNormal 33