Compare commits

...

2 commits

Author SHA1 Message Date
3c09d65774 main: remove references to APIC 2025-06-02 21:06:37 +02:00
033d85bd2f cpu: move apic to x86_64 2025-06-02 21:05:51 +02:00
9 changed files with 15 additions and 11 deletions

View file

@ -25,6 +25,9 @@ void cpu_init_smp();
// Initialize the CPU's timer // Initialize the CPU's timer
void cpu_init_timer(); void cpu_init_timer();
// Initialize the APIC.
void cpu_init_apic();
// Enable/disable interrupts. // Enable/disable interrupts.
void cpu_enable_ints(int enabled); void cpu_enable_ints(int enabled);

View file

@ -7,6 +7,8 @@
#if defined (__x86_64__) #if defined (__x86_64__)
#include "arch/x86_64/lapic.h"
#include "arch/x86_64/ioapic.h"
#include <arch/x86_64/gdt.h> #include <arch/x86_64/gdt.h>
#include <arch/x86_64/idt.h> #include <arch/x86_64/idt.h>
#include <arch/cpu.h> #include <arch/cpu.h>
@ -33,6 +35,11 @@ void cpu_enable_ints(int enabled) {
if (enabled) asm("sti"); else asm("cli"); if (enabled) asm("sti"); else asm("cli");
} }
void cpu_init_apic() {
lapic_init();
ioapic_init();
}
void hcf() { void hcf() {
asm ("cli"); asm ("cli");
for (;;) { for (;;) {

View file

@ -5,7 +5,6 @@
* idt.c - x86_64 Interrupt Descriptor Table implementation. * idt.c - x86_64 Interrupt Descriptor Table implementation.
*/ */
#include "dev/lapic.h"
#if defined(__x86_64__) #if defined(__x86_64__)
#include <stdint.h> #include <stdint.h>
@ -13,7 +12,8 @@
#include <arch/cpu.h> #include <arch/cpu.h>
#include <arch/x86_64/idt.h> #include <arch/x86_64/idt.h>
#include <arch/x86_64/smp.h> #include <arch/x86_64/smp.h>
#include <dev/ioapic.h> #include <arch/x86_64/ioapic.h>
#include "arch/x86_64/lapic.h"
#include <lib/log.h> #include <lib/log.h>
__attribute__((aligned(0x10))) __attribute__((aligned(0x10)))

View file

@ -5,7 +5,7 @@
* lapic.c - Local APIC implementation. * lapic.c - Local APIC implementation.
*/ */
#include "dev/lapic.h" #include "arch/x86_64/lapic.h"
#include "arch/x86_64/idt.h" #include "arch/x86_64/idt.h"
#include "lib/log.h" #include "lib/log.h"
#include "mm/pmm.h" #include "mm/pmm.h"

View file

@ -6,10 +6,6 @@
*/ */
#include "arch/cpu.h" #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 <boot/limine.h> #include <boot/limine.h>
#include <deps/limine.h> #include <deps/limine.h>
#include <lib/log.h> #include <lib/log.h>

View file

@ -21,8 +21,6 @@
#include <mm/memop.h> #include <mm/memop.h>
#include <mm/pmm.h> #include <mm/pmm.h>
#include "arch/x86_64/smp.h" #include "arch/x86_64/smp.h"
#include "dev/ioapic.h"
#include "dev/lapic.h"
#include "mm/paging.h" #include "mm/paging.h"
#include "mm/vma.h" #include "mm/vma.h"
@ -42,8 +40,8 @@ void kmain(void) {
acpi_init(); acpi_init();
madt_init(); madt_init();
lapic_init();
ioapic_init(); cpu_init_apic();
cpu_init_smp(); cpu_init_smp();
cpu_init_timer(); cpu_init_timer();