diff --git a/kernel/src/arch/cpu.h b/kernel/src/arch/cpu.h index bb197f9..df89abf 100755 --- a/kernel/src/arch/cpu.h +++ b/kernel/src/arch/cpu.h @@ -25,9 +25,6 @@ void cpu_init_smp(); // Initialize the CPU's timer void cpu_init_timer(); -// Initialize the APIC. -void cpu_init_apic(); - // Enable/disable interrupts. void cpu_enable_ints(int enabled); diff --git a/kernel/src/arch/x86_64/cpu.c b/kernel/src/arch/x86_64/cpu.c index 7a48f09..d1707c6 100755 --- a/kernel/src/arch/x86_64/cpu.c +++ b/kernel/src/arch/x86_64/cpu.c @@ -7,8 +7,6 @@ #if defined (__x86_64__) -#include "arch/x86_64/lapic.h" -#include "arch/x86_64/ioapic.h" #include #include #include @@ -35,11 +33,6 @@ void cpu_enable_ints(int enabled) { if (enabled) asm("sti"); else asm("cli"); } -void cpu_init_apic() { - lapic_init(); - ioapic_init(); -} - void hcf() { asm ("cli"); for (;;) { diff --git a/kernel/src/arch/x86_64/idt.c b/kernel/src/arch/x86_64/idt.c index e14ffd4..a3c918c 100755 --- a/kernel/src/arch/x86_64/idt.c +++ b/kernel/src/arch/x86_64/idt.c @@ -5,6 +5,7 @@ * idt.c - x86_64 Interrupt Descriptor Table implementation. */ +#include "dev/lapic.h" #if defined(__x86_64__) #include @@ -12,8 +13,7 @@ #include #include #include -#include -#include "arch/x86_64/lapic.h" +#include #include __attribute__((aligned(0x10))) diff --git a/kernel/src/arch/x86_64/smp.c b/kernel/src/arch/x86_64/smp.c index 7e92c8a..50cea7f 100755 --- a/kernel/src/arch/x86_64/smp.c +++ b/kernel/src/arch/x86_64/smp.c @@ -6,6 +6,10 @@ */ #include "arch/cpu.h" +#include "arch/x86_64/gdt.h" +#include "arch/x86_64/idt.h" +#include "dev/lapic.h" +#include "mm/paging.h" #include #include #include diff --git a/kernel/src/arch/x86_64/ioapic.c b/kernel/src/dev/ioapic.c similarity index 100% rename from kernel/src/arch/x86_64/ioapic.c rename to kernel/src/dev/ioapic.c diff --git a/kernel/src/arch/x86_64/ioapic.h b/kernel/src/dev/ioapic.h similarity index 100% rename from kernel/src/arch/x86_64/ioapic.h rename to kernel/src/dev/ioapic.h diff --git a/kernel/src/arch/x86_64/lapic.c b/kernel/src/dev/lapic.c similarity index 97% rename from kernel/src/arch/x86_64/lapic.c rename to kernel/src/dev/lapic.c index f1d2bc2..7e00f78 100755 --- a/kernel/src/arch/x86_64/lapic.c +++ b/kernel/src/dev/lapic.c @@ -5,7 +5,7 @@ * lapic.c - Local APIC implementation. */ -#include "arch/x86_64/lapic.h" +#include "dev/lapic.h" #include "arch/x86_64/idt.h" #include "lib/log.h" #include "mm/pmm.h" diff --git a/kernel/src/arch/x86_64/lapic.h b/kernel/src/dev/lapic.h similarity index 100% rename from kernel/src/arch/x86_64/lapic.h rename to kernel/src/dev/lapic.h diff --git a/kernel/src/main.c b/kernel/src/main.c index 9d7b627..a8345ec 100755 --- a/kernel/src/main.c +++ b/kernel/src/main.c @@ -21,6 +21,8 @@ #include #include #include "arch/x86_64/smp.h" +#include "dev/ioapic.h" +#include "dev/lapic.h" #include "mm/paging.h" #include "mm/vma.h" @@ -40,8 +42,8 @@ void kmain(void) { acpi_init(); madt_init(); - - cpu_init_apic(); + lapic_init(); + ioapic_init(); cpu_init_smp(); cpu_init_timer();