From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1K28yi-0005yq-JR for qemu-devel@nongnu.org; Fri, 30 May 2008 14:05:24 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1K28yh-0005ya-SG for qemu-devel@nongnu.org; Fri, 30 May 2008 14:05:24 -0400 Received: from [199.232.76.173] (port=53955 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1K28yh-0005yV-MU for qemu-devel@nongnu.org; Fri, 30 May 2008 14:05:23 -0400 Received: from savannah.gnu.org ([199.232.41.3]:38822 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 1K28yh-0000v4-7v for qemu-devel@nongnu.org; Fri, 30 May 2008 14:05:23 -0400 Received: from cvs.savannah.gnu.org ([199.232.41.69]) by sv.gnu.org with esmtp (Exim 4.63) (envelope-from ) id 1K28ye-0001aC-Ga for qemu-devel@nongnu.org; Fri, 30 May 2008 18:05:20 +0000 Received: from pbrook by cvs.savannah.gnu.org with local (Exim 4.63) (envelope-from ) id 1K28ye-0001a7-77 for qemu-devel@nongnu.org; Fri, 30 May 2008 18:05:20 +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:05:20 +0000 Subject: [Qemu-devel] [4625] Perform target->host signal mapping for *kill syscalls. 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: 4625 http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=4625 Author: pbrook Date: 2008-05-30 18:05:19 +0000 (Fri, 30 May 2008) Log Message: ----------- Perform target->host signal mapping for *kill syscalls. Modified Paths: -------------- trunk/linux-user/qemu.h trunk/linux-user/signal.c trunk/linux-user/syscall.c Modified: trunk/linux-user/qemu.h =================================================================== --- trunk/linux-user/qemu.h 2008-05-30 17:54:15 UTC (rev 4624) +++ trunk/linux-user/qemu.h 2008-05-30 18:05:19 UTC (rev 4625) @@ -187,6 +187,7 @@ int queue_signal(int sig, target_siginfo_t *info); void host_to_target_siginfo(target_siginfo_t *tinfo, const siginfo_t *info); void target_to_host_siginfo(siginfo_t *info, const target_siginfo_t *tinfo); +int target_to_host_signal(int sig); long do_sigreturn(CPUState *env); long do_rt_sigreturn(CPUState *env); abi_long do_sigaltstack(abi_ulong uss_addr, abi_ulong uoss_addr, abi_ulong sp); Modified: trunk/linux-user/signal.c =================================================================== --- trunk/linux-user/signal.c 2008-05-30 17:54:15 UTC (rev 4624) +++ trunk/linux-user/signal.c 2008-05-30 18:05:19 UTC (rev 4625) @@ -113,11 +113,15 @@ static inline int host_to_target_signal(int sig) { + if (sig > 64) + return sig; return host_to_target_signal_table[sig]; } -static inline int target_to_host_signal(int sig) +int target_to_host_signal(int sig) { + if (sig > 64) + return sig; return target_to_host_signal_table[sig]; } Modified: trunk/linux-user/syscall.c =================================================================== --- trunk/linux-user/syscall.c 2008-05-30 17:54:15 UTC (rev 4624) +++ trunk/linux-user/syscall.c 2008-05-30 18:05:19 UTC (rev 4625) @@ -3488,7 +3488,7 @@ ret = 0; break; case TARGET_NR_kill: - ret = get_errno(kill(arg1, arg2)); + ret = get_errno(kill(arg1, target_to_host_signal(arg2))); break; case TARGET_NR_rename: { @@ -5583,13 +5583,14 @@ #if defined(TARGET_NR_tkill) && defined(__NR_tkill) case TARGET_NR_tkill: - ret = get_errno(sys_tkill((int)arg1, (int)arg2)); + ret = get_errno(sys_tkill((int)arg1, target_to_host_signal(arg2))); break; #endif #if defined(TARGET_NR_tgkill) && defined(__NR_tgkill) case TARGET_NR_tgkill: - ret = get_errno(sys_tgkill((int)arg1, (int)arg2, (int)arg3)); + ret = get_errno(sys_tgkill((int)arg1, (int)arg2, + target_to_host_signal(arg3))); break; #endif