aboutsummaryrefslogtreecommitdiff
path: root/kernel/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/main.c')
-rw-r--r--kernel/main.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/kernel/main.c b/kernel/main.c
index 6be31bd..3b75c7d 100644
--- a/kernel/main.c
+++ b/kernel/main.c
@@ -2,12 +2,14 @@
#include <boot.h>
#include <cpu.h>
+#include <fb.h>
#include <fs.h>
#include <ide.h>
#include <interrupts.h>
#include <keyboard.h>
#include <load.h>
#include <mem.h>
+#include <mm.h>
#include <mouse.h>
#include <net.h>
#include <pci.h>
@@ -16,22 +18,23 @@
#include <syscall.h>
#include <timer.h>
-struct vid_info *boot_passed;
-
-void kernel_main(struct vid_info *vid_info); // Decl
-void kernel_main(struct vid_info *vid_info)
+void kernel_main(struct mem_info *mem_info, struct vid_info *vid_info); // Decl
+void kernel_main(struct mem_info *mem_info, struct vid_info *vid_info)
{
+ // Clear stack
+ for (u32 i = 0; i < STACK_SIZE; i++)
+ ((u8 *)STACK_START)[-i] = 0;
+
// Serial connection
serial_install();
serial_print("\nKernel was compiled at " __TIME__ " on " __DATE__ "\n");
serial_print("Serial connected.\n");
- heap_init(0x00f00000);
-
- boot_passed = vid_info;
+ memory_install(mem_info, vid_info);
cpu_enable_features();
cpu_print();
+ srand(rdseed());
// Install drivers
vfs_install();
@@ -42,6 +45,7 @@ void kernel_main(struct vid_info *vid_info)
timer_install();
keyboard_install();
mouse_install();
+ fb_install(vid_info);
/* net_install(); */
// Enable drivers