From: Sergio Durigan Junior <sergiodj@redhat.com>
To: GDB Patches <gdb-patches@sourceware.org>
Cc: Sergio Durigan Junior <sergiodj@redhat.com>
Subject: [PATCH 03/17] Alpha support
Date: Mon, 01 Jul 2013 07:43:00 -0000 [thread overview]
Message-ID: <1372664545-3947-4-git-send-email-sergiodj@redhat.com> (raw)
In-Reply-To: <1372664545-3947-1-git-send-email-sergiodj@redhat.com>
This patch implements the support for the Alpha architecture. Since
this arch has some differences from x86, it basically defines an enum
with those different signals, which is later used by
alpha_linux_gdb_signal_to_target to return the proper signal number.
The common signals between x86 and Alpha are treated on the generic
linux_gdb_signal_to_target.
2013-07-01 Sergio Durigan Junior <sergiodj@redhat.com>
* alpha-linux-tdep.c: Define new enum with signals different
from x86.
(alpha_linux_gdb_signal_to_target): New function.
(alpha_linux_init_abi): Set gdbarch_gdb_signal_to_target as
alpha_linux_gdb_signal_to_target.
---
gdb/alpha-linux-tdep.c | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 89 insertions(+)
diff --git a/gdb/alpha-linux-tdep.c b/gdb/alpha-linux-tdep.c
index 9efc5bd..1f36218 100644
--- a/gdb/alpha-linux-tdep.c
+++ b/gdb/alpha-linux-tdep.c
@@ -28,6 +28,35 @@
#include "linux-tdep.h"
#include "alpha-tdep.h"
+/* This enum represents the signals' numbers on the Alpha
+ architecture. It just contains the signal definitions which are
+ different from x86.
+
+ It is derived from the file <arch/alpha/include/uapi/asm/signal.h>,
+ from the Linux kernel tree. */
+
+enum
+ {
+ /* SIGABRT is the same as in x86, but is defined here because
+ SIGIOT depends on it. */
+ ALPHA_LINUX_SIGABRT = 6,
+ ALPHA_LINUX_SIGEMT = 7,
+ ALPHA_LINUX_SIGBUS = 10,
+ ALPHA_LINUX_SIGSYS = 12,
+ ALPHA_LINUX_SIGURG = 16,
+ ALPHA_LINUX_SIGSTOP = 17,
+ ALPHA_LINUX_SIGTSTP = 18,
+ ALPHA_LINUX_SIGCONT = 19,
+ ALPHA_LINUX_SIGCHLD = 20,
+ ALPHA_LINUX_SIGIO = 23,
+ ALPHA_LINUX_SIGINFO = 29,
+ ALPHA_LINUX_SIGUSR1 = 30,
+ ALPHA_LINUX_SIGUSR2 = 31,
+ ALPHA_LINUX_SIGPOLL = ALPHA_LINUX_SIGIO,
+ ALPHA_LINUX_SIGPWR = ALPHA_LINUX_SIGINFO,
+ ALPHA_LINUX_SIGIOT = ALPHA_LINUX_SIGABRT,
+ };
+
/* Under GNU/Linux, signal handler invocations can be identified by
the designated code sequence that is used to return from a signal
handler. In particular, the return address of a signal handler
@@ -205,6 +234,63 @@ alpha_linux_regset_from_core_section (struct gdbarch *gdbarch,
return NULL;
}
+/* Implementation of `gdbarch_gdb_signal_to_target', as defined in
+ gdbarch.h. */
+
+static int
+alpha_linux_gdb_signal_to_target (struct gdbarch *gdbarch,
+ enum gdb_signal signal)
+{
+ switch (signal)
+ {
+ case GDB_SIGNAL_EMT:
+ return ALPHA_LINUX_SIGEMT;
+
+ case GDB_SIGNAL_BUS:
+ return ALPHA_LINUX_SIGBUS;
+
+ case GDB_SIGNAL_SYS:
+ return ALPHA_LINUX_SIGSYS;
+
+ case GDB_SIGNAL_URG:
+ return ALPHA_LINUX_SIGURG;
+
+ case GDB_SIGNAL_STOP:
+ return ALPHA_LINUX_SIGSTOP;
+
+ case GDB_SIGNAL_TSTP:
+ return ALPHA_LINUX_SIGTSTP;
+
+ case GDB_SIGNAL_CONT:
+ return ALPHA_LINUX_SIGCONT;
+
+ case GDB_SIGNAL_CHLD:
+ return ALPHA_LINUX_SIGCHLD;
+
+ case GDB_SIGNAL_IO:
+ return ALPHA_LINUX_SIGIO;
+
+ case GDB_SIGNAL_INFO:
+ return ALPHA_LINUX_SIGINFO;
+
+ case GDB_SIGNAL_USR1:
+ return ALPHA_LINUX_SIGUSR1;
+
+ case GDB_SIGNAL_USR2:
+ return ALPHA_LINUX_SIGUSR2;
+
+ case GDB_SIGNAL_POLL:
+ return ALPHA_LINUX_SIGPOLL;
+
+ case GDB_SIGNAL_PWR:
+ return ALPHA_LINUX_SIGPWR;
+ }
+
+ /* We covered the different signals, the remaining ones are equal
+ for x86. */
+ return linux_gdb_signal_to_target (gdbarch, signal);
+}
+
static void
alpha_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
{
@@ -236,6 +322,9 @@ alpha_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
set_gdbarch_regset_from_core_section
(gdbarch, alpha_linux_regset_from_core_section);
+
+ set_gdbarch_gdb_signal_to_target (gdbarch,
+ alpha_linux_gdb_signal_to_target);
}
/* Provide a prototype to silence -Wmissing-prototypes. */
--
1.7.11.7
next prev parent reply other threads:[~2013-07-01 7:43 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-01 7:43 [PATCH 00/17] Implement gdbarch_gdb_signal_to_target Sergio Durigan Junior
2013-07-01 7:43 ` [PATCH 13/17] mn10300 support Sergio Durigan Junior
2013-07-01 7:43 ` [PATCH 14/17] s390 support Sergio Durigan Junior
2013-07-01 7:43 ` [PATCH 09/17] i386 support Sergio Durigan Junior
2013-07-01 7:43 ` [PATCH 15/17] SPARC support Sergio Durigan Junior
2013-07-01 7:43 ` [PATCH 08/17] h8300 support Sergio Durigan Junior
2013-07-01 7:43 ` [PATCH 02/17] Linux kernel generic support Sergio Durigan Junior
2013-07-01 10:57 ` Sergio Durigan Junior
2013-07-01 7:43 ` [PATCH 10/17] IA-64 support Sergio Durigan Junior
2013-07-01 7:43 ` [PATCH 05/17] ARM support Sergio Durigan Junior
2013-07-17 17:20 ` Tom Tromey
2013-07-25 6:25 ` Sergio Durigan Junior
2013-07-01 7:43 ` [PATCH 11/17] m32r support Sergio Durigan Junior
2013-07-01 7:43 ` [PATCH 04/17] x86_64 support Sergio Durigan Junior
2013-07-17 17:16 ` Tom Tromey
2013-07-17 19:00 ` Mark Kettenis
2013-07-17 19:11 ` Sergio Durigan Junior
2013-07-01 7:43 ` [PATCH 06/17] AVR support Sergio Durigan Junior
2013-07-01 7:43 ` [PATCH 07/17] Cris support Sergio Durigan Junior
2013-07-01 7:43 ` [PATCH 16/17] Xtensa support Sergio Durigan Junior
2013-07-01 7:43 ` [PATCH 17/17] MIPS support Sergio Durigan Junior
2013-07-17 17:59 ` Tom Tromey
2013-07-25 6:20 ` Sergio Durigan Junior
2013-07-29 20:15 ` Pedro Alves
2013-07-01 7:43 ` [PATCH 12/17] m68klinux support Sergio Durigan Junior
2013-07-01 7:43 ` [PATCH 01/17] Implement the gdbarch.{sh,c,h} bits Sergio Durigan Junior
2013-07-01 7:43 ` Sergio Durigan Junior [this message]
2013-07-01 8:43 ` [PATCH 00/17] Implement gdbarch_gdb_signal_to_target Andreas Schwab
2013-07-01 10:40 ` Sergio Durigan Junior
2013-07-01 10:44 ` Pedro Alves
2013-07-01 10:59 ` Sergio Durigan Junior
2013-07-01 10:46 ` [PATCH 18/18] AArch64 support Sergio Durigan Junior
2013-07-08 23:08 ` [ping][PATCH 00/17] Implement gdbarch_gdb_signal_to_target Sergio Durigan Junior
2013-07-17 18:02 ` [PATCH " Tom Tromey
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1372664545-3947-4-git-send-email-sergiodj@redhat.com \
--to=sergiodj@redhat.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox