From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1K29D0-0004tt-LS for qemu-devel@nongnu.org; Fri, 30 May 2008 14:20:10 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1K29Cz-0004tR-PE for qemu-devel@nongnu.org; Fri, 30 May 2008 14:20:09 -0400 Received: from [199.232.76.173] (port=45787 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1K29Cz-0004tL-El for qemu-devel@nongnu.org; Fri, 30 May 2008 14:20:09 -0400 Received: from savannah.gnu.org ([199.232.41.3]:34859 helo=sv.gnu.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1K29Cz-0005Oy-0Y for qemu-devel@nongnu.org; Fri, 30 May 2008 14:20:09 -0400 Received: from cvs.savannah.gnu.org ([199.232.41.69]) by sv.gnu.org with esmtp (Exim 4.63) (envelope-from ) id 1K29Cy-0003Qs-3C for qemu-devel@nongnu.org; Fri, 30 May 2008 18:20:08 +0000 Received: from pbrook by cvs.savannah.gnu.org with local (Exim 4.63) (envelope-from ) id 1K29Cw-0003Ql-U0 for qemu-devel@nongnu.org; Fri, 30 May 2008 18:20:07 +0000 MIME-Version: 1.0 Errors-To: pbrook Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Paul Brook Message-Id: Date: Fri, 30 May 2008 18:20:06 +0000 Subject: [Qemu-devel] [4626] Implement waitid syscall. Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Revision: 4626 http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=4626 Author: pbrook Date: 2008-05-30 18:20:05 +0000 (Fri, 30 May 2008) Log Message: ----------- Implement waitid syscall. Modified Paths: -------------- trunk/linux-user/syscall.c Modified: trunk/linux-user/syscall.c =================================================================== --- trunk/linux-user/syscall.c 2008-05-30 18:05:19 UTC (rev 4625) +++ trunk/linux-user/syscall.c 2008-05-30 18:20:05 UTC (rev 4626) @@ -3169,6 +3169,21 @@ } break; #endif +#ifdef TARGET_NR_waitid + case TARGET_NR_waitid: + { + siginfo_t info; + info.si_pid = 0; + ret = get_errno(waitid(arg1, arg2, &info, arg4)); + if (!is_error(ret) && arg3 && info.si_pid != 0) { + if (!(p = lock_user(VERIFY_WRITE, arg3, sizeof(target_siginfo_t), 0))) + goto efault; + host_to_target_siginfo(p, &info); + unlock_user(p, arg3, sizeof(target_siginfo_t)); + } + } + break; +#endif #ifdef TARGET_NR_creat /* not on alpha */ case TARGET_NR_creat: if (!(p = lock_user_string(arg1)))