summaryrefslogtreecommitdiffhomepage
path: root/Kernel/HALKit/AMD64/HalInterruptAPI.asm
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-07-10 01:13:08 +0200
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-07-10 01:13:08 +0200
commit5f6549b7d46118ba416faa170ff088d98c9144f0 (patch)
tree23d19bc039a547f27275065d96c52551d8ca989f /Kernel/HALKit/AMD64/HalInterruptAPI.asm
parentdfaf137915094e7ba72f7d7f1f57dc5158d1b6ab (diff)
MHR-36: See below.
- Implement MSR functions has_msr, get_msr, set_msr. - Moved SMP interrupt to interrupt 34 in AMD64. - Fix syntax error in STB.hxx. Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'Kernel/HALKit/AMD64/HalInterruptAPI.asm')
-rw-r--r--Kernel/HALKit/AMD64/HalInterruptAPI.asm45
1 files changed, 8 insertions, 37 deletions
diff --git a/Kernel/HALKit/AMD64/HalInterruptAPI.asm b/Kernel/HALKit/AMD64/HalInterruptAPI.asm
index 016c9cd8..4e9ace6f 100644
--- a/Kernel/HALKit/AMD64/HalInterruptAPI.asm
+++ b/Kernel/HALKit/AMD64/HalInterruptAPI.asm
@@ -121,53 +121,24 @@ IntNormal 31
[extern hal_apic_acknowledge]
-__NEW_INT_32:
+%define cAPICAddress 0xFEE00000
+
+__NEW_INT_34:
;; make this active, SMP works again.
-%if 0
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
+ call hal_apic_acknowledge
pop rax
mov rax, 0
;; tell there local apic that we're done.
- mov [0xFEE00000 + 0xB0], rax ; LAPIC_EOI
-%endif
+ mov [cAPICAddress + 0xB0], rax ; send end of interrupt.
+
iretq
-IntNormal 33
+IntNormal 32
-IntNormal 34
+IntNormal 33
IntNormal 35
IntNormal 36
IntNormal 37