diff options
| author | Miguel <m.i@gmx.at> | 2018-08-17 21:41:21 +0200 |
|---|---|---|
| committer | Miguel <m.i@gmx.at> | 2018-08-17 21:41:21 +0200 |
| commit | c15925a24efe14f437d8a2699500241a58fdc8f9 (patch) | |
| tree | c0db3a7d2a4f857324735df35e9cc1f0539c5f24 /kernel/syscalls.c | |
| parent | 6fd78c2ff950310d8372ec0353553cc4a5a43e72 (diff) | |
cleanup and working on fifo pipes
Diffstat (limited to 'kernel/syscalls.c')
| -rw-r--r-- | kernel/syscalls.c | 21 |
1 files changed, 17 insertions, 4 deletions
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"); } |
