diff options
author | Damien Zammit <damien@zamaudio.com> | 2021-04-04 15:08:12 +1000 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2021-04-04 16:27:17 +0200 |
commit | 214866d58ac2bd1060132b250bf391a495110015 (patch) | |
tree | faa4509549a8d4b580b4b52e00162efd30d3f480 /i386/i386at/int_init.c | |
parent | 71db59f69602e54c33ba707c8e4a7a66f6c9ca0b (diff) | |
download | gnumach-214866d58ac2bd1060132b250bf391a495110015.tar.gz gnumach-214866d58ac2bd1060132b250bf391a495110015.tar.bz2 gnumach-214866d58ac2bd1060132b250bf391a495110015.zip |
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/i386at/int_init.c')
-rw-r--r-- | i386/i386at/int_init.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/i386/i386at/int_init.c b/i386/i386at/int_init.c index 43daad8b..6da627dd 100644 --- a/i386/i386at/int_init.c +++ b/i386/i386at/int_init.c @@ -30,10 +30,21 @@ extern vm_offset_t int_entry_table[]; void int_init(void) { int i; - - for (i = 0; i < 16; i++) +#ifndef APIC + for (i = 0; i < 16; i++) { fill_idt_gate(PIC_INT_BASE + i, int_entry_table[i], KERNEL_CS, ACC_PL_K|ACC_INTR_GATE, 0); + } +#else + for (i = 0; i < 24; i++) { + fill_idt_gate(IOAPIC_INT_BASE + i, + int_entry_table[i], KERNEL_CS, + ACC_PL_K|ACC_INTR_GATE, 0); + } + fill_idt_gate(IOAPIC_SPURIOUS_BASE, + int_entry_table[24], KERNEL_CS, + ACC_PL_K|ACC_INTR_GATE, 0); +#endif } |