git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Kernel - Working on SYS_COPYFD
[tpg/acess2.git]
/
KernelLand
/
Kernel
/
syscalls.c
diff --git
a/KernelLand/Kernel/syscalls.c
b/KernelLand/Kernel/syscalls.c
index
1f2f798
..
4416ec4
100644
(file)
--- a/
KernelLand/Kernel/syscalls.c
+++ b/
KernelLand/Kernel/syscalls.c
@@
-29,8
+29,8
@@
#define CHECK_STR_ARRAY(arr) do {\
int i;\
char **tmp = (char**)arr; \
#define CHECK_STR_ARRAY(arr) do {\
int i;\
char **tmp = (char**)arr; \
- CHECK_NUM_N
ONULL
( tmp, sizeof(char**) ); \
- for(i=0;tmp[i];i++) { \
+ CHECK_NUM_N
ULLOK
( tmp, sizeof(char**) ); \
+ for(i=0;tmp
&&tmp
[i];i++) { \
CHECK_STR_NONULL( tmp[i] ); \
CHECK_NUM_NONULL( &tmp[i+1], sizeof(char*) ); \
}\
CHECK_STR_NONULL( tmp[i] ); \
CHECK_NUM_NONULL( &tmp[i+1], sizeof(char*) ); \
}\
@@
-172,7
+172,8
@@
void SyscallHandler(tSyscallRegs *Regs)
CHECK_STR_NONULL((const char*)Regs->Arg1);
CHECK_STR_ARRAY((const char**)Regs->Arg2);
CHECK_STR_ARRAY((const char**)Regs->Arg3);
CHECK_STR_NONULL((const char*)Regs->Arg1);
CHECK_STR_ARRAY((const char**)Regs->Arg2);
CHECK_STR_ARRAY((const char**)Regs->Arg3);
- CHECK_NUM_NULLOK((void*)Regs->Arg5, Regs->Arg4*sizeof(int));
+ if( Regs->Arg4 > 0 )
+ CHECK_NUM_NONULL((void*)Regs->Arg5, Regs->Arg4*sizeof(int));
ret = Proc_SysSpawn(
(const char*)Regs->Arg1, (const char**)Regs->Arg2, (const char**)Regs->Arg3,
Regs->Arg4, (int*)Regs->Arg5
ret = Proc_SysSpawn(
(const char*)Regs->Arg1, (const char**)Regs->Arg2, (const char**)Regs->Arg3,
Regs->Arg4, (int*)Regs->Arg5
@@
-213,6
+214,11
@@
void SyscallHandler(tSyscallRegs *Regs)
VFS_Close( Regs->Arg1 );
break;
VFS_Close( Regs->Arg1 );
break;
+ case SYS_COPYFD:
+ LOG("VFS_DuplicateFD(%i,%i)", Regs->Arg1, Regs->Arg2);
+ ret = VFS_DuplicateFD(Regs->Arg1, Regs->Arg2);
+ break;
+
case SYS_SEEK:
#if BITS == 64
ret = VFS_Seek( Regs->Arg1, Regs->Arg2, Regs->Arg3 );
case SYS_SEEK:
#if BITS == 64
ret = VFS_Seek( Regs->Arg1, Regs->Arg2, Regs->Arg3 );
UCC
git Repository :: git.ucc.asn.au