summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/kernel.c1
-rw-r--r--kernel/syscalls.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/kernel/kernel.c b/kernel/kernel.c
index 684b70d..828f663 100644
--- a/kernel/kernel.c
+++ b/kernel/kernel.c
@@ -105,6 +105,7 @@ void kernel_main(uint32_t initial_stack, int mp)
// load and run foolshell
// we will come back into the kernel only on interrupts...
+ asm("mov $0x05bff,%esp"); // set stack pointer
syscall_execve("/bin/foolshell",0,0);
diff --git a/kernel/syscalls.c b/kernel/syscalls.c
index 590d96e..e4d31b5 100644
--- a/kernel/syscalls.c
+++ b/kernel/syscalls.c
@@ -392,7 +392,6 @@ uint32_t syscall_sbrk(int incr, int none1, int none2)
int syscall_exit(int ret, char **env, int none2)
{
- asm("mov $0x07bff,%esp"); // set stack pointer
#ifdef LOG_SYSCALLS
log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"exit (ret=%d) (env=0x%08X)", ret, env);
#endif
@@ -404,6 +403,7 @@ int syscall_exit(int ret, char **env, int none2)
i++;
}
+ asm("mov $0x05bff,%esp"); // set stack pointer
static char *argv[]={"shell","--silent",NULL};
syscall_execve("/bin/foolshell",argv,env); // start shell
}