From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20797 invoked by alias); 24 Feb 2007 23:24:22 -0000 Received: (qmail 20789 invoked by uid 22791); 24 Feb 2007 23:24:20 -0000 X-Spam-Check-By: sourceware.org Received: from elrond.portugalmail.pt (HELO elrond.portugalmail.pt) (195.245.179.181) by sourceware.org (qpsmtpd/0.31) with ESMTP; Sat, 24 Feb 2007 23:24:11 +0000 Received: from localhost (localhost [127.0.0.1]) by elrond.portugalmail.pt (Postfix) with ESMTP id 9C24D383F5 for ; Sat, 24 Feb 2007 23:24:03 +0000 (WET) Received: from elrond.portugalmail.pt ([127.0.0.1]) by localhost (elrond.portugalmail.pt [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hfzZ1ZjaOSed for ; Sat, 24 Feb 2007 23:24:03 +0000 (WET) Received: from [127.0.0.1] (62.169.107.130.rev.optimus.pt [62.169.107.130]) (Authenticated sender: pedro_alves@portugalmail.pt) by elrond.portugalmail.pt (Postfix) with ESMTP id 88282379DD for ; Sat, 24 Feb 2007 23:24:00 +0000 (WET) Message-ID: <45E0C90C.7030101@portugalmail.pt> Date: Sat, 24 Feb 2007 23:24:00 -0000 From: Pedro Alves User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-BR; rv:1.8.0.9) Gecko/20061207 Thunderbird/1.5.0.9 Mnenhy/0.7.4.0 MIME-Version: 1.0 To: gdb-patches@sourceware.org Subject: [gdbserver] Use enum target_signal in _send_signal. Content-Type: multipart/mixed; boundary="------------000403000000080407030903" X-Antivirus: avast! (VPS 000716-3, 23-02-2007), Outbound message X-Antivirus-Status: Clean X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2007-02/txt/msg00304.txt.bz2 This is a multi-part message in MIME format. --------------000403000000080407030903 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-length: 988 Hi all, This patch converts the send_signal function in target_ops to use enum target_signal instead of the real target number. I originally needed this for the WinCE gdbserver port. Windows CE doesn't have signals support, and doesn't define SIGINT in any header. Because of that, remote-utils.c wouldn't compile. I still want to have support of stopping a debuggee - this patch paves the way to that, with minimal interface changes. I will handle TARGET_SIGNAL_INT in the send_signal handler on the target side. Ok? Cheers, Pedro Alves --- gdb/gdbserver/ChangeLog: 2007-02-24 Pedro Alves * target.h (target_ops): Change parameter of send_signal from int to enum target_signal. * linux-low.c (linux_send_signal): Change parameter from int to enum target_signal. * spu-low.c (spu_send_signal): Likewise. * remote-utils.c (putpkt_binary): Pass TARGET_SIGNAL_INT instead of SIGINT. (input_interrupt): Likewise. --------------000403000000080407030903 Content-Type: text/plain; name="target_signal.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="target_signal.diff" Content-length: 2634 Index: src/gdb/gdbserver/linux-low.c =================================================================== --- src.orig/gdb/gdbserver/linux-low.c 2007-02-24 23:04:16.000000000 +0000 +++ src/gdb/gdbserver/linux-low.c 2007-02-24 23:05:54.000000000 +0000 @@ -1514,9 +1514,13 @@ } static void -linux_send_signal (int signum) +linux_send_signal (enum target_signal sig) { extern unsigned long signal_pid; + int signum = target_signal_to_host (sig); + + if (signum == 0) + return; if (cont_thread != 0 && cont_thread != -1) { Index: src/gdb/gdbserver/spu-low.c =================================================================== --- src.orig/gdb/gdbserver/spu-low.c 2007-02-24 23:04:16.000000000 +0000 +++ src/gdb/gdbserver/spu-low.c 2007-02-24 23:05:54.000000000 +0000 @@ -551,8 +551,13 @@ /* Send signal to inferior. */ static void -spu_send_signal (int signo) +spu_send_signal (enum target_signal sig) { + int signo = target_signal_to_host (sig); + + if (signo == 0) + return; + syscall (SYS_tkill, current_tid, signo); } Index: src/gdb/gdbserver/target.h =================================================================== --- src.orig/gdb/gdbserver/target.h 2007-02-24 23:04:16.000000000 +0000 +++ src/gdb/gdbserver/target.h 2007-02-24 23:05:54.000000000 +0000 @@ -128,7 +128,7 @@ void (*look_up_symbols) (void); /* Send a signal to the inferior process, however is appropriate. */ - void (*send_signal) (int); + void (*send_signal) (enum target_signal); /* Read auxiliary vector data from the inferior process. Index: src/gdb/gdbserver/remote-utils.c =================================================================== --- src.orig/gdb/gdbserver/remote-utils.c 2007-02-24 23:04:20.000000000 +0000 +++ src/gdb/gdbserver/remote-utils.c 2007-02-24 23:05:54.000000000 +0000 @@ -549,7 +549,7 @@ /* Check for an input interrupt while we're here. */ if (buf3[0] == '\003') - (*the_target->send_signal) (SIGINT); + (*the_target->send_signal) (TARGET_SIGNAL_INT); } while (buf3[0] != '+'); @@ -572,7 +572,7 @@ /* Come here when we get an input interrupt from the remote side. This interrupt should only be active while we are waiting for the child to do something. About the only thing that should come through is a ^C, which - will cause us to send a SIGINT to the child. */ + will cause us to send a TARGET_SIGNAL_INT to the child. */ static void input_interrupt (int unused) @@ -599,7 +599,7 @@ return; } - (*the_target->send_signal) (SIGINT); + (*the_target->send_signal) (TARGET_SIGNAL_INT); } } #endif --------------000403000000080407030903--