From c15925a24efe14f437d8a2699500241a58fdc8f9 Mon Sep 17 00:00:00 2001 From: Miguel Date: Fri, 17 Aug 2018 21:41:21 +0200 Subject: cleanup and working on fifo pipes --- kernel/syscalls.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'kernel/syscalls.c') diff --git a/kernel/syscalls.c b/kernel/syscalls.c index c507a4e..9f10d20 100644 --- a/kernel/syscalls.c +++ b/kernel/syscalls.c @@ -175,10 +175,22 @@ int syscall_execve(char *name, char **argv, char **env) while(argv[arg_count]!=NULL)arg_count++; char **argv1=kballoc(1); - char **env1=kballoc(1); + if(argv!=NULL) + { + copy_args(argv,argv1); + } + else{ + argv1=NULL; + } - copy_args(argv,argv1); - copy_args(env,env1); + char **env1=kballoc(1); + if(env!=NULL) + { + copy_args(env,env1); + } + else{ + env1=NULL; + } uint32_t alloc; uint32_t entry_global=load_elf(name,&alloc); @@ -214,12 +226,13 @@ int syscall_execve(char *name, char **argv, char **env) } +// TODO: support other files too (not only fifo pipes) int syscall_open(char *name, int flags, int mode) { #ifdef LOG_SYSCALLS log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"open (name=0x%08X(\"%s\"), flags=%d, mode=%d)",name, name,flags,mode); #endif - panic(FOOLOS_MODULE_NAME,"unhandled syscall: open"); + //panic(FOOLOS_MODULE_NAME,"unhandled syscall: open"); } -- cgit v1.2.3