1 /* Simulator signal support
2 Copyright (C) 1997-2024 Free Software Foundation, Inc.
3 Contributed by Cygnus Support
5 This file is part of the GNU Simulators.
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
20 /* This must come before any other includes. */
27 #include "sim-signal.h"
29 /* Convert SIM_SIGFOO to SIGFOO.
30 What to do when the host doesn't have SIGFOO is handled on a case by case
31 basis. Generally, in the case of passing a value back to gdb, we want gdb
32 to not think the process has died (so it can be debugged at the point of
48 sim_signal_to_host (SIM_DESC sd
, SIM_SIGNAL sig
)
95 sim_io_eprintf (sd
, "sim_signal_to_host: unknown signal: %d\n", sig
);
97 return SIGHUP
; /* FIXME: Suggestions? */
104 sim_signal_to_gdb_signal (SIM_DESC sd
, SIM_SIGNAL sig
)
109 return GDB_SIGNAL_INT
;
112 return GDB_SIGNAL_ABRT
;
115 return GDB_SIGNAL_ILL
;
118 return GDB_SIGNAL_TRAP
;
121 return GDB_SIGNAL_BUS
;
124 return GDB_SIGNAL_SEGV
;
127 return GDB_SIGNAL_XCPU
;
130 return GDB_SIGNAL_FPE
;
138 sim_io_eprintf (sd
, "sim_signal_to_host: unknown signal: %d\n", sig
);
139 return GDB_SIGNAL_HUP
;