ints.s (1051B)
1 .macro isr_no_err_stub num 2 .global isr_stub_\num 3 4 isr_stub_\num: 5 pushl $0 6 pushl $\num 7 jmp isr_common_stub 8 .endm 9 10 .macro isr_err_stub num 11 .global isr_stub_\num 12 13 isr_stub_\num: 14 pushl $\num /* interrupt number */ 15 jmp isr_common_stub 16 .endm 17 18 isr_common_stub: 19 pusha 20 21 movw %ds, %ax 22 pushl %eax 23 24 movw $0x10, %ax 25 movw %ax, %ds 26 movw %ax, %es 27 28 call excp_handler 29 30 popl %eax 31 movw %ax, %ds 32 movw %ax, %es 33 34 popa 35 addl $8, %esp 36 iret 37 38 isr_no_err_stub 0 39 isr_no_err_stub 1 40 isr_no_err_stub 2 41 isr_no_err_stub 3 42 isr_no_err_stub 4 43 isr_no_err_stub 5 44 isr_no_err_stub 6 45 isr_no_err_stub 7 46 isr_err_stub 8 47 isr_no_err_stub 9 48 isr_err_stub 10 49 isr_err_stub 11 50 isr_err_stub 12 51 isr_err_stub 13 52 isr_err_stub 14 53 isr_no_err_stub 15 54 isr_no_err_stub 16 55 isr_err_stub 17 56 isr_no_err_stub 18 57 isr_no_err_stub 19 58 isr_no_err_stub 20 59 isr_no_err_stub 21 60 isr_no_err_stub 22 61 isr_no_err_stub 23 62 isr_no_err_stub 24 63 isr_no_err_stub 25 64 isr_no_err_stub 26 65 isr_no_err_stub 27 66 isr_no_err_stub 28 67 isr_no_err_stub 29 68 isr_err_stub 30 69 isr_no_err_stub 31