diff options
| author | Amlal <amlalelmahrouss@icloud.com> | 2024-06-13 06:32:06 +0000 |
|---|---|---|
| committer | Amlal <amlalelmahrouss@icloud.com> | 2024-06-13 06:32:06 +0000 |
| commit | 36ff25861676cd1f5fb94b901fa59b015c614bc5 (patch) | |
| tree | 92d68c0e4ba1eeb0d608a917bfdc587909260e13 /Kernel/HALKit/AMD64/HalInterruptAPI.asm | |
| parent | 4e75e05a20ddd0dbca982e8f3bc2ea8043ed3a3f (diff) | |
| parent | a0b3442fe9978093326dc29d0938f1116eadd147 (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.asm | 52 |
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 |
