From da62d2a7efc756870143ecda6566b0bea91b817f Mon Sep 17 00:00:00 2001 From: Michal Idziorek Date: Sat, 16 May 2015 04:07:34 +0200 Subject: fix tss esp0 --- kernel/kernel.c | 1 - kernel/usermode.c | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) (limited to 'kernel') diff --git a/kernel/kernel.c b/kernel/kernel.c index 2ce84fb..5f6981b 100644 --- a/kernel/kernel.c +++ b/kernel/kernel.c @@ -70,7 +70,6 @@ void kernel_main(uint32_t eax,uint32_t ebx) uint32_t kernel_blocks=mem_init(info); - // // Activate Virtual Memory (paging) // diff --git a/kernel/usermode.c b/kernel/usermode.c index 339045d..76128d1 100644 --- a/kernel/usermode.c +++ b/kernel/usermode.c @@ -5,7 +5,7 @@ tss_struct sys_tss; //Define the TSS as a global structure - +extern uint32_t stack_top[]; // generic syscall interface! int syscall(int call, int p1, int p2, int p3) @@ -46,7 +46,7 @@ void install_tss(int cpu_no){ // now fill each value // set values necessary sys_tss.ss0 = 0x10; //kernel data - sys_tss.esp0 = 0x9000; //kernel stack + sys_tss.esp0 = stack_top; //kernel stack just under the kernel // now set the IO bitmap (not necessary, so set above limit) // sys_tss.iomap = ( unsigned short ) sizeof( tss_struct ); -- cgit v1.2.3