summaryrefslogtreecommitdiff
path: root/kernel/kernel.c
diff options
context:
space:
mode:
authorMichal Idziorek <m.i@gmx.at>2015-05-16 03:48:35 +0200
committerMichal Idziorek <m.i@gmx.at>2015-05-16 03:48:35 +0200
commitf92a23a2fcee6cbb97af9c7681e6872374d3c789 (patch)
tree41669345c8a5a60548e8e07cf805df9ef01c1c26 /kernel/kernel.c
parentba10657752ba869b1c46c861cbda689b535e8214 (diff)
finally working ring 3
Diffstat (limited to 'kernel/kernel.c')
-rw-r--r--kernel/kernel.c25
1 files changed, 18 insertions, 7 deletions
diff --git a/kernel/kernel.c b/kernel/kernel.c
index 7b29730..2ce84fb 100644
--- a/kernel/kernel.c
+++ b/kernel/kernel.c
@@ -4,7 +4,6 @@
#error "Watchout! this is not Linux but FoolOS. Use a cross-compiler"
#endif
-
#include "kernel.h"
#include <stdint.h>
@@ -18,7 +17,6 @@
#include "interrupts.h"
#include "multiboot.h"
-
#include "console.h"
#include <stddef.h>
@@ -29,6 +27,7 @@
#include "video/vesa.h"
#include "multiboot.h"
+
void kernel_main(uint32_t eax,uint32_t ebx)
{
@@ -37,21 +36,31 @@ void kernel_main(uint32_t eax,uint32_t ebx)
//
console_init();
+
//
// PR
//
log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"%s - compiled on %s at %s",KERNEL_VERSION,__DATE__,__TIME__);
+
//
// Configuring the PIT timer.
//
timer_init();
+
+ //
+ // GDT
+ //
+ gdt_setup();
+
+
//
// Process Multiboot Header
//
multiboot_information *info=get_multiboot(eax, ebx);
+
//
// Memory Init
//
@@ -60,17 +69,20 @@ void kernel_main(uint32_t eax,uint32_t ebx)
//
uint32_t kernel_blocks=mem_init(info);
+
+
//
// Activate Virtual Memory (paging)
//
pdirectory *dir=vmem_init(kernel_blocks);
+
//
// Setup Interrupts (code segment: 0x08)
//
-
int_init(0x08);
+
//
// Scan the PCI Bus
//
@@ -98,23 +110,22 @@ void kernel_main(uint32_t eax,uint32_t ebx)
//smp_log_procdata(&procdata);
//smp_start_aps(&procdata,0x80000); // starts at 0x80000
// but it will be copied over mbr
+
//
// Mount Root EXT2 ramimage
//
-
fs_mount(info);
//
// Initialize Multitasking
//
-
task_init(dir);
+
//
- // Abvoe should never return
+ // Abvoe should never returon
//
-
panic(FOOLOS_MODULE_NAME,"reached end of kernel.c !!");
}