From 1dd8250048d228f22e60dcb1663a51f99b08973d Mon Sep 17 00:00:00 2001 From: josh Date: Tue, 14 Jul 2009 16:08:06 +0000 Subject: [PATCH] moved call to stack_bootstrap() into mm_bootstrap() since stack_bootstrap() relies on calling mm_map() and mm_use_virtual_offset was getting unset at the end of mm_bootstrap(); calling k_main() now works! git-svn-id: svn://anubis/hos/trunk@54 5b3e749e-e535-0410-8002-a9bb6afbdfca --- kernel/boot/boot.asm | 4 ++-- kernel/boot/k_bootstrap.cc | 1 - kernel/mm/mm.cc | 3 +++ 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/kernel/boot/boot.asm b/kernel/boot/boot.asm index 88bfccc..b2a39a1 100644 --- a/kernel/boot/boot.asm +++ b/kernel/boot/boot.asm @@ -109,8 +109,8 @@ segmentation_disabled: mov cx, 0x0700 + 'f' mov [CONSOLE_MEMORY+160*8+5*2], cx -; mov esp, KERNEL_STACK_TOP -; call k_main + mov esp, KERNEL_STACK_TOP + call k_main idle_loop: hlt diff --git a/kernel/boot/k_bootstrap.cc b/kernel/boot/k_bootstrap.cc index a7c5464..593b5ca 100644 --- a/kernel/boot/k_bootstrap.cc +++ b/kernel/boot/k_bootstrap.cc @@ -47,7 +47,6 @@ u32_t k_bootstrap(mb_info_t * mb_info, u32_t mb_magic) * before calling them. */ mm_bootstrap(); - stack_bootstrap(); /* after mm */ kio_bootstrap(); return 0; diff --git a/kernel/mm/mm.cc b/kernel/mm/mm.cc index 2a2b33f..cc644fe 100644 --- a/kernel/mm/mm.cc +++ b/kernel/mm/mm.cc @@ -2,6 +2,7 @@ #include #include "mm.h" +#include "stack.h" #include "boot/k_early_panic.h" #include "lang/string.h" @@ -156,6 +157,8 @@ void mm_bootstrap() /* set the page directory base register */ set_cr3(page_directory); + stack_bootstrap(); + mm_use_virtual_offset = false; }