aboutsummaryrefslogtreecommitdiff
path: root/kernel/l0/loader.s
diff options
context:
space:
mode:
authorAlex Auvolat <alex.auvolat@ens.fr>2014-12-07 19:59:34 +0100
committerAlex Auvolat <alex.auvolat@ens.fr>2014-12-07 19:59:34 +0100
commitf0475a3d517b4df8eb2b73f22eaec91a72bcc51f (patch)
tree084e6cd1db812cafdd67ba650796eda3091c2ea7 /kernel/l0/loader.s
parentd7aaba8c85cc71f3184cddcf20b740c5157c864d (diff)
downloadkogata-f0475a3d517b4df8eb2b73f22eaec91a72bcc51f.tar.gz
kogata-f0475a3d517b4df8eb2b73f22eaec91a72bcc51f.zip
Implement multitasking.
Diffstat (limited to 'kernel/l0/loader.s')
-rw-r--r--kernel/l0/loader.s7
1 files changed, 4 insertions, 3 deletions
diff --git a/kernel/l0/loader.s b/kernel/l0/loader.s
index 5d0a2b8..447d82d 100644
--- a/kernel/l0/loader.s
+++ b/kernel/l0/loader.s
@@ -2,6 +2,7 @@
[GLOBAL loader] ; making entry point visible to linker
[GLOBAL kernel_pd] ; make kernel page directory visible
[GLOBAL kernel_stack_protector] ; used to detect kernel stack overflow
+[GLOBAL kernel_stack_top] ; stack re-used by scheduler
; higher-half kernel setup
K_HIGHHALF_ADDR equ 0xC0000000
@@ -60,7 +61,7 @@ higherhalf: ; now we're running in higher half
mov dword [kernel_pd], 0
invlpg [0]
- mov esp, stack_top ; set up the stack
+ mov esp, kernel_stack_top ; set up the stack
push eax ; pass Multiboot magic number
add ebx, K_HIGHHALF_ADDR ; update the MB info structure so that it is in higher half
@@ -78,8 +79,8 @@ hang:
align 0x1000
kernel_stack_protector:
resb 0x1000 ; as soon as we have efficient paging, we WON'T map this page
-stack_bottom:
+kernel_stack_bottom:
resb LOADER_STACK_SIZE
-stack_top:
+kernel_stack_top:
; vim: set ts=4 sw=4 tw=0 noet :