[PATCH] gdbserver/s390: Advertise Z0 packet support.

Marcin Kościelnicki
2016-02-07T13:48:30Z

This is necessary for upcoming tracepoint support - otherwise, setting
a tracepoint and a breakpoint on the same address will fail, since gdbserver
won't know about gdb's breakpoint.

Tested on s390x-ibm-linux-gnu and s390-ibm-linux-gnu, RHEL 7.2.

gdb/gdbserver/ChangeLog:

* linux-s390-low.c (s390_supports_z_point_type): New function.
(struct linux_target_ops): Wire s390_supports_z_point_type in.
---
I've added missing comment. Ping?

gdb/gdbserver/ChangeLog | 5 +++++
gdb/gdbserver/linux-s390-low.c | 18 +++++++++++++++++-
2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index fd49585..254341c 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,5 +1,10 @@
2016-02-07 Marcin KoÅ›cielnicki <koriakin@0x04.net>

+ * linux-s390-low.c (s390_supports_z_point_type): New function.
+ (struct linux_target_ops): Wire s390_supports_z_point_type in.
+
+2016-02-07 Marcin KoÅ›cielnicki <koriakin@0x04.net>
+
* tracepoint.c (struct tracepoint_action_ops): Removed.
(struct tracepoint_action): Removed ops field.
(struct collect_registers_action): Removed.
diff --git a/gdb/gdbserver/linux-s390-low.c b/gdb/gdbserver/linux-s390-low.c
index 63728aa..533e384 100644
--- a/gdb/gdbserver/linux-s390-low.c
+++ b/gdb/gdbserver/linux-s390-low.c
@@ -609,6 +609,22 @@ s390_breakpoint_at (CORE_ADDR pc)
return memcmp (c, s390_breakpoint, s390_breakpoint_len) == 0;
}

+/* Breakpoint/Watchpoint support. */
+
+/* The "supports_z_point_type" linux_target_ops method. */
+
+static int
+s390_supports_z_point_type (char z_type)
+{
+ switch (z_type)
+ {
+ case Z_PACKET_SW_BP:
+ return 1;
+ default:
+ return 0;
+ }
+}
+
/* Support for hardware single step. */

static int
@@ -687,7 +703,7 @@ struct linux_target_ops the_low_target = {
NULL,
s390_breakpoint_len,
s390_breakpoint_at,
- NULL, /* supports_z_point_type */
+ s390_supports_z_point_type,
NULL,
NULL,
NULL,
--
2.7.0