From 1d472bb0439a83191fcda5e7a778ff0f28a0b6e5 Mon Sep 17 00:00:00 2001 From: Michal Idziorek Date: Sun, 23 Nov 2014 15:45:31 +0100 Subject: adjusting syscalls --- kernel/syscalls.c | 49 +++++++++++++++++++++++++++++++++++++------------ kernel/syscalls.h | 1 + 2 files changed, 38 insertions(+), 12 deletions(-) (limited to 'kernel') diff --git a/kernel/syscalls.c b/kernel/syscalls.c index 9f29750..9ad07e2 100644 --- a/kernel/syscalls.c +++ b/kernel/syscalls.c @@ -288,17 +288,6 @@ int syscall_close(int file,int none1,int none2) } -int syscall_fstat(int file, struct stat *st,int none) -{ - #ifdef LOG_SYSCALLS - log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"fstat (file=%d,stat=0x%08X)", file,st); - #endif - - st->st_mode = S_IFCHR; - return 0; -} - - int syscall_isatty(int file,int none1,int none2) { #ifdef LOG_SYSCALLS @@ -383,5 +372,41 @@ int syscall_exit(int ret, int none1, int none2) #ifdef LOG_SYSCALLS log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"exit (ret=%d)", ret); #endif - syscall_execve(15,0,0); // start shell + + static char *argv[]={"test",NULL}; + syscall_execve(15,argv,0); // start shell +} + + +// stat, fstat, lstat + +int syscall_stat(const char *path, struct stat *st,int none) +{ + #ifdef LOG_SYSCALLS + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"stat (path=0x%08X,stat=0x%08X)", path,st); + #endif + + st->st_mode = S_IFCHR; + return 0; +} + +int syscall_fstat(int file, struct stat *st,int none) +{ + #ifdef LOG_SYSCALLS + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"fstat (file=%d,stat=0x%08X)", file,st); + #endif + + st->st_mode = S_IFCHR; + return 0; +} + + +int syscall_lstat(const char *path, struct stat *st,int none) +{ + #ifdef LOG_SYSCALLS + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"lstat (path=0x%08X,stat=0x%08X)", path,st); + #endif + + st->st_mode = S_IFCHR; + return 0; } diff --git a/kernel/syscalls.h b/kernel/syscalls.h index 00df0fa..f42a34b 100644 --- a/kernel/syscalls.h +++ b/kernel/syscalls.h @@ -29,6 +29,7 @@ #define SYSCALL_UNLINK 76 #define SYSCALL_WAIT 77 #define SYSCALL_GETPID 78 +#define SYSCALL_LSTAT 79 int syscall_readdir(const char *name,struct fs_dirent *dirs,int max); -- cgit v1.2.3