diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-06-12 14:42:29 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-06-12 14:42:29 +0200 |
| commit | 6a3b080067ff47f84c400987982cfa44927fe7e0 (patch) | |
| tree | 82351e411eccd00c0e4217f82e711a5cba75fd5a /Kernel/HALKit/AMD64/HalInterruptAPI.asm | |
| parent | 07c35bb2e8462b45feddcc98f3a512eee29c69b3 (diff) | |
MHR-23: SMP support inside kernel, need to add I/O for the scheduler
now.
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.asm | 50 |
1 files changed, 46 insertions, 4 deletions
diff --git a/Kernel/HALKit/AMD64/HalInterruptAPI.asm b/Kernel/HALKit/AMD64/HalInterruptAPI.asm index 074ba472..ef5a8319 100644 --- a/Kernel/HALKit/AMD64/HalInterruptAPI.asm +++ b/Kernel/HALKit/AMD64/HalInterruptAPI.asm @@ -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 |
