summaryrefslogtreecommitdiff
path: root/i386/i386/irq.c
diff options
context:
space:
mode:
Diffstat (limited to 'i386/i386/irq.c')
-rw-r--r--i386/i386/irq.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/i386/i386/irq.c b/i386/i386/irq.c
index 35681191..42921617 100644
--- a/i386/i386/irq.c
+++ b/i386/i386/irq.c
@@ -29,7 +29,10 @@ extern queue_head_t main_intr_queue;
static void
irq_eoi (struct irqdev *dev, int id)
{
- /* TODO EOI(dev->irq[id]) */
+#ifdef APIC
+ ioapic_irq_eoi (dev->irq[id]);
+ lapic_eoi ();
+#endif
}
static unsigned int ndisabled_irq[NINTR];
@@ -62,6 +65,10 @@ __enable_irq (irq_t irq_nr)
struct irqdev irqtab = {
"irq", irq_eoi, &main_intr_queue, 0,
+#ifdef APIC
+ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23},
+#else
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
+#endif
};