From b7149293aa320693b0bc762fb5e09a991fa8dc6a Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Fri, 20 Oct 2006 00:34:35 +0000 Subject: 2005-10-19 Ulrich Weigand * configure.srv [s390-*-linux*, s390x-*-linux*]: Set srv_linux_regsets and srv_linux_thread_db to yes. * linux-s390-low.c (s390_fill_gregset): New function. (target_regsets): Define data structure. --- gdb/gdbserver/ChangeLog | 7 +++++++ gdb/gdbserver/configure.srv | 4 ++++ gdb/gdbserver/linux-s390-low.c | 18 +++++++++++++++++- 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 810527e..e623ae7 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,10 @@ +2005-10-19 Ulrich Weigand + + * configure.srv [s390-*-linux*, s390x-*-linux*]: Set srv_linux_regsets + and srv_linux_thread_db to yes. + * linux-s390-low.c (s390_fill_gregset): New function. + (target_regsets): Define data structure. + 2006-10-17 Daniel Jacobowitz * acinclude.m4 (SRV_CHECK_TLS_GET_ADDR): New. diff --git a/gdb/gdbserver/configure.srv b/gdb/gdbserver/configure.srv index 40805e5..3287955 100644 --- a/gdb/gdbserver/configure.srv +++ b/gdb/gdbserver/configure.srv @@ -87,10 +87,14 @@ case "${target}" in s390-*-linux*) srv_regobj=reg-s390.o srv_tgtobj="linux-low.o linux-s390-low.o" srv_linux_usrregs=yes + srv_linux_regsets=yes + srv_linux_thread_db=yes ;; s390x-*-linux*) srv_regobj=reg-s390x.o srv_tgtobj="linux-low.o linux-s390-low.o" srv_linux_usrregs=yes + srv_linux_regsets=yes + srv_linux_thread_db=yes ;; sh*-*-linux*) srv_regobj=reg-sh.o srv_tgtobj="linux-low.o linux-sh-low.o" diff --git a/gdb/gdbserver/linux-s390-low.c b/gdb/gdbserver/linux-s390-low.c index 7ebb8e9..c2511a5 100644 --- a/gdb/gdbserver/linux-s390-low.c +++ b/gdb/gdbserver/linux-s390-low.c @@ -1,6 +1,6 @@ /* GNU/Linux S/390 specific low level interface, for the remote server for GDB. - Copyright (C) 2001, 2002, 2005 + Copyright (C) 2001, 2002, 2005, 2006 Free Software Foundation, Inc. This file is part of GDB. @@ -75,6 +75,22 @@ s390_cannot_store_register (int regno) return 0; } +/* Provide only a fill function for the general register set. ps_lgetregs + will use this for NPTL support. */ + +static void s390_fill_gregset (void *buf) +{ + int i; + + for (i = 0; i < 34; i++) + collect_register (i, (char *) buf + s390_regmap[i]); +} + +struct regset_info target_regsets[] = { + { 0, 0, 0, GENERAL_REGS, s390_fill_gregset, NULL }, + { 0, 0, -1, -1, NULL, NULL } +}; + static const unsigned char s390_breakpoint[] = { 0, 1 }; #define s390_breakpoint_len 2 -- cgit v1.1