From 96d2ebd97728e1991cfc4f218dcf196a2b8b6662 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Lov=C3=A9n?= Date: Tue, 13 Feb 2018 12:46:36 +0100 Subject: [PATCH] Collect the cpu specific stuff --- src/kernel/boot/kmain.c | 4 ++-- src/kernel/cpu/cpu.c | 7 +++++++ src/kernel/{interrupts/idt.c => cpu/interrupts.c} | 0 src/kernel/{interrupts/idt.tt => cpu/interrupts.tt} | 2 +- src/kernel/{interrupts => cpu}/isr.S.py | 0 src/kernel/{interrupts => cpu}/isr_common.S | 0 src/kernel/include/cpu.h | 3 +++ 7 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 src/kernel/cpu/cpu.c rename src/kernel/{interrupts/idt.c => cpu/interrupts.c} (100%) rename src/kernel/{interrupts/idt.tt => cpu/interrupts.tt} (96%) rename src/kernel/{interrupts => cpu}/isr.S.py (100%) rename src/kernel/{interrupts => cpu}/isr_common.S (100%) create mode 100644 src/kernel/include/cpu.h diff --git a/src/kernel/boot/kmain.c b/src/kernel/boot/kmain.c index 605afd1..13f9d1a 100644 --- a/src/kernel/boot/kmain.c +++ b/src/kernel/boot/kmain.c @@ -3,7 +3,7 @@ #include #include #include -#include +#include void kmain(uint64_t multiboot_magic, void *multiboot_data) { @@ -15,7 +15,7 @@ void kmain(uint64_t multiboot_magic, void *multiboot_data) debug_info("Kernel was loaded with command line \"%s\", by <%s>\n", kernel_boot_data.commandline, kernel_boot_data.bootloader); - interrupt_init(); + cpu_init(); // Force a divide by zero exception // ISR 0 diff --git a/src/kernel/cpu/cpu.c b/src/kernel/cpu/cpu.c new file mode 100644 index 0000000..9bcafe0 --- /dev/null +++ b/src/kernel/cpu/cpu.c @@ -0,0 +1,7 @@ +#include +#include + +void cpu_init() +{ + interrupt_init(); +} diff --git a/src/kernel/interrupts/idt.c b/src/kernel/cpu/interrupts.c similarity index 100% rename from src/kernel/interrupts/idt.c rename to src/kernel/cpu/interrupts.c diff --git a/src/kernel/interrupts/idt.tt b/src/kernel/cpu/interrupts.tt similarity index 96% rename from src/kernel/interrupts/idt.tt rename to src/kernel/cpu/interrupts.tt index 98b6f9b..1ef4501 100644 --- a/src/kernel/interrupts/idt.tt +++ b/src/kernel/cpu/interrupts.tt @@ -3,7 +3,7 @@ #include #undef debug #define debug(...) -#include "idt.c" +#include "interrupts.c" uintptr_t isr_table[] ={}; void load_idt(struct idtr *_) diff --git a/src/kernel/interrupts/isr.S.py b/src/kernel/cpu/isr.S.py similarity index 100% rename from src/kernel/interrupts/isr.S.py rename to src/kernel/cpu/isr.S.py diff --git a/src/kernel/interrupts/isr_common.S b/src/kernel/cpu/isr_common.S similarity index 100% rename from src/kernel/interrupts/isr_common.S rename to src/kernel/cpu/isr_common.S diff --git a/src/kernel/include/cpu.h b/src/kernel/include/cpu.h new file mode 100644 index 0000000..bae8a75 --- /dev/null +++ b/src/kernel/include/cpu.h @@ -0,0 +1,3 @@ +#pragma once + +void cpu_init();