summaryrefslogtreecommitdiff
path: root/src/hardware
diff options
context:
space:
mode:
Diffstat (limited to 'src/hardware')
-rw-r--r--src/hardware/interrupts.asm2
-rw-r--r--src/hardware/interrupts.c10
-rw-r--r--src/hardware/interrupts.h2
3 files changed, 13 insertions, 1 deletions
diff --git a/src/hardware/interrupts.asm b/src/hardware/interrupts.asm
index 95d33f9..a734898 100644
--- a/src/hardware/interrupts.asm
+++ b/src/hardware/interrupts.asm
@@ -60,6 +60,8 @@ interrupts_handle_irq_%1:
irq_stub 0x00
irq_stub 0x01
+irq_stub 0x09
+irq_stub 0x0A
irq_stub 0x0B
irq_stub 0x0C
diff --git a/src/hardware/interrupts.c b/src/hardware/interrupts.c
index 41433a5..faca1fd 100644
--- a/src/hardware/interrupts.c
+++ b/src/hardware/interrupts.c
@@ -109,7 +109,15 @@ void interrupts_init( interrupt_t *interrupt, uint16_t gdt_code_segment_selector
interrupts_register_interrupt_gate( interrupt, IRQ_BASE + 0x01, gdt_code_segment_selector,
&interrupts_handle_irq_0x01, KERNEL_RING, IDT_TYPE_INTERRUPT_GATE );
- // IRQ 11 - PCI, at the moment the RTL8139
+ // IRQ 9 - PCI peripheral
+ interrupts_register_interrupt_gate( interrupt, IRQ_BASE + 0x09, gdt_code_segment_selector,
+ &interrupts_handle_irq_0x09, KERNEL_RING, IDT_TYPE_INTERRUPT_GATE );
+
+ // IRQ 10 - PCI peripheral
+ interrupts_register_interrupt_gate( interrupt, IRQ_BASE + 0x0A, gdt_code_segment_selector,
+ &interrupts_handle_irq_0x0A, KERNEL_RING, IDT_TYPE_INTERRUPT_GATE );
+
+ // IRQ 11 - PCI peripheral
interrupts_register_interrupt_gate( interrupt, IRQ_BASE + 0x0B, gdt_code_segment_selector,
&interrupts_handle_irq_0x0B, KERNEL_RING, IDT_TYPE_INTERRUPT_GATE );
diff --git a/src/hardware/interrupts.h b/src/hardware/interrupts.h
index f93fa44..66f5d8e 100644
--- a/src/hardware/interrupts.h
+++ b/src/hardware/interrupts.h
@@ -103,6 +103,8 @@ void interrupts_ignore_request( );
void interrupts_handle_exception_0x00( );
void interrupts_handle_irq_0x00( );
void interrupts_handle_irq_0x01( );
+void interrupts_handle_irq_0x09( );
+void interrupts_handle_irq_0x0A( );
void interrupts_handle_irq_0x0B( );
void interrupts_handle_irq_0x0C( );