Compare commits
No commits in common. "3c09d65774024ee53f1640771ac8b186c4a9d1e7" and "edbb5d106df45b7b949abe5b6848076c5a35c8cc" have entirely different histories.
3c09d65774
...
edbb5d106d
9 changed files with 11 additions and 15 deletions
|
@ -25,9 +25,6 @@ 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,8 +7,6 @@
|
||||||
|
|
||||||
#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>
|
||||||
|
@ -35,11 +33,6 @@ 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,6 +5,7 @@
|
||||||
* 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>
|
||||||
|
@ -12,8 +13,7 @@
|
||||||
#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 <arch/x86_64/ioapic.h>
|
#include <dev/ioapic.h>
|
||||||
#include "arch/x86_64/lapic.h"
|
|
||||||
#include <lib/log.h>
|
#include <lib/log.h>
|
||||||
|
|
||||||
__attribute__((aligned(0x10)))
|
__attribute__((aligned(0x10)))
|
||||||
|
|
|
@ -6,6 +6,10 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#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>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
* lapic.c - Local APIC implementation.
|
* lapic.c - Local APIC implementation.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "arch/x86_64/lapic.h"
|
#include "dev/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"
|
|
@ -21,6 +21,8 @@
|
||||||
#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"
|
||||||
|
|
||||||
|
@ -40,8 +42,8 @@ void kmain(void) {
|
||||||
|
|
||||||
acpi_init();
|
acpi_init();
|
||||||
madt_init();
|
madt_init();
|
||||||
|
lapic_init();
|
||||||
cpu_init_apic();
|
ioapic_init();
|
||||||
cpu_init_smp();
|
cpu_init_smp();
|
||||||
cpu_init_timer();
|
cpu_init_timer();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue