git://scm.lunaixsky.com
/
lunaix-os.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
10fa393ace27c0a643d0cc3f07ba2619b3839444
[lunaix-os.git]
/
lunaix-os
/
kernel
/
asm
/
x86
/
interrupt.S
1
.macro isr_template vector, no_error_code=1
2
.global _asm_isr\vector
3
.type _asm_isr\vector, @function
4
_asm_isr\vector:
5
.if \no_error_code
6
pushl $0x0
7
.endif
8
pushl $\vector
9
jmp interrupt_wrapper
10
.endm
11
12
.section .text
13
isr_template 0
14
isr_template 13, no_error_code=0
15
isr_template 14, no_error_code=0
16
17
interrupt_wrapper:
18
19
movl %esp, %eax
20
andl $0xfffffff0, %esp
21
subl $16, %esp
22
movl %eax, (%esp)
23
24
call interrupt_handler
25
pop %eax
26
movl %eax, %esp
27
addl $8, %esp
28
29
iret