summaryrefslogtreecommitdiff
path: root/kernel/kernel.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/kernel.c')
-rw-r--r--kernel/kernel.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/kernel/kernel.c b/kernel/kernel.c
index e1076a9..67f1355 100644
--- a/kernel/kernel.c
+++ b/kernel/kernel.c
@@ -2,20 +2,25 @@
#include "kernel.h"
#include <stdint.h>
-#include <stddef.h>
+
+#include "driver/serial.h"
+#include "driver/timer.h"
+#include "driver/keyboard.h"
+#include "driver/mouse.h"
+
+#include "kernel/gdt.h"
+#include "kernel/scheduler.h"
#include "syscalls.h"
#include "types.h"
#include "lib/logger/log.h"
#include "fifo.h"
-#include "timer.h"
#include "mem.h"
#include "vmem.h"
#include "mp.h"
#include "interrupts.h"
#include "multiboot.h"
#include "ringbuffer.h"
-#include "task.h"
#include "multiboot.h"
#include "terminal/terminal.h"
#include "driver/screen.h"
@@ -33,15 +38,14 @@ void kernel_main(uint32_t eax,uint32_t ebx)
uint64_t epoch_time=timer_init();
log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"PIT - initialized. %u seconds passed since 1970.",epoch_time);
- // KEYBOARD DRIVER
keyboard_init(0); //sstdin
log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"Keyboard Initialized");
- // MOUSE DRIVER
mouse_init();
+ log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"Mouse Initialized");
- // GDT
- gdt_setup();
+ gdt_init();
+ log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"GDT Initialized");
// MULTIBOOT HEADER
multiboot_information *info=get_multiboot(eax, ebx);
@@ -74,6 +78,7 @@ void kernel_main(uint32_t eax,uint32_t ebx)
// INIT VESA: TODO: stop and say if not 32bit colormode!
uint32_t addr=kballoc(1);
fs_content("/binfont.bin",addr,0x100); // copy 0x100 bytes to 0x7000
+
vesa_init(info->vbe_control_info,info->vbe_mode_info,addr);
// STREAMS
@@ -81,10 +86,8 @@ void kernel_main(uint32_t eax,uint32_t ebx)
uint32_t sstdout = syscall_open("term",0,0); // stdout 1
uint32_t sstderr = syscall_open("stderr",0,0); // stderr 2
- // INSTALL INTERRUPTS (code segment: 0x08)
- int_init(0x08);
+ interrupts_init(0x08);
- // INIT MULTITASKING (and start scheduler)
- task_init(dir);
+ scheduler_init(dir);
}