summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorMichal Idziorek <m.i@gmx.at>2015-05-16 04:07:34 +0200
committerMichal Idziorek <m.i@gmx.at>2015-05-16 04:07:34 +0200
commitda62d2a7efc756870143ecda6566b0bea91b817f (patch)
tree94f1b83085ff9f4f5584c2ddb777293fd8e44606 /kernel
parentf92a23a2fcee6cbb97af9c7681e6872374d3c789 (diff)
fix tss esp0
Diffstat (limited to 'kernel')
-rw-r--r--kernel/kernel.c1
-rw-r--r--kernel/usermode.c4
2 files changed, 2 insertions, 3 deletions
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 );