diff options
Diffstat (limited to 'i386/i386/irq.c')
-rw-r--r-- | i386/i386/irq.c | 9 |
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 }; |