cpu: move apic to x86_64

This commit is contained in:
Raphaël M. 2025-06-02 21:05:51 +02:00
parent edbb5d106d
commit 033d85bd2f
9 changed files with 15 additions and 9 deletions

View file

@ -25,6 +25,9 @@ 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);

View file

@ -7,6 +7,8 @@
#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/idt.h>
#include <arch/cpu.h>
@ -33,6 +35,11 @@ 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 (;;) {

View file

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

View file

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

View file

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

View file

@ -42,8 +42,8 @@ void kmain(void) {
acpi_init();
madt_init();
lapic_init();
ioapic_init();
cpu_init_apic();
cpu_init_smp();
cpu_init_timer();