cpu: move apic to x86_64
This commit is contained in:
parent
edbb5d106d
commit
033d85bd2f
9 changed files with 15 additions and 9 deletions
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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 (;;) {
|
||||||
|
|
|
@ -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)))
|
||||||
|
|
|
@ -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"
|
|
@ -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>
|
||||||
|
|
|
@ -42,8 +42,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();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue