.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 ISR_NOERRCODE 46 # IRQ14 ISR_NOERRCODE 47 # IRQ15