summaryrefslogtreecommitdiffstats
path: root/sys/ia64
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2004-08-07 21:40:52 +0000
committermarcel <marcel@FreeBSD.org>2004-08-07 21:40:52 +0000
commitf8baecdedd3fc12a64417d161cc4e42ab9df4771 (patch)
tree3f94ec9a311a5373e4500cabb7edbf6720337105 /sys/ia64
parentb41136553c65b2455de846c7c65a853d1799c124 (diff)
downloadFreeBSD-src-f8baecdedd3fc12a64417d161cc4e42ab9df4771.zip
FreeBSD-src-f8baecdedd3fc12a64417d161cc4e42ab9df4771.tar.gz
De-inline gdb_cpu_signal() because we need to convert the trap vectors
related to breakpoints and single stepping into SIGTRAP so gdb(1) knows why the remote target has stopped. In particular, gdb(1) needs to know if the reason is something of its own doing.
Diffstat (limited to 'sys/ia64')
-rw-r--r--sys/ia64/ia64/gdb_machdep.c10
-rw-r--r--sys/ia64/include/gdb_machdep.h8
2 files changed, 11 insertions, 7 deletions
diff --git a/sys/ia64/ia64/gdb_machdep.c b/sys/ia64/ia64/gdb_machdep.c
index 8cf6085..62b4755 100644
--- a/sys/ia64/ia64/gdb_machdep.c
+++ b/sys/ia64/ia64/gdb_machdep.c
@@ -137,6 +137,16 @@ gdb_cpu_setreg(int regnum, register_t val)
}
int
+gdb_cpu_signal(int vector, int dummy __unused)
+{
+
+ if (vector == IA64_VEC_BREAK || vector == IA64_VEC_SINGLE_STEP_TRAP)
+ return (SIGTRAP);
+ /* Add 100 so GDB won't translate the vector into signal names. */
+ return (vector + 100);
+}
+
+int
gdb_cpu_query(void)
{
#if 0
diff --git a/sys/ia64/include/gdb_machdep.h b/sys/ia64/include/gdb_machdep.h
index 70ff840..1b957fb 100644
--- a/sys/ia64/include/gdb_machdep.h
+++ b/sys/ia64/include/gdb_machdep.h
@@ -40,15 +40,9 @@ gdb_cpu_regsz(int regnum)
return ((regnum >= 128 && regnum < 256) ? 16 : 8);
}
-static __inline int
-gdb_cpu_signal(int vector, int dummy __unused)
-{
- /* Add 100 so GDB won't translate the vector into signal names. */
- return (vector + 100);
-}
-
void *gdb_cpu_getreg(int, size_t *);
void gdb_cpu_setreg(int, register_t);
+int gdb_cpu_signal(int, int);
int gdb_cpu_query(void);
#endif /* !_MACHINE_GDB_MACHDEP_H_ */
OpenPOWER on IntegriCloud