diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 810527ec77..e623ae7bb6 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 40805e5e53..3287955ed8 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 7ebb8e92db..c2511a5e19 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