summaryrefslogtreecommitdiff
path: root/i386/i386/irq.c
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2021-04-04 15:08:12 +1000
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2021-04-04 16:27:17 +0200
commit214866d58ac2bd1060132b250bf391a495110015 (patch)
treefaa4509549a8d4b580b4b52e00162efd30d3f480 /i386/i386/irq.c
parent71db59f69602e54c33ba707c8e4a7a66f6c9ca0b (diff)
Add ioapic support disabled by default
Use --enable-ncpus=x --enable-apic where x > 1 for SMP+APIC support. Use neither for no SMP and old PIC support. Message-Id: <20210404050812.145483-1-damien@zamaudio.com>
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
};