From a06d25b7afcd8b28ca001349634abaef87958fdc Mon Sep 17 00:00:00 2001 From: Michal Idziorek Date: Mon, 24 Nov 2014 11:07:32 +0100 Subject: implemented basic 'cd' in foolshell --- kernel/kernel.c | 1 + kernel/syscalls.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'kernel') 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 } -- cgit v1.2.3