X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Fsyscalls.c;h=e304b40e2a9c25a1b5fd0fddec6e820229b69b13;hb=c865bd1ebd2e33f0477f3f0145acb98786b1cc41;hp=936bf277b0b6d071cc7271654fd13ceaf9b3f32a;hpb=ee9c3126fc8c693418a9f1216245a0576c0582d4;p=tpg%2Facess2.git diff --git a/Kernel/syscalls.c b/Kernel/syscalls.c index 936bf277..e304b40e 100644 --- a/Kernel/syscalls.c +++ b/Kernel/syscalls.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -66,7 +67,7 @@ void SyscallHandler(tSyscallRegs *Regs) // -- Clone the current thread case SYS_CLONE: // Call clone system call - ret = Proc_Clone(&err, Regs->Arg1); + ret = Proc_Clone(Regs->Arg1); // Change user stack if a new stack address is passed if(ret == 0 && Regs->Arg2) Regs->StackPointer = Regs->Arg2; @@ -317,19 +318,21 @@ void SyscallHandler(tSyscallRegs *Regs) LogF("Log: [%i] ", Threads_GetTID()); LogF((char*)Regs->Arg1, Regs->Arg2, Regs->Arg3, Regs->Arg4, Regs->Arg5, Regs->Arg6); - LogF("\n"); + LogF("\r\n"); break; //#endif // -- Default (Return Error) default: - Warning("SyscallHandler: Unknown System Call %i", Regs->Num); + Log_Warning("Syscalls", "Unknown System Call %i", Regs->Num); if(Regs->Num < NUM_SYSCALLS) - Warning(" Syscall '%s'", cSYSCALL_NAMES[Regs->Num]); + Log_Warning("Syscall", " named '%s'", cSYSCALL_NAMES[Regs->Num]); err = -ENOSYS; ret = -1; break; } + + if(err == 0) err = errno; if(err != 0) { LOG("ID: %i, Return errno = %i", Regs->Num, err); @@ -347,10 +350,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