Files
RockOS/kernel/idt_stubs.S

48 lines
881 B
ArmAsm
Raw Normal View History

2026-06-11 23:23:39 -05:00
.code32
.macro ISR_NOERRCODE num
.global isr\num
isr\num:
pushl $0
pushl $\num
jmp isr_common_stub
.endm
.macro ISR_ERRCODE num
.global isr\num
isr\num:
pushl $\num
jmp isr_common_stub
.endm
.extern common_interrupt_handler
isr_common_stub:
pushal
pushl %esp
call common_interrupt_handler
addl $4, %esp
popal
addl $8, %esp
iret
.extern idtr
.global load_idt
load_idt:
lidt idtr
ret
.global enable_int
enable_int:
sti
ret
ISR_NOERRCODE 0 # Divide by Zero
ISR_NOERRCODE 1 # Debug
ISR_ERRCODE 8 # Double Fault (Has Error Code!)
ISR_ERRCODE 13 # General Protection Fault (Has Error Code!)
ISR_ERRCODE 14 # Page Fault (Has Error Code!)
ISR_NOERRCODE 32 # IRQ0 - Timer
ISR_NOERRCODE 33 # IRQ1 - Keyboard