From 5f6549b7d46118ba416faa170ff088d98c9144f0 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Wed, 10 Jul 2024 01:13:08 +0200 Subject: 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 --- Kernel/HALKit/AMD64/HalInterruptAPI.asm | 45 ++++++--------------------------- 1 file changed, 8 insertions(+), 37 deletions(-) (limited to 'Kernel/HALKit/AMD64/HalInterruptAPI.asm') 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 -- cgit v1.2.3