blob: 1d16392c42172562d5c54166a351a7f8b3bd8a0b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
.extern irq_handler
irq_stub:
pusha
push %ds
push %es
push %fs
push %gs
mov $0x10, %ax
mov %ax, %ds
mov %ax, %es
mov %ax, %fs
mov %ax, %gs
mov %esp, %eax # push the stack
push %eax
mov $irq_handler, %eax
call *%eax
pop %eax
pop %gs
pop %fs
pop %es
pop %ds
popa
addl $8, %esp
iret
.global _irq0
.global _irq1
.global _irq2
.global _irq3
.global _irq4
.global _irq5
.global _irq6
.global _irq7
.global _irq8
.global _irq9
.global _irq10
.global _irq11
.global _irq12
.global _irq13
.global _irq14
.global _irq15
.global _int0x80
_irq0:
cli
pushl $0
pushl $32
jmp irq_stub
_irq1:
cli
pushl $0
pushl $33
jmp irq_stub
_irq2:
cli
pushl $0
pushl $34
jmp irq_stub
_irq3:
cli
pushl $0
pushl $35
jmp irq_stub
_irq4:
cli
pushl $0
pushl $36
jmp irq_stub
_irq5:
cli
pushl $0
pushl $37
jmp irq_stub
_irq6:
cli
pushl $0
pushl $38
jmp irq_stub
_irq7:
cli
pushl $0
pushl $39
jmp irq_stub
_irq8:
cli
pushl $0
pushl $40
jmp irq_stub
_irq9:
cli
pushl $0
pushl $41
jmp irq_stub
_irq10:
cli
pushl $0
pushl $42
jmp irq_stub
_irq11:
cli
pushl $0
pushl $43
jmp irq_stub
_irq12:
cli
pushl $0
pushl $44
jmp irq_stub
_irq13:
cli
pushl $0
pushl $45
jmp irq_stub
_irq14:
cli
pushl $0
pushl $46
jmp irq_stub
_irq15:
cli
pushl $0
pushl $47
jmp irq_stub
_int0x80:
cli
pushl $0
pushl $0x80
jmp irq_stub
|