X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Fsyscalls.c;h=9c9737e616c40e16c72485e2cc22d6a21520df1e;hb=61cfad415a64c52ca253460231046f47fcb7fb15;hp=9775be394ca919356499fb5f95a4f716467953d2;hpb=972dd5ead02b18dae9eb9e0fa4ce1b8d7fd1f54a;p=tpg%2Facess2.git diff --git a/Kernel/syscalls.c b/Kernel/syscalls.c index 9775be39..9c9737e6 100644 --- a/Kernel/syscalls.c +++ b/Kernel/syscalls.c @@ -10,6 +10,7 @@ #include #include #include +#include #define CHECK_NUM_NULLOK(v,size) \ if((v)&&!Syscall_Valid((size),(v))){ret=-1;err=-EINVAL;break;} @@ -75,7 +76,13 @@ void SyscallHandler(tSyscallRegs *Regs) err = -ENOSYS; ret = -1; break; - + + // -- Wait fr an event + case SYS_WAITEVENT: + // Message mask + ret = Threads_WaitEvents(Regs->Arg1); + break; + // -- Wait for a thread case SYS_WAITTID: // Sanity Check (Status can be NULL) @@ -163,7 +170,6 @@ void SyscallHandler(tSyscallRegs *Regs) { tmp = (char**)Regs->Arg3; CHECK_NUM_NONULL(tmp, sizeof(char**)); - Log("tmp = %p", tmp); for(i=0;tmp[i];i++) { CHECK_NUM_NONULL( &tmp[i], sizeof(char*) ); CHECK_STR_NONULL( tmp[i] ); @@ -308,6 +314,7 @@ void SyscallHandler(tSyscallRegs *Regs) (fd_set *)Regs->Arg3, // Write (fd_set *)Regs->Arg4, // Errors (tTime *)Regs->Arg5, // Timeout + (Uint32)Regs->Arg6, // Extra wakeup events 0 // User handles ); break; @@ -316,7 +323,7 @@ void SyscallHandler(tSyscallRegs *Regs) //#if DEBUG_BUILD case SYS_DEBUG: CHECK_STR_NONULL( (char*)Regs->Arg1 ); - LogF("Log: [%i] ", Threads_GetTID()); + LogF("Log: %08lli [%i] ", now(), Threads_GetTID()); LogF((const char*)Regs->Arg1, Regs->Arg2, Regs->Arg3, Regs->Arg4, Regs->Arg5, Regs->Arg6); LogF("\r\n");