diff options
author | Alex Auvolat <alex.auvolat@ens.fr> | 2014-12-07 19:59:34 +0100 |
---|---|---|
committer | Alex Auvolat <alex.auvolat@ens.fr> | 2014-12-07 19:59:34 +0100 |
commit | f0475a3d517b4df8eb2b73f22eaec91a72bcc51f (patch) | |
tree | 084e6cd1db812cafdd67ba650796eda3091c2ea7 /kernel/l0/loader.s | |
parent | d7aaba8c85cc71f3184cddcf20b740c5157c864d (diff) | |
download | kogata-f0475a3d517b4df8eb2b73f22eaec91a72bcc51f.tar.gz kogata-f0475a3d517b4df8eb2b73f22eaec91a72bcc51f.zip |
Implement multitasking.
Diffstat (limited to 'kernel/l0/loader.s')
-rw-r--r-- | kernel/l0/loader.s | 7 |
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 : |