aboutsummaryrefslogtreecommitdiff
path: root/src/interrupts
diff options
context:
space:
mode:
Diffstat (limited to 'src/interrupts')
-rw-r--r--src/interrupts/irq.asm157
-rw-r--r--src/interrupts/isr.asm158
2 files changed, 157 insertions, 158 deletions
diff --git a/src/interrupts/irq.asm b/src/interrupts/irq.asm
new file mode 100644
index 0000000..c485613
--- /dev/null
+++ b/src/interrupts/irq.asm
@@ -0,0 +1,157 @@
+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
+
+; 32: IRQ0
+irq0:
+ cli
+ push byte 0
+ push byte 32
+ jmp irq_common_stub
+
+; 33: IRQ1
+irq1:
+ cli
+ push byte 0
+ push byte 33
+ jmp irq_common_stub
+
+; 34: IRQ2
+irq2:
+ cli
+ push byte 0
+ push byte 34
+ jmp irq_common_stub
+
+; 35: IRQ3
+irq3:
+ cli
+ push byte 0
+ push byte 35
+ jmp irq_common_stub
+
+; 36: IRQ4
+irq4:
+ cli
+ push byte 0
+ push byte 36
+ jmp irq_common_stub
+
+; 37: IRQ5
+irq5:
+ cli
+ push byte 0
+ push byte 37
+ jmp irq_common_stub
+
+; 38: IRQ6
+irq6:
+ cli
+ push byte 0
+ push byte 38
+ jmp irq_common_stub
+
+; 39: IRQ7
+irq7:
+ cli
+ push byte 0
+ push byte 39
+ jmp irq_common_stub
+
+; 40: IRQ8
+irq8:
+ cli
+ push byte 0
+ push byte 40
+ jmp irq_common_stub
+
+; 41: IRQ9
+irq9:
+ cli
+ push byte 0
+ push byte 41
+ jmp irq_common_stub
+
+; 42: IRQ10
+irq10:
+ cli
+ push byte 0
+ push byte 42
+ jmp irq_common_stub
+
+; 43: IRQ11
+irq11:
+ cli
+ push byte 0
+ push byte 43
+ jmp irq_common_stub
+
+; 44: IRQ12
+irq12:
+ cli
+ push byte 0
+ push byte 44
+ jmp irq_common_stub
+
+; 45: IRQ13
+irq13:
+ cli
+ push byte 0
+ push byte 45
+ jmp irq_common_stub
+
+; 46: IRQ14
+irq14:
+ cli
+ push byte 0
+ push byte 46
+ jmp irq_common_stub
+
+; 47: IRQ15
+irq15:
+ cli
+ push byte 0
+ push byte 47
+ jmp irq_common_stub
+
+extern irq_handler
+
+irq_common_stub:
+ pusha
+ push ds
+ push es
+ push fs
+ push gs
+
+ mov ax, 0x10
+ mov ds, ax
+ mov es, ax
+ mov fs, ax
+ mov gs, ax
+ mov eax, esp
+
+ push eax
+ mov eax, irq_handler
+ call eax
+ pop eax
+
+ pop gs
+ pop fs
+ pop es
+ pop ds
+ popa
+ add esp, 8
+ iret
diff --git a/src/interrupts/isr.asm b/src/interrupts/isr.asm
index 713fecf..d99a3dc 100644
--- a/src/interrupts/isr.asm
+++ b/src/interrupts/isr.asm
@@ -276,161 +276,3 @@ isr_common_stub:
popa
add esp, 8
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
-
-; 32: IRQ0
-irq0:
- cli
- push byte 0
- push byte 32
- jmp irq_common_stub
-
-; 33: IRQ1
-irq1:
- cli
- push byte 0
- push byte 33
- jmp irq_common_stub
-
-; 34: IRQ2
-irq2:
- cli
- push byte 0
- push byte 34
- jmp irq_common_stub
-
-; 35: IRQ3
-irq3:
- cli
- push byte 0
- push byte 35
- jmp irq_common_stub
-
-; 36: IRQ4
-irq4:
- cli
- push byte 0
- push byte 36
- jmp irq_common_stub
-
-; 37: IRQ5
-irq5:
- cli
- push byte 0
- push byte 37
- jmp irq_common_stub
-
-; 38: IRQ6
-irq6:
- cli
- push byte 0
- push byte 38
- jmp irq_common_stub
-
-; 39: IRQ7
-irq7:
- cli
- push byte 0
- push byte 39
- jmp irq_common_stub
-
-; 40: IRQ8
-irq8:
- cli
- push byte 0
- push byte 40
- jmp irq_common_stub
-
-; 41: IRQ9
-irq9:
- cli
- push byte 0
- push byte 41
- jmp irq_common_stub
-
-; 42: IRQ10
-irq10:
- cli
- push byte 0
- push byte 42
- jmp irq_common_stub
-
-; 43: IRQ11
-irq11:
- cli
- push byte 0
- push byte 43
- jmp irq_common_stub
-
-; 44: IRQ12
-irq12:
- cli
- push byte 0
- push byte 44
- jmp irq_common_stub
-
-; 45: IRQ13
-irq13:
- cli
- push byte 0
- push byte 45
- jmp irq_common_stub
-
-; 46: IRQ14
-irq14:
- cli
- push byte 0
- push byte 46
- jmp irq_common_stub
-
-; 47: IRQ15
-irq15:
- cli
- push byte 0
- push byte 47
- jmp irq_common_stub
-
-extern irq_handler
-
-irq_common_stub:
- pusha
- push ds
- push es
- push fs
- push gs
-
- mov ax, 0x10
- mov ds, ax
- mov es, ax
- mov fs, ax
- mov gs, ax
- mov eax, esp
-
- push eax
- mov eax, irq_handler
- call eax
- pop eax
-
- pop gs
- pop fs
- pop es
- pop ds
- popa
- add esp, 8
- iret