X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Fsyscalls.c;h=7de7b15d5c9fef0c4ef80f7d9333346c2af802b7;hb=9a70d1ed74070f56c34b856f88931b134d429c3a;hp=1294b21413286bc5cc1d01b55366534550fd05c5;hpb=9dc3cf2a69c5c4563091f37a06eece1723f51d0d;p=tpg%2Facess2.git diff --git a/Kernel/syscalls.c b/Kernel/syscalls.c index 1294b214..7de7b15d 100644 --- a/Kernel/syscalls.c +++ b/Kernel/syscalls.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -66,10 +67,7 @@ void SyscallHandler(tSyscallRegs *Regs) // -- Clone the current thread case SYS_CLONE: // Call clone system call - ret = Proc_Clone(&err, Regs->Arg1); - // Change user stack if a new stack address is passed - if(ret == 0 && Regs->Arg2) - Regs->StackPointer = Regs->Arg2; + ret = Proc_Clone(Regs->Arg1); break; // -- Send a signal @@ -314,8 +312,9 @@ void SyscallHandler(tSyscallRegs *Regs) // -- Debug //#if DEBUG_BUILD case SYS_DEBUG: + CHECK_STR_NONULL( (char*)Regs->Arg1 ); LogF("Log: [%i] ", Threads_GetTID()); - LogF((char*)Regs->Arg1, + LogF((const char*)Regs->Arg1, Regs->Arg2, Regs->Arg3, Regs->Arg4, Regs->Arg5, Regs->Arg6); LogF("\r\n"); break; @@ -349,10 +348,10 @@ void SyscallHandler(tSyscallRegs *Regs) if( callNum != SYS_READ && callNum != SYS_WRITE ) { # endif LOG("err = %i", err); - if(Regs->Num != SYS_EXECVE) - LEAVE('x', ret); - else + if( callNum == SYS_EXECVE ) LOG("Actual %i", ret); + else + LEAVE('x', ret); # if DEBUG < 2 } # endif