summaryrefslogtreecommitdiff
path: root/libpthread/nptl_db
diff options
context:
space:
mode:
Diffstat (limited to 'libpthread/nptl_db')
-rw-r--r--libpthread/nptl_db/ChangeLog207
-rw-r--r--libpthread/nptl_db/Makefile60
-rw-r--r--libpthread/nptl_db/Versions24
-rw-r--r--libpthread/nptl_db/db_info.c103
-rw-r--r--libpthread/nptl_db/fetch-value.c284
-rw-r--r--libpthread/nptl_db/proc_service.h87
-rw-r--r--libpthread/nptl_db/structs.def86
-rw-r--r--libpthread/nptl_db/td_init.c32
-rw-r--r--libpthread/nptl_db/td_log.c32
-rw-r--r--libpthread/nptl_db/td_symbol_list.c85
-rw-r--r--libpthread/nptl_db/td_ta_clear_event.c79
-rw-r--r--libpthread/nptl_db/td_ta_delete.c42
-rw-r--r--libpthread/nptl_db/td_ta_enable_stats.c35
-rw-r--r--libpthread/nptl_db/td_ta_event_addr.c61
-rw-r--r--libpthread/nptl_db/td_ta_event_getmsg.c105
-rw-r--r--libpthread/nptl_db/td_ta_get_nthreads.c42
-rw-r--r--libpthread/nptl_db/td_ta_get_ph.c36
-rw-r--r--libpthread/nptl_db/td_ta_get_stats.c35
-rw-r--r--libpthread/nptl_db/td_ta_map_id2thr.c38
-rw-r--r--libpthread/nptl_db/td_ta_map_lwp2thr.c178
-rw-r--r--libpthread/nptl_db/td_ta_new.c65
-rw-r--r--libpthread/nptl_db/td_ta_reset_stats.c35
-rw-r--r--libpthread/nptl_db/td_ta_set_event.c79
-rw-r--r--libpthread/nptl_db/td_ta_setconcurrency.c35
-rw-r--r--libpthread/nptl_db/td_ta_thr_iter.c148
-rw-r--r--libpthread/nptl_db/td_ta_tsd_iter.c81
-rw-r--r--libpthread/nptl_db/td_thr_clear_event.c77
-rw-r--r--libpthread/nptl_db/td_thr_dbresume.c30
-rw-r--r--libpthread/nptl_db/td_thr_dbsuspend.c30
-rw-r--r--libpthread/nptl_db/td_thr_event_enable.c34
-rw-r--r--libpthread/nptl_db/td_thr_event_getmsg.c119
-rw-r--r--libpthread/nptl_db/td_thr_get_info.c110
-rw-r--r--libpthread/nptl_db/td_thr_getfpregs.c53
-rw-r--r--libpthread/nptl_db/td_thr_getgregs.c53
-rw-r--r--libpthread/nptl_db/td_thr_getxregs.c30
-rw-r--r--libpthread/nptl_db/td_thr_getxregsize.c30
-rw-r--r--libpthread/nptl_db/td_thr_set_event.c77
-rw-r--r--libpthread/nptl_db/td_thr_setfpregs.c50
-rw-r--r--libpthread/nptl_db/td_thr_setgregs.c50
-rw-r--r--libpthread/nptl_db/td_thr_setprio.c30
-rw-r--r--libpthread/nptl_db/td_thr_setsigpending.c31
-rw-r--r--libpthread/nptl_db/td_thr_setxregs.c30
-rw-r--r--libpthread/nptl_db/td_thr_sigsetmask.c30
-rw-r--r--libpthread/nptl_db/td_thr_tls_get_addr.c43
-rw-r--r--libpthread/nptl_db/td_thr_tlsbase.c50
-rw-r--r--libpthread/nptl_db/td_thr_tsd.c96
-rw-r--r--libpthread/nptl_db/td_thr_validate.c91
-rw-r--r--libpthread/nptl_db/thread_db.h459
-rw-r--r--libpthread/nptl_db/thread_dbP.h254
49 files changed, 0 insertions, 3951 deletions
diff --git a/libpthread/nptl_db/ChangeLog b/libpthread/nptl_db/ChangeLog
deleted file mode 100644
index 52c849138..000000000
--- a/libpthread/nptl_db/ChangeLog
+++ /dev/null
@@ -1,207 +0,0 @@
-2004-09-09 Roland McGrath <roland@redhat.com>
-
- * td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Don't abort if inferior's
- descriptor is bogus.
-
-2004-05-27 Roland McGrath <roland@redhat.com>
-
- * td_thr_validate.c: When we find no threads and the inferior appears
- uninitialized, validate the main thread as a special case.
-
-2004-05-01 Jakub Jelinek <jakub@redhat.com>
-
- * thread_dbP.h (LOG): Use write instead of __libc_write.
-
-2004-04-03 Ulrich Drepper <drepper@redhat.com>
-
- * td_ta_set_event.c (td_ta_set_event): Initialize copy to avoid
- warnings.
-
- * td_ta_thr_iter.c (td_ta_thr_iter): Initialize list to avoid warning.
- * td_ta_clear_event.c (td_ta_clear_event): Initialize eventmask to
- avoid warning.
- * td_ta_set_event.c (td_ta_set_event): Likewise.
-
-2004-03-24 Roland McGrath <roland@redhat.com>
-
- * fetch-value.c (_td_locate_field): Cast DB_DESC_OFFSET to int32_t.
- * thread_dbP.h (DB_DESC_OFFSET): Remove cast from definition.
-
-2004-03-13 Jakub Jelinek <jakub@redhat.com>
-
- * db_info.c: Don't use TLS_TP_OFFSET in the #if, but
- TLS_TCB_SIZE == 0 ?: in the DESC macro.
-
-2004-03-12 Roland McGrath <roland@redhat.com>
-
- * db_info.c [TLS_DTV_AT_TP && TLS_TP_OFFSET > 0]
- (_thread_db_pthread_dtvp): Define differently for this case (PowerPC).
-
-2003-12-11 Ulrich Weigand <uweigand@de.ibm.com>
-
- * db_info.c (REGISTER): Add bit size of thread register as second
- parameter to REGISTER macro.
-
-2003-12-02 Roland McGrath <roland@redhat.com>
-
- * thread_dbP.h (DB_FUNCTION): New macro.
- * structs.def: Use it for __nptl_create_event and __nptl_death_event.
- * db_info.c (DB_FUNCTION): New macro.
- * td_symbol_list.c (DB_FUNCTION): New macro, prepend "." to symbol
- name under [HAVE_ASM_GLOBAL_DOT_NAME].
- (td_lookup) [HAVE_ASM_GLOBAL_DOT_NAME]: If lookup fails with PS_NOSYM
- and name starts with a dot, try it without the dot.
-
-2003-09-08 Roland McGrath <roland@redhat.com>
-
- * td_thr_get_info.c (td_thr_get_info): Cast th_unique to thread_t.
-
-2003-08-22 Roland McGrath <roland@redhat.com>
-
- * fetch-value.c (_td_check_sizeof, _td_locate_field): Return
- TD_NOCAPAB for PS_NOSYM, instead of vanilla TD_ERR.
- * td_thr_tls_get_addr.c (td_thr_tls_get_addr): Return TD_NOAPLIC when
- DB_GET_FIELD returns TD_NOCAPAB.
-
- * thread_db.h (td_thr_tls_get_addr): Use psaddr_t in signature.
- * structs.def [USE_TLS]: Add DB_STRUCT_FIELD (link_map, l_tls_modid).
- * db_info.c (link_map): Typedef it.
- * td_thr_tls_get_addr.c (td_thr_tls_get_addr): Rewritten.
-
-2003-08-14 Roland McGrath <roland@redhat.com>
-
- * thread_dbP.h: Mostly rewritten with many new macros and decls.
- * td_ta_new.c (td_ta_new): Don't cache a lot of symbol values.
- * structs.def: New file.
- * db_info.c: New file.
- * td_symbol_list.c (symbol_list_arr): Define with structs.def macros.
- * td_ta_clear_event.c: Rewritten.
- * td_ta_event_addr.c: Rewritten.
- * td_ta_event_getmsg.c: Rewritten.
- * td_ta_get_nthreads.c: Rewritten.
- * td_ta_map_lwp2thr.c: New file.
- * td_ta_set_event.c: Rewritten.
- * td_ta_thr_iter.c: Rewritten.
- * td_ta_tsd_iter.c: Rewritten.
- * td_thr_clear_event.c: Rewritten.
- * td_thr_event_enable.c: Rewritten.
- * td_thr_event_getmsg.c: Rewritten.
- * td_thr_get_info.c: Rewritten.
- * td_thr_getfpregs.c: Rewritten.
- * td_thr_getgregs.c: Rewritten.
- * td_thr_set_event.c: Rewritten.
- * td_thr_setfpregs.c: Rewritten.
- * td_thr_setgregs.c: Rewritten.
- * td_thr_tlsbase.c: Rewritten.
- * td_thr_tsd.c: Rewritten.
- * td_thr_validate.c: Rewritten.
- * Makefile (distribute): Add them.
- * fetch-value.c: New file.
- * Makefile (libthread_db-routines): Add it.
-
- * thread_db.h (td_err_e): Comment fix.
-
-2003-08-05 Roland McGrath <roland@redhat.com>
-
- * thread_dbP.h (td_lookup): Add attribute_hidden to decl.
-
-2003-08-04 Roland McGrath <roland@redhat.com>
-
- * td_ta_clear_event.c (td_ta_clear_event): Fix sizes in ps_* calls.
-
-2003-06-23 Roland McGrath <roland@redhat.com>
-
- * proc_service.h: Cosmetic and comment fixes.
-
-2003-06-19 Roland McGrath <roland@redhat.com>
-
- * td_thr_event_enable.c (td_thr_event_enable): Use proper type `bool'
- for value written into inferior's `report_events'.
-
-2003-03-18 Roland McGrath <roland@redhat.com>
-
- * td_thr_event_getmsg.c (td_thr_event_getmsg): Splice the thread out
- of the ->nextevent linkage.
-
- * td_ta_event_getmsg.c (td_ta_event_getmsg): Runtime error instead of
- assert for reading TD_EVENT_NONE. Clear the event buffer after
- reading it. Add a sanity check for foo->nextevent = foo.
-
-2003-03-15 Roland McGrath <roland@redhat.com>
-
- * thread_db.h (td_err_e): Add TD_NOTLS and TD_TLSDEFER.
- (td_thr_tlsbase): Declare it.
- * td_thr_tlsbase.c: New file.
- * Makefile (libthread_db-routines): Add it.
- * Versions (libthread_db: GLIBC_2.3.3): New set, add td_thr_tlsbase.
- * td_thr_tls_get_addr.c (td_thr_tls_get_addr): Use td_thr_tlsbase.
-
-2003-03-14 Roland McGrath <roland@redhat.com>
-
- * td_thr_tls_get_addr.c (td_thr_tls_get_addr): Use `header.' prefix.
-
-2003-03-10 Roland McGrath <roland@redhat.com>
-
- * td_ta_thr_iter.c (iterate_thread_list): Don't use `header.data.'
- prefix for `struct pthread' members.
- * td_thr_validate.c (check_thread_list): Likewise.
- * td_thr_tls_get_addr.c (td_thr_tls_get_addr): Likewise.
-
-2003-03-03 Roland McGrath <roland@redhat.com>
-
- * td_thr_tls_get_addr.c (td_thr_tls_get_addr): Handle TLS_DTV_AT_TP.
-
-2003-02-15 Ulrich Drepper <drepper@redhat.com>
-
- * td_symbol_list.c: New symbol name for SYM_PTHREAD_NTHREADS.
-
-2003-01-07 Jakub Jelinek <jakub@redhat.com>
-
- * td_ta_event_getmsg.c: Include assert.h.
-
--2003-01-05 Ulrich Drepper <drepper@redhat.com>
-
- * Makefile (libthread_db.so-no-z-defs): Define.
-
-2003-01-03 Roland McGrath <roland@redhat.com>
-
- * td_thr_setgregs.c (td_thr_setgregs): *_BIT -> *_BITMASK
- * td_thr_setfpregs.c (td_thr_setfpregs): Likewise.
- * td_thr_get_info.c (td_thr_get_info): Likewise.
- * td_thr_getgregs.c (td_thr_getgregs): Likewise.
- * td_thr_getfpregs.c (td_thr_getfpregs): Likewise.
- * td_ta_thr_iter.c (iterate_thread_list): Likewise.
-
-2002-12-12 Roland McGrath <roland@redhat.com>
-
- * td_ta_thr_iter.c (iterate_thread_list): Handle special case of
- uninitialized __stack_user (zeros), hard-wire just the main thread.
-
- * td_thr_get_info.c (td_thr_get_info): Fix ti_lid initialization.
-
-2002-12-06 Roland McGrath <roland@redhat.com>
-
- * td_ta_event_getmsg.c (td_ta_event_getmsg): Write the NEXT pointer
- into the inferior's __pthread_last_event variable, not a word from
- an inferior address used in the parent. Pass the address of a
- null word to ps_pdwrite, not a null pointer.
-
-2002-12-04 Roland McGrath <roland@redhat.com>
-
- * td_thr_get_info.c (td_thr_get_info): ti_tid is pthread_t, not a PID.
-
- * thread_db.h (td_thrinfo_t): Comment fix.
-
- * td_ta_map_lwp2thr.c: Moved to ../nptl/sysdeps/i386/.
-
-2002-12-04 Ulrich Drepper <drepper@redhat.com>
-
- * td_ta_thr_iter.c (iterate_thread_list): At end of iteration read
- pointer to the next element from inferior.
-
-2002-12-02 Roland McGrath <roland@redhat.com>
-
- * td_symbol_list.c (symbol_list_arr): pthread_keys -> __pthread_keys
-
- * td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Fetch inferior registers to
- see its %gs value, not our own.
diff --git a/libpthread/nptl_db/Makefile b/libpthread/nptl_db/Makefile
deleted file mode 100644
index 5c73ff28f..000000000
--- a/libpthread/nptl_db/Makefile
+++ /dev/null
@@ -1,60 +0,0 @@
-# Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library; if not, write to the Free
-# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-# 02111-1307 USA.
-
-# Makefile for NPTL debug library subdirectory of GNU C Library.
-
-subdir := nptl_db
-
-nptl_db-version = 1.0
-
-extra-libs = libthread_db
-extra-libs-others := $(extra-libs)
-
-headers = thread_db.h
-
-libthread_db-routines = td_init td_log td_ta_new td_ta_delete \
- td_ta_get_nthreads td_ta_get_ph \
- td_ta_map_id2thr td_ta_map_lwp2thr \
- td_ta_thr_iter td_ta_tsd_iter \
- td_thr_get_info td_thr_getfpregs td_thr_getgregs \
- td_thr_getxregs td_thr_getxregsize td_thr_setfpregs \
- td_thr_setgregs td_thr_setprio td_thr_setsigpending \
- td_thr_setxregs td_thr_sigsetmask td_thr_tsd \
- td_thr_validate td_thr_dbsuspend td_thr_dbresume \
- td_ta_setconcurrency td_ta_enable_stats \
- td_ta_reset_stats td_ta_get_stats td_ta_event_addr \
- td_thr_event_enable td_thr_set_event \
- td_thr_clear_event td_thr_event_getmsg \
- td_ta_set_event td_ta_event_getmsg \
- td_ta_clear_event td_symbol_list \
- td_thr_tlsbase td_thr_tls_get_addr \
- fetch-value
-
-libthread_db-inhibit-o = $(filter-out .os,$(object-suffixes))
-
-# The ps_* callback functions are not defined.
-libthread_db.so-no-z-defs = yes
-
-distribute = thread_dbP.h shlib-versions proc_service.h db_info.c structs.def
-include ../Rules
-
-# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
-# This ensures they will load libc.so for needed symbols if loaded by
-# a statically-linked program that hasn't already loaded it.
-$(objpfx)libthread_db.so: $(common-objpfx)libc.so \
- $(common-objpfx)libc_nonshared.a
diff --git a/libpthread/nptl_db/Versions b/libpthread/nptl_db/Versions
deleted file mode 100644
index 063493c67..000000000
--- a/libpthread/nptl_db/Versions
+++ /dev/null
@@ -1,24 +0,0 @@
-libthread_db {
- GLIBC_2.1.3 {
- # t*
- td_init; td_log; td_ta_clear_event; td_ta_delete; td_ta_enable_stats;
- td_ta_event_addr; td_ta_event_getmsg; td_ta_get_nthreads; td_ta_get_ph;
- td_ta_get_stats; td_ta_map_id2thr; td_ta_map_lwp2thr; td_ta_new;
- td_ta_reset_stats; td_ta_set_event; td_ta_setconcurrency;
- td_ta_thr_iter; td_ta_tsd_iter; td_thr_clear_event; td_thr_dbresume;
- td_thr_dbsuspend; td_thr_event_enable; td_thr_event_getmsg;
- td_thr_get_info; td_thr_getfpregs; td_thr_getgregs; td_thr_getxregs;
- td_thr_getxregsize; td_thr_set_event; td_thr_setfpregs; td_thr_setgregs;
- td_thr_setprio; td_thr_setsigpending; td_thr_setxregs; td_thr_sigsetmask;
- td_thr_tsd; td_thr_validate;
- }
- GLIBC_2.2.3 {
- td_symbol_list;
- }
- GLIBC_2.3 {
- td_thr_tls_get_addr;
- }
- GLIBC_2.3.3 {
- td_thr_tlsbase;
- }
-}
diff --git a/libpthread/nptl_db/db_info.c b/libpthread/nptl_db/db_info.c
deleted file mode 100644
index 5000b99ba..000000000
--- a/libpthread/nptl_db/db_info.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/* This file is included by pthread_create.c to define in libpthread
- all the magic symbols required by libthread_db.
-
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-#include <tls.h>
-
-typedef struct pthread pthread;
-typedef struct pthread_key_struct pthread_key_struct;
-typedef struct pthread_key_data pthread_key_data;
-typedef struct
-{
- struct pthread_key_data data[PTHREAD_KEY_2NDLEVEL_SIZE];
-}
-pthread_key_data_level2;
-
-typedef struct
-{
- union dtv dtv[UINT32_MAX / 2 / sizeof (union dtv)]; /* No constant bound. */
-} dtv;
-
-typedef struct link_map link_map;
-
-
-#define schedparam_sched_priority schedparam.sched_priority
-
-#define eventbuf_eventmask eventbuf.eventmask
-#define eventbuf_eventmask_event_bits eventbuf.eventmask.event_bits
-
-#define DESC(name, offset, obj) \
- DB_DEFINE_DESC (name, 8 * sizeof (obj), 1, offset);
-#define ARRAY_DESC(name, offset, obj) \
- DB_DEFINE_DESC (name, \
- 8 * sizeof (obj)[0], sizeof (obj) / sizeof (obj)[0], \
- offset);
-
-#if TLS_TCB_AT_TP
-# define dtvp header.dtv
-#elif TLS_DTV_AT_TP
-/* Special case hack. If TLS_TCB_SIZE == 0 (on PowerPC), there is no TCB
- containing the DTV at the TP, but actually the TCB lies behind the TP,
- i.e. at the very end of the area covered by TLS_PRE_TCB_SIZE. */
-DESC (_thread_db_pthread_dtvp,
- TLS_PRE_TCB_SIZE + offsetof (tcbhead_t, dtv)
- - (TLS_TCB_SIZE == 0 ? sizeof (tcbhead_t) : 0), union dtv)
-#endif
-
-
-#define DB_STRUCT(type) \
- const uint32_t _thread_db_sizeof_##type = sizeof (type);
-#define DB_STRUCT_FIELD(type, field) \
- DESC (_thread_db_##type##_##field, \
- offsetof (type, field), ((type *) 0)->field)
-#define DB_STRUCT_ARRAY_FIELD(type, field) \
- ARRAY_DESC (_thread_db_##type##_##field, \
- offsetof (type, field), ((type *) 0)->field)
-#define DB_VARIABLE(name) DESC (_thread_db_##name, 0, name)
-#define DB_ARRAY_VARIABLE(name) ARRAY_DESC (_thread_db_##name, 0, name)
-#define DB_SYMBOL(name) /* Nothing. */
-#define DB_FUNCTION(name) /* Nothing. */
-#include "structs.def"
-#undef DB_STRUCT
-#undef DB_STRUCT_FIELD
-#undef DB_SYMBOL
-#undef DB_FUNCTION
-#undef DB_VARIABLE
-#undef DESC
-
-
-
-#ifdef DB_THREAD_SELF
-# ifdef DB_THREAD_SELF_INCLUDE
-# include DB_THREAD_SELF_INCLUDE
-# endif
-
-/* This macro is defined in the machine's tls.h using the three below. */
-# define CONST_THREAD_AREA(bits, value) \
- const uint32_t _thread_db_const_thread_area = (value);
-# define REGISTER_THREAD_AREA(bits, regofs, scale) \
- DB_DEFINE_DESC (_thread_db_register##bits##_thread_area, \
- bits, (scale), (regofs));
-# define REGISTER(bits, size, regofs, bias) \
- DB_DEFINE_DESC (_thread_db_register##bits, size, (uint32_t)(bias), (regofs));
-
-DB_THREAD_SELF
-#endif
diff --git a/libpthread/nptl_db/fetch-value.c b/libpthread/nptl_db/fetch-value.c
deleted file mode 100644
index 0d9bb0eb8..000000000
--- a/libpthread/nptl_db/fetch-value.c
+++ /dev/null
@@ -1,284 +0,0 @@
-/* Helper routines for libthread_db.
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-#include <byteswap.h>
-#include <assert.h>
-
-td_err_e
-_td_check_sizeof (td_thragent_t *ta, uint32_t *sizep, int sizep_name)
-{
- if (*sizep == 0)
- {
- psaddr_t descptr;
- ps_err_e err = td_lookup (ta->ph, sizep_name, &descptr);
- if (err == PS_NOSYM)
- return TD_NOCAPAB;
- if (err == PS_OK)
- err = ps_pdread (ta->ph, descptr, sizep, sizeof *sizep);
- if (err != PS_OK)
- return TD_ERR;
- if (*sizep & 0xff000000U)
- *sizep = bswap_32 (*sizep);
- }
- return TD_OK;
-}
-
-td_err_e
-_td_locate_field (td_thragent_t *ta,
- db_desc_t desc, int descriptor_name,
- psaddr_t idx, psaddr_t *address)
-{
- uint32_t elemsize;
-
- if (DB_DESC_SIZE (desc) == 0)
- {
- /* Read the information about this field from the inferior. */
- psaddr_t descptr;
- ps_err_e err = td_lookup (ta->ph, descriptor_name, &descptr);
- if (err == PS_NOSYM)
- return TD_NOCAPAB;
- if (err == PS_OK)
- err = ps_pdread (ta->ph, descptr, desc, DB_SIZEOF_DESC);
- if (err != PS_OK)
- return TD_ERR;
- if (DB_DESC_SIZE (desc) == 0)
- return TD_DBERR;
- if (DB_DESC_SIZE (desc) & 0xff000000U)
- {
- /* Byte-swap these words, though we leave the size word
- in native order as the handy way to distinguish. */
- DB_DESC_OFFSET (desc) = bswap_32 (DB_DESC_OFFSET (desc));
- DB_DESC_NELEM (desc) = bswap_32 (DB_DESC_NELEM (desc));
- }
- }
-
- if (idx != 0 && idx - (psaddr_t) 0 > DB_DESC_NELEM (desc))
- /* This is an internal indicator to callers with nonzero IDX
- that the IDX value is too big. */
- return TD_NOAPLIC;
-
- elemsize = DB_DESC_SIZE (desc);
- if (elemsize & 0xff000000U)
- elemsize = bswap_32 (elemsize);
-
- *address += (int32_t) DB_DESC_OFFSET (desc);
- *address += (elemsize / 8 * (idx - (psaddr_t) 0));
- return TD_OK;
-}
-
-td_err_e
-_td_fetch_value (td_thragent_t *ta,
- db_desc_t desc, int descriptor_name,
- psaddr_t idx, psaddr_t address,
- psaddr_t *result)
-{
- ps_err_e err;
- td_err_e terr = _td_locate_field (ta, desc, descriptor_name, idx, &address);
- if (terr != TD_OK)
- return terr;
-
- if (DB_DESC_SIZE (desc) == 8 || DB_DESC_SIZE (desc) == bswap_32 (8))
- {
- uint8_t value;
- err = ps_pdread (ta->ph, address, &value, sizeof value);
- *result = (psaddr_t) 0 + value;
- }
- else if (DB_DESC_SIZE (desc) == 32)
- {
- uint32_t value;
- err = ps_pdread (ta->ph, address, &value, sizeof value);
- *result = (psaddr_t) 0 + value;
- }
- else if (DB_DESC_SIZE (desc) == 64)
- {
- uint64_t value;
- if (sizeof (psaddr_t) < 8)
- return TD_NOCAPAB;
- err = ps_pdread (ta->ph, address, &value, sizeof value);
- *result = (psaddr_t) 0 + value;
- }
- else if (DB_DESC_SIZE (desc) == bswap_32 (32))
- {
- uint32_t value;
- err = ps_pdread (ta->ph, address, &value, sizeof value);
- value = bswap_32 (value);
- *result = (psaddr_t) 0 + value;
- }
- else if (DB_DESC_SIZE (desc) == bswap_32 (64))
- {
- uint64_t value;
- if (sizeof (psaddr_t) < 8)
- return TD_NOCAPAB;
- err = ps_pdread (ta->ph, address, &value, sizeof value);
- value = bswap_64 (value);
- *result = (psaddr_t) 0 + value;
- }
- else
- return TD_DBERR;
-
- return err == PS_OK ? TD_OK : TD_ERR;
-}
-
-
-td_err_e
-_td_store_value (td_thragent_t *ta,
- uint32_t desc[2], int descriptor_name, psaddr_t idx,
- psaddr_t address, psaddr_t widened_value)
-{
- ps_err_e err;
- td_err_e terr = _td_locate_field (ta, desc, descriptor_name, idx, &address);
- if (terr != TD_OK)
- return terr;
-
- if (DB_DESC_SIZE (desc) == 8 || DB_DESC_SIZE (desc) == bswap_32 (8))
- {
- uint8_t value = widened_value - (psaddr_t) 0;
- err = ps_pdwrite (ta->ph, address, &value, sizeof value);
- }
- else if (DB_DESC_SIZE (desc) == 32)
- {
- uint32_t value = widened_value - (psaddr_t) 0;
- err = ps_pdwrite (ta->ph, address, &value, sizeof value);
- }
- else if (DB_DESC_SIZE (desc) == 64)
- {
- uint64_t value = widened_value - (psaddr_t) 0;
- if (sizeof (psaddr_t) < 8)
- return TD_NOCAPAB;
- err = ps_pdwrite (ta->ph, address, &value, sizeof value);
- }
- else if (DB_DESC_SIZE (desc) == bswap_32 (32))
- {
- uint32_t value = widened_value - (psaddr_t) 0;
- value = bswap_32 (value);
- err = ps_pdwrite (ta->ph, address, &value, sizeof value);
- }
- else if (DB_DESC_SIZE (desc) == bswap_32 (64))
- {
- uint64_t value = widened_value - (psaddr_t) 0;
- if (sizeof (psaddr_t) < 8)
- return TD_NOCAPAB;
- value = bswap_64 (value);
- err = ps_pdwrite (ta->ph, address, &value, sizeof value);
- }
- else
- return TD_DBERR;
-
- return err == PS_OK ? TD_OK : TD_ERR;
-}
-
-td_err_e
-_td_fetch_value_local (td_thragent_t *ta,
- db_desc_t desc, int descriptor_name, psaddr_t idx,
- void *address,
- psaddr_t *result)
-{
- td_err_e terr = _td_locate_field (ta, desc, descriptor_name, idx, &address);
- if (terr != TD_OK)
- return terr;
-
- if (DB_DESC_SIZE (desc) == 8 || DB_DESC_SIZE (desc) == bswap_32 (8))
- {
- uint8_t value;
- memcpy (&value, address, sizeof value);
- *result = (psaddr_t) 0 + value;
- }
- else if (DB_DESC_SIZE (desc) == 32)
- {
- uint32_t value;
- memcpy (&value, address, sizeof value);
- *result = (psaddr_t) 0 + value;
- }
- else if (DB_DESC_SIZE (desc) == 64)
- {
- uint64_t value;
- if (sizeof (psaddr_t) < 8)
- return TD_NOCAPAB;
- memcpy (&value, address, sizeof value);
- *result = (psaddr_t) 0 + value;
- }
- else if (DB_DESC_SIZE (desc) == bswap_32 (32))
- {
- uint32_t value;
- memcpy (&value, address, sizeof value);
- value = bswap_32 (value);
- *result = (psaddr_t) 0 + value;
- }
- else if (DB_DESC_SIZE (desc) == bswap_32 (64))
- {
- uint64_t value;
- if (sizeof (psaddr_t) < 8)
- return TD_NOCAPAB;
- memcpy (&value, address, sizeof value);
- value = bswap_64 (value);
- *result = (psaddr_t) 0 + value;
- }
- else
- return TD_DBERR;
-
- return TD_OK;
-}
-
-
-td_err_e
-_td_store_value_local (td_thragent_t *ta,
- uint32_t desc[2], int descriptor_name, psaddr_t idx,
- void *address, psaddr_t widened_value)
-{
- td_err_e terr = _td_locate_field (ta, desc, descriptor_name, idx, &address);
- if (terr != TD_OK)
- return terr;
-
- if (DB_DESC_SIZE (desc) == 8 || DB_DESC_SIZE (desc) == bswap_32 (8))
- {
- uint8_t value = widened_value - (psaddr_t) 0;
- memcpy (address, &value, sizeof value);
- }
- else if (DB_DESC_SIZE (desc) == 32)
- {
- uint32_t value = widened_value - (psaddr_t) 0;
- memcpy (address, &value, sizeof value);
- }
- else if (DB_DESC_SIZE (desc) == 64)
- {
- uint64_t value = widened_value - (psaddr_t) 0;
- if (sizeof (psaddr_t) < 8)
- return TD_NOCAPAB;
- memcpy (address, &value, sizeof value);
- }
- else if (DB_DESC_SIZE (desc) == bswap_32 (32))
- {
- uint32_t value = widened_value - (psaddr_t) 0;
- value = bswap_32 (value);
- memcpy (address, &value, sizeof value);
- }
- else if (DB_DESC_SIZE (desc) == bswap_32 (64))
- {
- uint64_t value = widened_value - (psaddr_t) 0;
- if (sizeof (psaddr_t) < 8)
- return TD_NOCAPAB;
- value = bswap_64 (value);
- memcpy (address, &value, sizeof value);
- }
- else
- return TD_DBERR;
-
- return TD_OK;
-}
diff --git a/libpthread/nptl_db/proc_service.h b/libpthread/nptl_db/proc_service.h
deleted file mode 100644
index d49e87ab3..000000000
--- a/libpthread/nptl_db/proc_service.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Callback interface for libthread_db, functions users must define.
- Copyright (C) 1999,2002,2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-/* The definitions in this file must correspond to those in the debugger. */
-#include <sys/procfs.h>
-
-/* Functions in this interface return one of these status codes. */
-typedef enum
-{
- PS_OK, /* Generic "call succeeded". */
- PS_ERR, /* Generic error. */
- PS_BADPID, /* Bad process handle. */
- PS_BADLID, /* Bad LWP identifier. */
- PS_BADADDR, /* Bad address. */
- PS_NOSYM, /* Could not find given symbol. */
- PS_NOFREGS /* FPU register set not available for given LWP. */
-} ps_err_e;
-
-
-/* This type is opaque in this interface.
- It's defined by the user of libthread_db. */
-struct ps_prochandle;
-
-
-/* Read or write process memory at the given address. */
-extern ps_err_e ps_pdread (struct ps_prochandle *,
- psaddr_t, void *, size_t);
-extern ps_err_e ps_pdwrite (struct ps_prochandle *,
- psaddr_t, const void *, size_t);
-extern ps_err_e ps_ptread (struct ps_prochandle *,
- psaddr_t, void *, size_t);
-extern ps_err_e ps_ptwrite (struct ps_prochandle *,
- psaddr_t, const void *, size_t);
-
-
-/* Get and set the given LWP's general or FPU register set. */
-extern ps_err_e ps_lgetregs (struct ps_prochandle *,
- lwpid_t, prgregset_t);
-extern ps_err_e ps_lsetregs (struct ps_prochandle *,
- lwpid_t, const prgregset_t);
-extern ps_err_e ps_lgetfpregs (struct ps_prochandle *,
- lwpid_t, prfpregset_t *);
-extern ps_err_e ps_lsetfpregs (struct ps_prochandle *,
- lwpid_t, const prfpregset_t *);
-
-/* Return the PID of the process. */
-extern pid_t ps_getpid (struct ps_prochandle *);
-
-/* Fetch the special per-thread address associated with the given LWP.
- This call is only used on a few platforms (most use a normal register).
- The meaning of the `int' parameter is machine-dependent. */
-extern ps_err_e ps_get_thread_area (const struct ps_prochandle *,
- lwpid_t, int, psaddr_t *);
-
-
-/* Look up the named symbol in the named DSO in the symbol tables
- associated with the process being debugged, filling in *SYM_ADDR
- with the corresponding run-time address. */
-extern ps_err_e ps_pglobal_lookup (struct ps_prochandle *,
- const char *object_name,
- const char *sym_name,
- psaddr_t *sym_addr);
-
-
-/* Stop or continue the entire process. */
-extern ps_err_e ps_pstop (const struct ps_prochandle *);
-extern ps_err_e ps_pcontinue (const struct ps_prochandle *);
-
-/* Stop or continue the given LWP alone. */
-extern ps_err_e ps_lstop (const struct ps_prochandle *, lwpid_t);
-extern ps_err_e ps_lcontinue (const struct ps_prochandle *, lwpid_t);
diff --git a/libpthread/nptl_db/structs.def b/libpthread/nptl_db/structs.def
deleted file mode 100644
index b17a628e0..000000000
--- a/libpthread/nptl_db/structs.def
+++ /dev/null
@@ -1,86 +0,0 @@
-/* List of types and symbols in libpthread examined by libthread_db.
- Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#ifndef DB_STRUCT_ARRAY_FIELD
-# define DB_STRUCT_ARRAY_FIELD(type, field) DB_STRUCT_FIELD (type, field)
-# define DB_ARRAY_VARIABLE(name) DB_VARIABLE (name)
-# define STRUCTS_DEF_DEFAULTS 1
-#endif
-
-DB_STRUCT (pthread)
-DB_STRUCT_FIELD (pthread, list)
-DB_STRUCT_FIELD (pthread, report_events)
-DB_STRUCT_FIELD (pthread, tid)
-DB_STRUCT_FIELD (pthread, start_routine)
-DB_STRUCT_FIELD (pthread, cancelhandling)
-DB_STRUCT_FIELD (pthread, schedpolicy)
-DB_STRUCT_FIELD (pthread, schedparam_sched_priority)
-DB_STRUCT_FIELD (pthread, specific)
-DB_STRUCT_FIELD (pthread, eventbuf)
-DB_STRUCT_FIELD (pthread, eventbuf_eventmask)
-DB_STRUCT_ARRAY_FIELD (pthread, eventbuf_eventmask_event_bits)
-DB_STRUCT_FIELD (pthread, nextevent)
-
-DB_STRUCT (list_t)
-DB_STRUCT_FIELD (list_t, next)
-DB_STRUCT_FIELD (list_t, prev)
-
-DB_STRUCT (td_thr_events_t)
-DB_STRUCT_ARRAY_FIELD (td_thr_events_t, event_bits)
-
-DB_STRUCT (td_eventbuf_t)
-DB_STRUCT_FIELD (td_eventbuf_t, eventnum)
-DB_STRUCT_FIELD (td_eventbuf_t, eventdata)
-
-DB_SYMBOL (stack_used)
-DB_SYMBOL (__stack_user)
-DB_SYMBOL (nptl_version)
-DB_FUNCTION (__nptl_create_event)
-DB_FUNCTION (__nptl_death_event)
-DB_SYMBOL (__nptl_threads_events)
-DB_VARIABLE (__nptl_nthreads)
-DB_VARIABLE (__nptl_last_event)
-
-DB_ARRAY_VARIABLE (__pthread_keys)
-DB_STRUCT (pthread_key_struct)
-DB_STRUCT_FIELD (pthread_key_struct, seq)
-DB_STRUCT_FIELD (pthread_key_struct, destr)
-
-DB_STRUCT (pthread_key_data)
-DB_STRUCT_FIELD (pthread_key_data, seq)
-DB_STRUCT_FIELD (pthread_key_data, data)
-DB_STRUCT (pthread_key_data_level2)
-DB_STRUCT_ARRAY_FIELD (pthread_key_data_level2, data)
-
-#if USE_TLS
-DB_STRUCT_FIELD (link_map, l_tls_modid)
-#endif
-
-#if !defined IS_IN_libpthread || USE_TLS
-DB_STRUCT_ARRAY_FIELD (dtv, dtv)
-#endif
-#if !defined IS_IN_libpthread || TLS_TCB_AT_TP
-DB_STRUCT_FIELD (pthread, dtvp)
-#endif
-
-#ifdef STRUCTS_DEF_DEFAULTS
-# undef DB_STRUCT_ARRAY_FIELD
-# undef DB_ARRAY_VARIABLE
-# undef STRUCTS_DEF_DEFAULTS
-#endif
diff --git a/libpthread/nptl_db/td_init.c b/libpthread/nptl_db/td_init.c
deleted file mode 100644
index 946ff7244..000000000
--- a/libpthread/nptl_db/td_init.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Initialization function of thread debugger support library.
- Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-int __td_debug;
-
-
-td_err_e
-td_init (void)
-{
- /* XXX We have to figure out what has to be done. */
- LOG ("td_init");
- return TD_OK;
-}
diff --git a/libpthread/nptl_db/td_log.c b/libpthread/nptl_db/td_log.c
deleted file mode 100644
index 52212a0e9..000000000
--- a/libpthread/nptl_db/td_log.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Noop, left for historical reasons.
- Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_log (void)
-{
- /* This interface is deprecated in the Sun interface. We provide it
- for compatibility but don't do anything ourself. We might in
- future do some logging if this seems reasonable. */
- LOG ("td_log");
- return TD_OK;
-}
diff --git a/libpthread/nptl_db/td_symbol_list.c b/libpthread/nptl_db/td_symbol_list.c
deleted file mode 100644
index 5d6c94e5b..000000000
--- a/libpthread/nptl_db/td_symbol_list.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Return list of symbols the library can request.
- Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <assert.h>
-#include <gnu/lib-names.h>
-#include "thread_dbP.h"
-
-
-#ifdef HAVE_ASM_GLOBAL_DOT_NAME
-# define DOT "." /* PPC64 requires . prefix on code symbols. */
-#else
-# define DOT /* No prefix. */
-#endif
-
-static const char *symbol_list_arr[] =
-{
-# define DB_STRUCT(type) \
- [SYM_SIZEOF_##type] = "_thread_db_sizeof_" #type,
-# define DB_STRUCT_FIELD(type, field) \
- [SYM_##type##_FIELD_##field] = "_thread_db_" #type "_" #field,
-# define DB_SYMBOL(name) \
- [SYM_##name] = #name,
-# define DB_FUNCTION(name) \
- [SYM_##name] = DOT #name,
-# define DB_VARIABLE(name) \
- [SYM_##name] = #name, \
- [SYM_DESC_##name] = "_thread_db_" #name,
-# include "structs.def"
-# undef DB_STRUCT
-# undef DB_FUNCTION
-# undef DB_SYMBOL
-# undef DB_VARIABLE
-
- [SYM_TH_UNIQUE_CONST_THREAD_AREA] = "_thread_db_const_thread_area",
- [SYM_TH_UNIQUE_REGISTER64] = "_thread_db_register64",
- [SYM_TH_UNIQUE_REGISTER32] = "_thread_db_register32",
- [SYM_TH_UNIQUE_REGISTER32_THREAD_AREA] = "_thread_db_register32_thread_area",
- [SYM_TH_UNIQUE_REGISTER64_THREAD_AREA] = "_thread_db_register64_thread_area",
-
- [SYM_NUM_MESSAGES] = NULL
-};
-
-
-const char **
-td_symbol_list (void)
-{
- return symbol_list_arr;
-}
-
-
-ps_err_e
-td_lookup (struct ps_prochandle *ps, int idx, psaddr_t *sym_addr)
-{
- ps_err_e result;
- assert (idx >= 0 && idx < SYM_NUM_MESSAGES);
- result = ps_pglobal_lookup (ps, LIBPTHREAD_SO, symbol_list_arr[idx],
- sym_addr);
-
-#ifdef HAVE_ASM_GLOBAL_DOT_NAME
- /* For PowerPC, 64-bit uses dot symbols but 32-bit does not.
- We could be a 64-bit libthread_db debugging a 32-bit libpthread. */
- if (result == PS_NOSYM && symbol_list_arr[idx][0] == '.')
- result = ps_pglobal_lookup (ps, LIBPTHREAD_SO, &symbol_list_arr[idx][1],
- sym_addr);
-#endif
-
- return result;
-}
diff --git a/libpthread/nptl_db/td_ta_clear_event.c b/libpthread/nptl_db/td_ta_clear_event.c
deleted file mode 100644
index 7a2850c4e..000000000
--- a/libpthread/nptl_db/td_ta_clear_event.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Globally disable events.
- Copyright (C) 1999, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_ta_clear_event (ta_arg, event)
- const td_thragent_t *ta_arg;
- td_thr_events_t *event;
-{
- td_thragent_t *const ta = (td_thragent_t *) ta_arg;
- td_err_e err;
- psaddr_t eventmask = 0;
- void *copy = NULL;
-
- LOG ("td_ta_clear_event");
-
- /* Test whether the TA parameter is ok. */
- if (! ta_ok (ta))
- return TD_BADTA;
-
- /* Fetch the old event mask from the inferior and modify it in place. */
- err = DB_GET_SYMBOL (eventmask, ta, __nptl_threads_events);
- if (err == TD_OK)
- err = DB_GET_STRUCT (copy, ta, eventmask, td_thr_events_t);
- if (err == TD_OK)
- {
- uint32_t idx;
- for (idx = 0; idx < TD_EVENTSIZE; ++idx)
- {
- psaddr_t word;
- uint32_t mask;
- err = DB_GET_FIELD_LOCAL (word, ta, copy,
- td_thr_events_t, event_bits, idx);
- if (err != TD_OK)
- break;
- mask = (uintptr_t) word;
- mask &= ~event->event_bits[idx];
- word = (psaddr_t) (uintptr_t) mask;
- err = DB_PUT_FIELD_LOCAL (ta, copy,
- td_thr_events_t, event_bits, idx, word);
- if (err != TD_OK)
- break;
- }
- if (err == TD_NOAPLIC)
- {
- err = TD_OK;
- while (idx < TD_EVENTSIZE)
- if (event->event_bits[idx++] != 0)
- {
- err = TD_NOEVENT;
- break;
- }
- }
- if (err == TD_OK)
- /* Now write it back to the inferior. */
- err = DB_PUT_STRUCT (ta, eventmask, td_thr_events_t, copy);
- }
-
- return err;
-}
diff --git a/libpthread/nptl_db/td_ta_delete.c b/libpthread/nptl_db/td_ta_delete.c
deleted file mode 100644
index 57b90e57f..000000000
--- a/libpthread/nptl_db/td_ta_delete.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Detach to target process.
- Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <stdlib.h>
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_ta_delete (td_thragent_t *ta)
-{
- LOG ("td_ta_delete");
-
- /* Safety check. Note that the test will also fail for TA == NULL. */
- if (!ta_ok (ta))
- return TD_BADTA;
-
- /* Remove the handle from the list. */
- list_del (&ta->list);
-
- /* The handle was allocated in `td_ta_new'. */
- free (ta);
-
- return TD_OK;
-}
diff --git a/libpthread/nptl_db/td_ta_enable_stats.c b/libpthread/nptl_db/td_ta_enable_stats.c
deleted file mode 100644
index ec7014ad2..000000000
--- a/libpthread/nptl_db/td_ta_enable_stats.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Enable collection of statistics for process.
- Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_ta_enable_stats (const td_thragent_t *ta, int enable)
-{
- /* XXX We have to figure out what has to be done. */
- LOG ("td_ta_enable_stats");
-
- /* Test whether the TA parameter is ok. */
- if (! ta_ok (ta))
- return TD_BADTA;
-
- return TD_OK;
-}
diff --git a/libpthread/nptl_db/td_ta_event_addr.c b/libpthread/nptl_db/td_ta_event_addr.c
deleted file mode 100644
index 37196e643..000000000
--- a/libpthread/nptl_db/td_ta_event_addr.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Get event address.
- Copyright (C) 1999,2001,2002,2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_ta_event_addr (const td_thragent_t *ta_arg,
- td_event_e event, td_notify_t *addr)
-{
- td_thragent_t *const ta = (td_thragent_t *) ta_arg;
- td_err_e err;
- psaddr_t taddr;
-
- LOG ("td_ta_event_addr");
-
- /* Test whether the TA parameter is ok. */
- if (! ta_ok (ta))
- return TD_BADTA;
-
- switch (event)
- {
- case TD_CREATE:
- err = DB_GET_SYMBOL (taddr, ta, __nptl_create_event);
- break;
-
- case TD_DEATH:
- err = DB_GET_SYMBOL (taddr, ta, __nptl_death_event);
- break;
-
- default:
- /* Event cannot be handled. */
- return TD_NOEVENT;
- }
-
- if (err == TD_OK)
- {
- /* Success, we got the address. */
- addr->type = NOTIFY_BPT;
- addr->u.bptaddr = taddr;
- }
-
- return err;
-}
diff --git a/libpthread/nptl_db/td_ta_event_getmsg.c b/libpthread/nptl_db/td_ta_event_getmsg.c
deleted file mode 100644
index 6e68ff4ff..000000000
--- a/libpthread/nptl_db/td_ta_event_getmsg.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Retrieve event.
- Copyright (C) 1999, 2001, 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <stddef.h>
-#include <string.h>
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_ta_event_getmsg (const td_thragent_t *ta_arg, td_event_msg_t *msg)
-{
- td_thragent_t *const ta = (td_thragent_t *) ta_arg;
- td_err_e err;
- psaddr_t eventbuf, eventnum, eventdata;
- psaddr_t thp, next;
- void *copy;
-
- /* XXX I cannot think of another way but using a static variable. */
- /* XXX Use at least __thread once it is possible. */
- static td_thrhandle_t th;
-
- LOG ("td_thr_event_getmsg");
-
- /* Test whether the TA parameter is ok. */
- if (! ta_ok (ta))
- return TD_BADTA;
-
- /* Get the pointer to the thread descriptor with the last event. */
- err = DB_GET_VALUE (thp, ta, __nptl_last_event, 0);
- if (err != TD_OK)
- return err;
-
- if (thp == 0)
- /* Nothing waiting. */
- return TD_NOMSG;
-
- /* Copy the event message buffer in from the inferior. */
- err = DB_GET_FIELD_ADDRESS (eventbuf, ta, thp, pthread, eventbuf, 0);
- if (err == TD_OK)
- err = DB_GET_STRUCT (copy, ta, eventbuf, td_eventbuf_t);
- if (err != TD_OK)
- return err;
-
- /* Read the event details from the target thread. */
- err = DB_GET_FIELD_LOCAL (eventnum, ta, copy, td_eventbuf_t, eventnum, 0);
- if (err != TD_OK)
- return err;
- /* If the structure is on the list there better be an event recorded. */
- if ((int) (uintptr_t) eventnum == TD_EVENT_NONE)
- return TD_DBERR;
-
- /* Fill the user's data structure. */
- err = DB_GET_FIELD_LOCAL (eventdata, ta, copy, td_eventbuf_t, eventdata, 0);
- if (err != TD_OK)
- return err;
-
- /* Generate the thread descriptor. */
- th.th_ta_p = (td_thragent_t *) ta;
- th.th_unique = thp;
-
- /* Fill the user's data structure. */
- msg->msg.data = (uintptr_t) eventdata;
- msg->event = (uintptr_t) eventnum;
- msg->th_p = &th;
-
- /* And clear the event message in the target. */
- memset (copy, 0, ta->ta_sizeof_td_eventbuf_t);
- err = DB_PUT_STRUCT (ta, eventbuf, td_eventbuf_t, copy);
- if (err != TD_OK)
- return err;
-
- /* Get the pointer to the next descriptor with an event. */
- err = DB_GET_FIELD (next, ta, thp, pthread, nextevent, 0);
- if (err != TD_OK)
- return err;
-
- /* Store the pointer in the list head variable. */
- err = DB_PUT_VALUE (ta, __nptl_last_event, 0, next);
- if (err != TD_OK)
- return err;
-
- if (next != 0)
- /* Clear the next pointer in the current descriptor. */
- err = DB_PUT_FIELD (ta, thp, pthread, nextevent, 0, 0);
-
- return err;
-}
diff --git a/libpthread/nptl_db/td_ta_get_nthreads.c b/libpthread/nptl_db/td_ta_get_nthreads.c
deleted file mode 100644
index ffe78bd57..000000000
--- a/libpthread/nptl_db/td_ta_get_nthreads.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Get the number of threads in the process.
- Copyright (C) 1999,2001,2002,2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-td_err_e
-td_ta_get_nthreads (const td_thragent_t *ta_arg, int *np)
-{
- td_thragent_t *const ta = (td_thragent_t *) ta_arg;
- td_err_e err;
- psaddr_t n;
-
- LOG ("td_ta_get_nthreads");
-
- /* Test whether the TA parameter is ok. */
- if (! ta_ok (ta))
- return TD_BADTA;
-
- /* Access the variable in the inferior that tells us. */
- err = DB_GET_VALUE (n, ta, __nptl_nthreads, 0);
- if (err == TD_OK)
- *np = (uintptr_t) n;
-
- return err;
-}
diff --git a/libpthread/nptl_db/td_ta_get_ph.c b/libpthread/nptl_db/td_ta_get_ph.c
deleted file mode 100644
index 04e01fb73..000000000
--- a/libpthread/nptl_db/td_ta_get_ph.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Get external process handle.
- Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_ta_get_ph (const td_thragent_t *ta, struct ps_prochandle **ph)
-{
- LOG ("td_ta_get_ph");
-
- /* Test whether the TA parameter is ok. */
- if (! ta_ok (ta))
- return TD_BADTA;
-
- *ph = ta->ph;
-
- return TD_OK;
-}
diff --git a/libpthread/nptl_db/td_ta_get_stats.c b/libpthread/nptl_db/td_ta_get_stats.c
deleted file mode 100644
index d5d879c3e..000000000
--- a/libpthread/nptl_db/td_ta_get_stats.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Retrieve statistics for process.
- Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_ta_get_stats (const td_thragent_t *ta, td_ta_stats_t *statsp)
-{
- /* XXX We have to figure out what has to be done. */
- LOG ("td_ta_get_stats");
-
- /* Test whether the TA parameter is ok. */
- if (! ta_ok (ta))
- return TD_BADTA;
-
- return TD_OK;
-}
diff --git a/libpthread/nptl_db/td_ta_map_id2thr.c b/libpthread/nptl_db/td_ta_map_id2thr.c
deleted file mode 100644
index 189a67171..000000000
--- a/libpthread/nptl_db/td_ta_map_id2thr.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Map thread ID to thread handle.
- Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_ta_map_id2thr (const td_thragent_t *ta, pthread_t pt, td_thrhandle_t *th)
-{
- LOG ("td_ta_map_id2thr");
-
- /* Test whether the TA parameter is ok. */
- if (! ta_ok (ta))
- return TD_BADTA;
-
- /* Create the `td_thrhandle_t' object. */
- th->th_ta_p = (td_thragent_t *) ta;
- th->th_unique = (psaddr_t) pt;
-
- return TD_OK;
-}
diff --git a/libpthread/nptl_db/td_ta_map_lwp2thr.c b/libpthread/nptl_db/td_ta_map_lwp2thr.c
deleted file mode 100644
index 1e93210b9..000000000
--- a/libpthread/nptl_db/td_ta_map_lwp2thr.c
+++ /dev/null
@@ -1,178 +0,0 @@
-/* Which thread is running on an LWP?
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-#include <stdlib.h>
-#include <byteswap.h>
-#include <sys/procfs.h>
-
-
-td_err_e
-td_ta_map_lwp2thr (const td_thragent_t *ta_arg,
- lwpid_t lwpid, td_thrhandle_t *th)
-{
- td_thragent_t *const ta = (td_thragent_t *) ta_arg;
- ps_err_e err;
- td_err_e terr;
- prgregset_t regs;
- psaddr_t addr;
-
- LOG ("td_ta_map_lwp2thr");
-
- /* Test whether the TA parameter is ok. */
- if (! ta_ok (ta))
- return TD_BADTA;
-
- if (ta->ta_howto == ta_howto_unknown)
- {
- /* We need to read in from the inferior the instructions what to do. */
- psaddr_t howto;
-
- err = td_lookup (ta->ph, SYM_TH_UNIQUE_CONST_THREAD_AREA, &howto);
- if (err == PS_OK)
- {
- err = ps_pdread (ta->ph, howto,
- &ta->ta_howto_data.const_thread_area,
- sizeof ta->ta_howto_data.const_thread_area);
- if (err != PS_OK)
- return TD_ERR;
- ta->ta_howto = ta_howto_const_thread_area;
- if (ta->ta_howto_data.const_thread_area & 0xff000000U)
- ta->ta_howto_data.const_thread_area
- = bswap_32 (ta->ta_howto_data.const_thread_area);
- }
- else
- {
- switch (sizeof (regs[0]))
- {
- case 8:
- err = td_lookup (ta->ph, SYM_TH_UNIQUE_REGISTER64, &howto);
- if (err == PS_OK)
- ta->ta_howto = ta_howto_reg;
- else if (err == PS_NOSYM)
- {
- err = td_lookup (ta->ph,
- SYM_TH_UNIQUE_REGISTER64_THREAD_AREA,
- &howto);
- if (err == PS_OK)
- ta->ta_howto = ta_howto_reg_thread_area;
- }
- break;
-
- case 4:
- err = td_lookup (ta->ph, SYM_TH_UNIQUE_REGISTER32, &howto);
- if (err == PS_OK)
- ta->ta_howto = ta_howto_reg;
- else if (err == PS_NOSYM)
- {
- err = td_lookup (ta->ph,
- SYM_TH_UNIQUE_REGISTER32_THREAD_AREA,
- &howto);
- if (err == PS_OK)
- ta->ta_howto = ta_howto_reg_thread_area;
- }
- break;
-
- default:
- abort ();
- return TD_DBERR;
- }
-
- if (err != PS_OK)
- return TD_DBERR;
-
- /* For either of these methods we read in the same descriptor. */
- err = ps_pdread (ta->ph, howto,
- ta->ta_howto_data.reg, DB_SIZEOF_DESC);
- if (err != PS_OK)
- return TD_ERR;
- if (DB_DESC_SIZE (ta->ta_howto_data.reg) == 0)
- return TD_DBERR;
- if (DB_DESC_SIZE (ta->ta_howto_data.reg) & 0xff000000U)
- {
- /* Byte-swap these words, though we leave the size word
- in native order as the handy way to distinguish. */
- DB_DESC_OFFSET (ta->ta_howto_data.reg)
- = bswap_32 (DB_DESC_OFFSET (ta->ta_howto_data.reg));
- DB_DESC_NELEM (ta->ta_howto_data.reg)
- = bswap_32 (DB_DESC_NELEM (ta->ta_howto_data.reg));
- }
- }
- }
-
- switch (ta->ta_howto)
- {
- case ta_howto_unknown:
- return TD_DBERR;
-
- default:
- return TD_DBERR;
-
- case ta_howto_reg:
- /* On most machines, we are just looking at a register. */
- if (ps_lgetregs (ta->ph, lwpid, regs) != PS_OK)
- return TD_ERR;
- terr = _td_fetch_value_local (ta, ta->ta_howto_data.reg, -1,
- 0, regs, &addr);
- if (terr != TD_OK)
- return terr;
- /* In this descriptor the nelem word is overloaded as the bias. */
- addr += (int32_t) DB_DESC_NELEM (ta->ta_howto_data.reg);
- th->th_unique = addr;
- break;
-
- case ta_howto_const_thread_area:
- /* Some hosts don't have this call and this case won't be used. */
-# pragma weak ps_get_thread_area
- if (&ps_get_thread_area == NULL)
- return TD_NOCAPAB;
-
- /* A la x86-64, there is a constant magic index for get_thread_area. */
- if (ps_get_thread_area (ta->ph, lwpid,
- ta->ta_howto_data.const_thread_area,
- &th->th_unique) != PS_OK)
- return TD_ERR; /* XXX Other error value? */
- break;
-
- case ta_howto_reg_thread_area:
- if (&ps_get_thread_area == NULL)
- return TD_NOCAPAB;
-
- /* A la i386, there is a register with an index for get_thread_area. */
- if (ps_lgetregs (ta->ph, lwpid, regs) != PS_OK)
- return TD_ERR;
- terr = _td_fetch_value_local (ta, ta->ta_howto_data.reg_thread_area, -1,
- 0, regs, &addr);
- if (terr != TD_OK)
- return terr;
- /* In this descriptor the nelem word is overloaded as scale factor. */
- if (ps_get_thread_area
- (ta->ph, lwpid,
- ((addr - (psaddr_t) 0)
- >> DB_DESC_NELEM (ta->ta_howto_data.reg_thread_area)),
- &th->th_unique) != PS_OK)
- return TD_ERR; /* XXX Other error value? */
- break;
- }
-
- /* Found it. Now complete the `td_thrhandle_t' object. */
- th->th_ta_p = (td_thragent_t *) ta;
-
- return TD_OK;
-}
diff --git a/libpthread/nptl_db/td_ta_new.c b/libpthread/nptl_db/td_ta_new.c
deleted file mode 100644
index f84049af3..000000000
--- a/libpthread/nptl_db/td_ta_new.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Attach to target process.
- Copyright (C) 1999,2001,2002,2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
-#include <version.h>
-
-#include "thread_dbP.h"
-
-
-/* Datatype for the list of known thread agents. Normally there will
- be exactly one so we don't spend much though on making it fast. */
-LIST_HEAD (__td_agent_list);
-
-
-td_err_e
-td_ta_new (struct ps_prochandle *ps, td_thragent_t **ta)
-{
- psaddr_t versaddr;
- char versbuf[sizeof (VERSION)];
-
- LOG ("td_ta_new");
-
- /* Check whether the versions match. */
- if (td_lookup (ps, SYM_nptl_version, &versaddr) != PS_OK)
- return TD_NOLIBTHREAD;
- if (ps_pdread (ps, versaddr, versbuf, sizeof (versbuf)) != PS_OK)
- return TD_ERR;
-
- if (memcmp (versbuf, VERSION, sizeof VERSION) != 0)
- /* Not the right version. */
- return TD_VERSION;
-
- /* Fill in the appropriate information. */
- *ta = (td_thragent_t *) calloc (1, sizeof (td_thragent_t));
- if (*ta == NULL)
- return TD_MALLOC;
-
- /* Store the proc handle which we will pass to the callback functions
- back into the debugger. */
- (*ta)->ph = ps;
-
- /* Now add the new agent descriptor to the list. */
- list_add (&(*ta)->list, &__td_agent_list);
-
- return TD_OK;
-}
diff --git a/libpthread/nptl_db/td_ta_reset_stats.c b/libpthread/nptl_db/td_ta_reset_stats.c
deleted file mode 100644
index ea59d2cda..000000000
--- a/libpthread/nptl_db/td_ta_reset_stats.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Reset statistics.
- Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_ta_reset_stats (const td_thragent_t *ta)
-{
- /* XXX We have to figure out what has to be done. */
- LOG ("td_ta_reset_stats");
-
- /* Test whether the TA parameter is ok. */
- if (! ta_ok (ta))
- return TD_BADTA;
-
- return TD_OK;
-}
diff --git a/libpthread/nptl_db/td_ta_set_event.c b/libpthread/nptl_db/td_ta_set_event.c
deleted file mode 100644
index 29fc14bfb..000000000
--- a/libpthread/nptl_db/td_ta_set_event.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Globally enable events.
- Copyright (C) 1999,2001,2002,2003,2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_ta_set_event (ta_arg, event)
- const td_thragent_t *ta_arg;
- td_thr_events_t *event;
-{
- td_thragent_t *const ta = (td_thragent_t *) ta_arg;
- td_err_e err;
- psaddr_t eventmask = 0;
- void *copy = NULL;
-
- LOG ("td_ta_set_event");
-
- /* Test whether the TA parameter is ok. */
- if (! ta_ok (ta))
- return TD_BADTA;
-
- /* Fetch the old event mask from the inferior and modify it in place. */
- err = DB_GET_SYMBOL (eventmask, ta, __nptl_threads_events);
- if (err == TD_OK)
- err = DB_GET_STRUCT (copy, ta, eventmask, td_thr_events_t);
- if (err == TD_OK)
- {
- uint32_t idx;
- for (idx = 0; idx < TD_EVENTSIZE; ++idx)
- {
- psaddr_t word;
- uint32_t mask;
- err = DB_GET_FIELD_LOCAL (word, ta, copy,
- td_thr_events_t, event_bits, idx);
- if (err != TD_OK)
- break;
- mask = (uintptr_t) word;
- mask |= event->event_bits[idx];
- word = (psaddr_t) (uintptr_t) mask;
- err = DB_PUT_FIELD_LOCAL (ta, copy,
- td_thr_events_t, event_bits, idx, word);
- if (err != TD_OK)
- break;
- }
- if (err == TD_NOAPLIC)
- {
- err = TD_OK;
- while (idx < TD_EVENTSIZE)
- if (event->event_bits[idx++] != 0)
- {
- err = TD_NOEVENT;
- break;
- }
- }
- if (err == TD_OK)
- /* Now write it back to the inferior. */
- err = DB_PUT_STRUCT (ta, eventmask, td_thr_events_t, copy);
- }
-
- return err;
-}
diff --git a/libpthread/nptl_db/td_ta_setconcurrency.c b/libpthread/nptl_db/td_ta_setconcurrency.c
deleted file mode 100644
index 8552ffbe0..000000000
--- a/libpthread/nptl_db/td_ta_setconcurrency.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Set suggested concurrency level for process.
- Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_ta_setconcurrency (const td_thragent_t *ta, int level)
-{
- /* This is something LinuxThreads does not need to support. */
- LOG ("td_ta_setconcurrency");
-
- /* Test whether the TA parameter is ok. */
- if (! ta_ok (ta))
- return TD_BADTA;
-
- return TD_NOCAPAB;
-}
diff --git a/libpthread/nptl_db/td_ta_thr_iter.c b/libpthread/nptl_db/td_ta_thr_iter.c
deleted file mode 100644
index 66e437665..000000000
--- a/libpthread/nptl_db/td_ta_thr_iter.c
+++ /dev/null
@@ -1,148 +0,0 @@
-/* Iterate over a process's threads.
- Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-
-static td_err_e
-iterate_thread_list (td_thragent_t *ta, td_thr_iter_f *callback,
- void *cbdata_p, td_thr_state_e state, int ti_pri,
- psaddr_t head, int fake_empty)
-{
- td_err_e err;
- psaddr_t next, ofs;
- void *copy;
-
- /* Test the state.
- XXX This is incomplete. Normally this test should be in the loop. */
- if (state != TD_THR_ANY_STATE)
- return TD_OK;
-
- err = DB_GET_FIELD (next, ta, head, list_t, next, 0);
- if (err != TD_OK)
- return err;
-
- if (next == 0 && fake_empty)
- {
- /* __pthread_initialize_minimal has not run.
- There is just the main thread to return. */
- td_thrhandle_t th;
- err = td_ta_map_lwp2thr (ta, ps_getpid (ta->ph), &th);
- if (err == TD_OK)
- err = callback (&th, cbdata_p) != 0 ? TD_DBERR : TD_OK;
- return err;
- }
-
- /* Cache the offset from struct pthread to its list_t member. */
- err = DB_GET_FIELD_ADDRESS (ofs, ta, 0, pthread, list, 0);
- if (err != TD_OK)
- return err;
-
- if (ta->ta_sizeof_pthread == 0)
- {
- err = _td_check_sizeof (ta, &ta->ta_sizeof_pthread, SYM_SIZEOF_pthread);
- if (err != TD_OK)
- return err;
- }
- copy = __alloca (ta->ta_sizeof_pthread);
-
- while (next != head)
- {
- psaddr_t addr, schedpolicy, schedprio;
-
- addr = next - (ofs - (psaddr_t) 0);
- if (next == 0 || addr == 0) /* Sanity check. */
- return TD_DBERR;
-
- /* Copy the whole descriptor in once so we can access the several
- fields locally. Excess copying in one go is much better than
- multiple ps_pdread calls. */
- if (ps_pdread (ta->ph, addr, copy, ta->ta_sizeof_pthread) != PS_OK)
- return TD_ERR;
-
- err = DB_GET_FIELD_LOCAL (schedpolicy, ta, copy, pthread,
- schedpolicy, 0);
- if (err != TD_OK)
- break;
- err = DB_GET_FIELD_LOCAL (schedprio, ta, copy, pthread,
- schedparam_sched_priority, 0);
- if (err != TD_OK)
- break;
-
- /* Now test whether this thread matches the specified conditions. */
-
- /* Only if the priority level is as high or higher. */
- int descr_pri = ((uintptr_t) schedpolicy == SCHED_OTHER
- ? 0 : (uintptr_t) schedprio);
- if (descr_pri >= ti_pri)
- {
- /* Yep, it matches. Call the callback function. */
- td_thrhandle_t th;
- th.th_ta_p = (td_thragent_t *) ta;
- th.th_unique = addr;
- if (callback (&th, cbdata_p) != 0)
- return TD_DBERR;
- }
-
- /* Get the pointer to the next element. */
- err = DB_GET_FIELD_LOCAL (next, ta, copy + (ofs - (psaddr_t) 0), list_t,
- next, 0);
- if (err != TD_OK)
- break;
- }
-
- return err;
-}
-
-
-td_err_e
-td_ta_thr_iter (const td_thragent_t *ta_arg, td_thr_iter_f *callback,
- void *cbdata_p, td_thr_state_e state, int ti_pri,
- sigset_t *ti_sigmask_p, unsigned int ti_user_flags)
-{
- td_thragent_t *const ta = (td_thragent_t *) ta_arg;
- td_err_e err;
- psaddr_t list = 0;
-
- LOG ("td_ta_thr_iter");
-
- /* Test whether the TA parameter is ok. */
- if (! ta_ok (ta))
- return TD_BADTA;
-
- /* The thread library keeps two lists for the running threads. One
- list contains the thread which are using user-provided stacks
- (this includes the main thread) and the other includes the
- threads for which the thread library allocated the stacks. We
- have to iterate over both lists separately. We start with the
- list of threads with user-defined stacks. */
-
- err = DB_GET_SYMBOL (list, ta, __stack_user);
- if (err == TD_OK)
- err = iterate_thread_list (ta, callback, cbdata_p, state, ti_pri, list, 1);
-
- /* And the threads with stacks allocated by the implementation. */
- if (err == TD_OK)
- err = DB_GET_SYMBOL (list, ta, stack_used);
- if (err == TD_OK)
- err = iterate_thread_list (ta, callback, cbdata_p, state, ti_pri, list, 0);
-
- return err;
-}
diff --git a/libpthread/nptl_db/td_ta_tsd_iter.c b/libpthread/nptl_db/td_ta_tsd_iter.c
deleted file mode 100644
index 9cfb1e8de..000000000
--- a/libpthread/nptl_db/td_ta_tsd_iter.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Iterate over a process's thread-specific data.
- Copyright (C) 1999,2000,2001,2002,2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-#include <alloca.h>
-
-td_err_e
-td_ta_tsd_iter (const td_thragent_t *ta_arg, td_key_iter_f *callback,
- void *cbdata_p)
-{
- td_thragent_t *const ta = (td_thragent_t *) ta_arg;
- td_err_e err;
- void *keys;
- size_t keys_nb, keys_elemsize;
- psaddr_t addr;
- uint32_t idx;
-
- LOG ("td_ta_tsd_iter");
-
- /* Test whether the TA parameter is ok. */
- if (! ta_ok (ta))
- return TD_BADTA;
-
- /* This makes sure we have the size information on hand. */
- addr = 0;
- err = _td_locate_field (ta,
- ta->ta_var___pthread_keys, SYM_DESC___pthread_keys,
- (psaddr_t) 0 + 1, &addr);
- if (err != TD_OK)
- return err;
-
- /* Now copy in the entire array of key descriptors. */
- keys_elemsize = (addr - (psaddr_t) 0) / 8;
- keys_nb = keys_elemsize * DB_DESC_NELEM (ta->ta_var___pthread_keys);
- keys = __alloca (keys_nb);
- err = DB_GET_SYMBOL (addr, ta, __pthread_keys);
- if (err != TD_OK)
- return err;
- if (ps_pdread (ta->ph, addr, keys, keys_nb) != PS_OK)
- return TD_ERR;
-
- /* Now get all descriptors, one after the other. */
- for (idx = 0; idx < DB_DESC_NELEM (ta->ta_var___pthread_keys); ++idx)
- {
- psaddr_t seq, destr;
- err = DB_GET_FIELD_LOCAL (seq, ta, keys, pthread_key_struct, seq, 0);
- if (err != TD_OK)
- return err;
- if (((uintptr_t) seq) & 1)
- {
- err = DB_GET_FIELD_LOCAL (destr, ta, keys, pthread_key_struct,
- destr, 0);
- if (err != TD_OK)
- return err;
- /* Return with an error if the callback returns a nonzero value. */
- if (callback ((thread_key_t) idx, destr, cbdata_p) != 0)
- return TD_DBERR;
- }
- /* Advance to the next element in the copied array. */
- keys += keys_elemsize;
- }
-
- return TD_OK;
-}
diff --git a/libpthread/nptl_db/td_thr_clear_event.c b/libpthread/nptl_db/td_thr_clear_event.c
deleted file mode 100644
index fc999df9c..000000000
--- a/libpthread/nptl_db/td_thr_clear_event.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Disable specific event for thread.
- Copyright (C) 1999,2001,2002,2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <stddef.h>
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_thr_clear_event (th, event)
- const td_thrhandle_t *th;
- td_thr_events_t *event;
-{
- td_err_e err;
- psaddr_t eventmask;
- void *copy;
-
- LOG ("td_thr_clear_event");
-
- /* Fetch the old event mask from the inferior and modify it in place. */
- err = DB_GET_FIELD_ADDRESS (eventmask, th->th_ta_p,
- th->th_unique, pthread, eventbuf_eventmask, 0);
- if (err == TD_OK)
- err = DB_GET_STRUCT (copy, th->th_ta_p, eventmask, td_thr_events_t);
- if (err == TD_OK)
- {
- uint32_t idx;
- for (idx = 0; idx < TD_EVENTSIZE; ++idx)
- {
- psaddr_t word;
- uint32_t mask;
- err = DB_GET_FIELD_LOCAL (word, th->th_ta_p, copy,
- td_thr_events_t, event_bits, idx);
- if (err != TD_OK)
- break;
- mask = (uintptr_t) word;
- mask &= ~event->event_bits[idx];
- word = (psaddr_t) (uintptr_t) mask;
- err = DB_PUT_FIELD_LOCAL (th->th_ta_p, copy,
- td_thr_events_t, event_bits, idx, word);
- if (err != TD_OK)
- break;
- }
- if (err == TD_NOAPLIC)
- {
- err = TD_OK;
- while (idx < TD_EVENTSIZE)
- if (event->event_bits[idx++] != 0)
- {
- err = TD_NOEVENT;
- break;
- }
- }
- if (err == TD_OK)
- /* Now write it back to the inferior. */
- err = DB_PUT_STRUCT (th->th_ta_p, eventmask, td_thr_events_t, copy);
- }
-
- return err;
-}
diff --git a/libpthread/nptl_db/td_thr_dbresume.c b/libpthread/nptl_db/td_thr_dbresume.c
deleted file mode 100644
index 3fd794377..000000000
--- a/libpthread/nptl_db/td_thr_dbresume.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Resume execution of given thread.
- Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_thr_dbresume (const td_thrhandle_t *th)
-{
- /* XXX We have to figure out what has to be done. */
- LOG ("td_thr_dbresume");
- return TD_NOCAPAB;
-}
diff --git a/libpthread/nptl_db/td_thr_dbsuspend.c b/libpthread/nptl_db/td_thr_dbsuspend.c
deleted file mode 100644
index 6ef82ad34..000000000
--- a/libpthread/nptl_db/td_thr_dbsuspend.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Suspend execution of given thread.
- Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_thr_dbsuspend (const td_thrhandle_t *th)
-{
- /* XXX We have to figure out what has to be done. */
- LOG ("td_thr_dbsuspend");
- return TD_NOCAPAB;
-}
diff --git a/libpthread/nptl_db/td_thr_event_enable.c b/libpthread/nptl_db/td_thr_event_enable.c
deleted file mode 100644
index a02be5da4..000000000
--- a/libpthread/nptl_db/td_thr_event_enable.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Enable event process-wide.
- Copyright (C) 1999, 2001, 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_thr_event_enable (th, onoff)
- const td_thrhandle_t *th;
- int onoff;
-{
- LOG ("td_thr_event_enable");
-
- /* Write the new value into the thread data structure. */
- return DB_PUT_FIELD (th->th_ta_p, th->th_unique, pthread, report_events, 0,
- (psaddr_t) 0 + (onoff != 0));
-}
diff --git a/libpthread/nptl_db/td_thr_event_getmsg.c b/libpthread/nptl_db/td_thr_event_getmsg.c
deleted file mode 100644
index 70ea6953e..000000000
--- a/libpthread/nptl_db/td_thr_event_getmsg.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Retrieve event.
- Copyright (C) 1999, 2001, 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-#include <assert.h>
-
-
-td_err_e
-td_thr_event_getmsg (const td_thrhandle_t *th, td_event_msg_t *msg)
-{
- td_err_e err;
- psaddr_t eventbuf, eventnum, eventdata;
- psaddr_t thp, prevp;
- void *copy;
-
- LOG ("td_thr_event_getmsg");
-
- /* Copy the event message buffer in from the inferior. */
- err = DB_GET_FIELD_ADDRESS (eventbuf, th->th_ta_p, th->th_unique, pthread,
- eventbuf, 0);
- if (err == TD_OK)
- err = DB_GET_STRUCT (copy, th->th_ta_p, eventbuf, td_eventbuf_t);
- if (err != TD_OK)
- return err;
-
- /* Check whether an event occurred. */
- err = DB_GET_FIELD_LOCAL (eventnum, th->th_ta_p, copy,
- td_eventbuf_t, eventnum, 0);
- if (err != TD_OK)
- return err;
- if ((int) (uintptr_t) eventnum == TD_EVENT_NONE)
- /* Nothing. */
- return TD_NOMSG;
-
- /* Fill the user's data structure. */
- err = DB_GET_FIELD_LOCAL (eventdata, th->th_ta_p, copy,
- td_eventbuf_t, eventdata, 0);
- if (err != TD_OK)
- return err;
-
- msg->msg.data = (uintptr_t) eventdata;
- msg->event = (uintptr_t) eventnum;
- msg->th_p = th;
-
- /* And clear the event message in the target. */
- memset (copy, 0, th->th_ta_p->ta_sizeof_td_eventbuf_t);
- err = DB_PUT_STRUCT (th->th_ta_p, eventbuf, td_eventbuf_t, copy);
- if (err != TD_OK)
- return err;
-
- /* Get the pointer to the thread descriptor with the last event.
- If it doesn't match TH, then walk down the list until we find it.
- We must splice it out of the list so that there is no dangling
- pointer to it later when it dies. */
- err = DB_GET_SYMBOL (prevp, th->th_ta_p, __nptl_last_event);
- if (err != TD_OK)
- return err;
- err = DB_GET_VALUE (thp, th->th_ta_p, __nptl_last_event, 0);
- if (err != TD_OK)
- return err;
-
- while (thp != 0)
- {
- psaddr_t next;
- err = DB_GET_FIELD (next, th->th_ta_p, th->th_unique, pthread,
- nextevent, 0);
- if (err != TD_OK)
- return err;
-
- if (next == thp)
- return TD_DBERR;
-
- if (thp == th->th_unique)
- {
- /* PREVP points at this thread, splice it out. */
- psaddr_t next_nextp;
- err = DB_GET_FIELD_ADDRESS (next_nextp, th->th_ta_p, next, pthread,
- nextevent, 0);
- assert (err == TD_OK); /* We used this field before. */
- if (prevp == next_nextp)
- return TD_DBERR;
-
- err = _td_store_value (th->th_ta_p,
- th->th_ta_p->ta_var___nptl_last_event, -1,
- 0, prevp, next);
- if (err != TD_OK)
- return err;
-
- /* Now clear this thread's own next pointer so it's not dangling
- when the thread resumes and then chains on for its next event. */
- return DB_PUT_FIELD (th->th_ta_p, thp, pthread, nextevent, 0, 0);
- }
-
- err = DB_GET_FIELD_ADDRESS (prevp, th->th_ta_p, thp, pthread,
- nextevent, 0);
- assert (err == TD_OK); /* We used this field before. */
- thp = next;
- }
-
- /* Ack! This should not happen. */
- return TD_DBERR;
-}
diff --git a/libpthread/nptl_db/td_thr_get_info.c b/libpthread/nptl_db/td_thr_get_info.c
deleted file mode 100644
index bb1388804..000000000
--- a/libpthread/nptl_db/td_thr_get_info.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/* Get thread information.
- Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <stddef.h>
-#include <string.h>
-#include "thread_dbP.h"
-
-
-td_err_e
-td_thr_get_info (const td_thrhandle_t *th, td_thrinfo_t *infop)
-{
- td_err_e err;
- void *copy;
- psaddr_t tls, schedpolicy, schedprio, cancelhandling, tid, report_events;
-
- LOG ("td_thr_get_info");
-
- /* Copy the whole descriptor in once so we can access the several
- fields locally. Excess copying in one go is much better than
- multiple ps_pdread calls. */
- err = DB_GET_STRUCT (copy, th->th_ta_p, th->th_unique, pthread);
- if (err != TD_OK)
- return err;
-
- err = DB_GET_FIELD_ADDRESS (tls, th->th_ta_p, th->th_unique,
- pthread, specific, 0);
- if (err != TD_OK)
- return err;
-
- err = DB_GET_FIELD_LOCAL (schedpolicy, th->th_ta_p, copy, pthread,
- schedpolicy, 0);
- if (err != TD_OK)
- return err;
- err = DB_GET_FIELD_LOCAL (schedprio, th->th_ta_p, copy, pthread,
- schedparam_sched_priority, 0);
- if (err != TD_OK)
- return err;
- err = DB_GET_FIELD_LOCAL (tid, th->th_ta_p, copy, pthread, tid, 0);
- if (err != TD_OK)
- return err;
- err = DB_GET_FIELD_LOCAL (cancelhandling, th->th_ta_p, copy, pthread,
- cancelhandling, 0);
- if (err != TD_OK)
- return err;
- err = DB_GET_FIELD_LOCAL (report_events, th->th_ta_p, copy, pthread,
- report_events, 0);
- if (err != TD_OK)
- return err;
-
- /* Fill in information. Clear first to provide reproducable
- results for the fields we do not fill in. */
- memset (infop, '\0', sizeof (td_thrinfo_t));
-
- infop->ti_tid = (thread_t) th->th_unique;
- infop->ti_tls = (char *) tls;
- infop->ti_pri = ((uintptr_t) schedpolicy == SCHED_OTHER
- ? 0 : (uintptr_t) schedprio);
- infop->ti_type = TD_THR_USER;
-
- if ((((int) (uintptr_t) cancelhandling) & EXITING_BITMASK) == 0)
- /* XXX For now there is no way to get more information. */
- infop->ti_state = TD_THR_ACTIVE;
- else if ((((int) (uintptr_t) cancelhandling) & TERMINATED_BITMASK) == 0)
- infop->ti_state = TD_THR_ZOMBIE;
- else
- infop->ti_state = TD_THR_UNKNOWN;
-
- /* Initialization which are the same in both cases. */
- infop->ti_ta_p = th->th_ta_p;
- infop->ti_lid = tid == 0 ? ps_getpid (th->th_ta_p->ph) : (uintptr_t) tid;
- infop->ti_traceme = report_events != 0;
-
- err = DB_GET_FIELD_LOCAL (infop->ti_startfunc, th->th_ta_p, copy, pthread,
- start_routine, 0);
- if (err == TD_OK)
- {
- uint32_t idx;
- for (idx = 0; idx < TD_EVENTSIZE; ++idx)
- {
- psaddr_t word;
- err = DB_GET_FIELD_LOCAL (word, th->th_ta_p, copy, pthread,
- eventbuf_eventmask_event_bits, idx);
- if (err != TD_OK)
- break;
- infop->ti_events.event_bits[idx] = (uintptr_t) word;
- }
- if (err == TD_NOAPLIC)
- memset (&infop->ti_events.event_bits[idx], 0,
- (TD_EVENTSIZE - idx) * sizeof infop->ti_events.event_bits[0]);
- }
-
- return err;
-}
diff --git a/libpthread/nptl_db/td_thr_getfpregs.c b/libpthread/nptl_db/td_thr_getfpregs.c
deleted file mode 100644
index 7760512eb..000000000
--- a/libpthread/nptl_db/td_thr_getfpregs.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Get a thread's floating-point register set.
- Copyright (C) 1999, 2001, 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_thr_getfpregs (const td_thrhandle_t *th, prfpregset_t *regset)
-{
- psaddr_t cancelhandling, tid;
- td_err_e err;
-
- LOG ("td_thr_getfpregs");
-
- /* We have to get the state and the PID for this thread. */
- err = DB_GET_FIELD (cancelhandling, th->th_ta_p, th->th_unique, pthread,
- cancelhandling, 0);
- if (err != TD_OK)
- return err;
-
- /* If the thread already terminated we return all zeroes. */
- if (((int) (uintptr_t) cancelhandling) & TERMINATED_BITMASK)
- memset (regset, '\0', sizeof (*regset));
- /* Otherwise get the register content through the callback. */
- else
- {
- err = DB_GET_FIELD (tid, th->th_ta_p, th->th_unique, pthread, tid, 0);
- if (err != TD_OK)
- return err;
-
- if (ps_lgetfpregs (th->th_ta_p->ph, (uintptr_t) tid, regset) != PS_OK)
- return TD_ERR;
- }
-
- return TD_OK;
-}
diff --git a/libpthread/nptl_db/td_thr_getgregs.c b/libpthread/nptl_db/td_thr_getgregs.c
deleted file mode 100644
index 4c2373ef6..000000000
--- a/libpthread/nptl_db/td_thr_getgregs.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Get a thread's general register set.
- Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_thr_getgregs (const td_thrhandle_t *th, prgregset_t regset)
-{
- psaddr_t cancelhandling, tid;
- td_err_e err;
-
- LOG ("td_thr_getgregs");
-
- /* We have to get the state and the PID for this thread. */
- err = DB_GET_FIELD (cancelhandling, th->th_ta_p, th->th_unique, pthread,
- cancelhandling, 0);
- if (err != TD_OK)
- return err;
-
- /* If the thread already terminated we return all zeroes. */
- if (((int) (uintptr_t) cancelhandling) & TERMINATED_BITMASK)
- memset (regset, '\0', sizeof (*regset));
- /* Otherwise get the register content through the callback. */
- else
- {
- err = DB_GET_FIELD (tid, th->th_ta_p, th->th_unique, pthread, tid, 0);
- if (err != TD_OK)
- return err;
-
- if (ps_lgetregs (th->th_ta_p->ph, (uintptr_t) tid, regset) != PS_OK)
- return TD_ERR;
- }
-
- return TD_OK;
-}
diff --git a/libpthread/nptl_db/td_thr_getxregs.c b/libpthread/nptl_db/td_thr_getxregs.c
deleted file mode 100644
index 3c77ab6be..000000000
--- a/libpthread/nptl_db/td_thr_getxregs.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Get a thread's extra state register set.
- Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_thr_getxregs (const td_thrhandle_t *th, void *xregs)
-{
- /* XXX This might be platform specific. */
- LOG ("td_thr_getxregs");
- return TD_NOXREGS;
-}
diff --git a/libpthread/nptl_db/td_thr_getxregsize.c b/libpthread/nptl_db/td_thr_getxregsize.c
deleted file mode 100644
index 1704e4b0a..000000000
--- a/libpthread/nptl_db/td_thr_getxregsize.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Get the size of the extra state register set for this architecture.
- Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_thr_getxregsize (const td_thrhandle_t *th, int *sizep)
-{
- /* XXX This might be platform specific. */
- LOG ("td_thr_getxregsize");
- return TD_NOXREGS;
-}
diff --git a/libpthread/nptl_db/td_thr_set_event.c b/libpthread/nptl_db/td_thr_set_event.c
deleted file mode 100644
index 2bb0b9d1f..000000000
--- a/libpthread/nptl_db/td_thr_set_event.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Enable specific event for thread.
- Copyright (C) 1999,2001,2002,2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <stddef.h>
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_thr_set_event (th, event)
- const td_thrhandle_t *th;
- td_thr_events_t *event;
-{
- td_err_e err;
- psaddr_t eventmask;
- void *copy;
-
- LOG ("td_thr_set_event");
-
- /* Fetch the old event mask from the inferior and modify it in place. */
- err = DB_GET_FIELD_ADDRESS (eventmask, th->th_ta_p,
- th->th_unique, pthread, eventbuf_eventmask, 0);
- if (err == TD_OK)
- err = DB_GET_STRUCT (copy, th->th_ta_p, eventmask, td_thr_events_t);
- if (err == TD_OK)
- {
- uint32_t idx;
- for (idx = 0; idx < TD_EVENTSIZE; ++idx)
- {
- psaddr_t word;
- uint32_t mask;
- err = DB_GET_FIELD_LOCAL (word, th->th_ta_p, copy,
- td_thr_events_t, event_bits, idx);
- if (err != TD_OK)
- break;
- mask = (uintptr_t) word;
- mask |= event->event_bits[idx];
- word = (psaddr_t) (uintptr_t) mask;
- err = DB_PUT_FIELD_LOCAL (th->th_ta_p, copy,
- td_thr_events_t, event_bits, idx, word);
- if (err != TD_OK)
- break;
- }
- if (err == TD_NOAPLIC)
- {
- err = TD_OK;
- while (idx < TD_EVENTSIZE)
- if (event->event_bits[idx++] != 0)
- {
- err = TD_NOEVENT;
- break;
- }
- }
- if (err == TD_OK)
- /* Now write it back to the inferior. */
- err = DB_PUT_STRUCT (th->th_ta_p, eventmask, td_thr_events_t, copy);
- }
-
- return err;
-}
diff --git a/libpthread/nptl_db/td_thr_setfpregs.c b/libpthread/nptl_db/td_thr_setfpregs.c
deleted file mode 100644
index 01bdb5323..000000000
--- a/libpthread/nptl_db/td_thr_setfpregs.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Set a thread's floating-point register set.
- Copyright (C) 1999, 2001, 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_thr_setfpregs (const td_thrhandle_t *th, const prfpregset_t *fpregs)
-{
- psaddr_t cancelhandling, tid;
- td_err_e err;
-
- LOG ("td_thr_setfpregs");
-
- /* We have to get the state and the PID for this thread. */
- err = DB_GET_FIELD (cancelhandling, th->th_ta_p, th->th_unique, pthread,
- cancelhandling, 0);
- if (err != TD_OK)
- return err;
-
- /* Only set the registers if the thread hasn't yet terminated. */
- if ((((int) (uintptr_t) cancelhandling) & TERMINATED_BITMASK) == 0)
- {
- err = DB_GET_FIELD (tid, th->th_ta_p, th->th_unique, pthread, tid, 0);
- if (err != TD_OK)
- return err;
-
- if (ps_lsetfpregs (th->th_ta_p->ph, (uintptr_t) tid, fpregs) != PS_OK)
- return TD_ERR;
- }
-
- return TD_OK;
-}
diff --git a/libpthread/nptl_db/td_thr_setgregs.c b/libpthread/nptl_db/td_thr_setgregs.c
deleted file mode 100644
index 2a9ce7e01..000000000
--- a/libpthread/nptl_db/td_thr_setgregs.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Set a thread's general register set.
- Copyright (C) 1999, 2001, 2002, 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_thr_setgregs (const td_thrhandle_t *th, prgregset_t gregs)
-{
- psaddr_t cancelhandling, tid;
- td_err_e err;
-
- LOG ("td_thr_setgregs");
-
- /* We have to get the state and the PID for this thread. */
- err = DB_GET_FIELD (cancelhandling, th->th_ta_p, th->th_unique, pthread,
- cancelhandling, 0);
- if (err != TD_OK)
- return err;
-
- /* Only set the registers if the thread hasn't yet terminated. */
- if ((((int) (uintptr_t) cancelhandling) & TERMINATED_BITMASK) == 0)
- {
- err = DB_GET_FIELD (tid, th->th_ta_p, th->th_unique, pthread, tid, 0);
- if (err != TD_OK)
- return err;
-
- if (ps_lsetregs (th->th_ta_p->ph, tid - (psaddr_t) 0, gregs) != PS_OK)
- return TD_ERR;
- }
-
- return TD_OK;
-}
diff --git a/libpthread/nptl_db/td_thr_setprio.c b/libpthread/nptl_db/td_thr_setprio.c
deleted file mode 100644
index 6032b0ed4..000000000
--- a/libpthread/nptl_db/td_thr_setprio.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Set a thread's priority.
- Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_thr_setprio (const td_thrhandle_t *th, int prio)
-{
- /* XXX We have to figure out what has to be done. */
- LOG ("td_thr_setprio");
- return TD_OK;
-}
diff --git a/libpthread/nptl_db/td_thr_setsigpending.c b/libpthread/nptl_db/td_thr_setsigpending.c
deleted file mode 100644
index e2c9d7ad2..000000000
--- a/libpthread/nptl_db/td_thr_setsigpending.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Raise a signal for a thread.
- Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_thr_setsigpending (const td_thrhandle_t *th, unsigned char n,
- const sigset_t *ss)
-{
- /* XXX We have to figure out what has to be done. */
- LOG ("td_thr_setsigpending");
- return TD_OK;
-}
diff --git a/libpthread/nptl_db/td_thr_setxregs.c b/libpthread/nptl_db/td_thr_setxregs.c
deleted file mode 100644
index f48877c78..000000000
--- a/libpthread/nptl_db/td_thr_setxregs.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Set a thread's extra state register set.
- Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_thr_setxregs (const td_thrhandle_t *ta, const void *addr)
-{
- /* XXX This might have to be platform specific. */
- LOG ("td_thr_setxregs");
- return TD_NOXREGS;
-}
diff --git a/libpthread/nptl_db/td_thr_sigsetmask.c b/libpthread/nptl_db/td_thr_sigsetmask.c
deleted file mode 100644
index 3a68aecd3..000000000
--- a/libpthread/nptl_db/td_thr_sigsetmask.c
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Set a thread's signal mask.
- Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_thr_sigsetmask (const td_thrhandle_t *th, const sigset_t *ss)
-{
- /* XXX We have to figure out what has to be done. */
- LOG ("td_thr_sigsetmask");
- return TD_OK;
-}
diff --git a/libpthread/nptl_db/td_thr_tls_get_addr.c b/libpthread/nptl_db/td_thr_tls_get_addr.c
deleted file mode 100644
index e7d232272..000000000
--- a/libpthread/nptl_db/td_thr_tls_get_addr.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Get address of thread local variable.
- Copyright (C) 2002,2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@cygnus.com>, 2002.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <link.h>
-#include "thread_dbP.h"
-
-td_err_e
-td_thr_tls_get_addr (const td_thrhandle_t *th,
- psaddr_t map_address, size_t offset, psaddr_t *address)
-{
- td_err_e err;
- psaddr_t modid;
-
- /* Get the TLS module ID from the `struct link_map' in the inferior. */
- err = DB_GET_FIELD (modid, th->th_ta_p, map_address, link_map,
- l_tls_modid, 0);
- if (err == TD_NOCAPAB)
- return TD_NOAPLIC;
- if (err == TD_OK)
- {
- err = td_thr_tlsbase (th, (uintptr_t) modid, address);
- if (err == TD_OK)
- *address += offset;
- }
- return err;
-}
diff --git a/libpthread/nptl_db/td_thr_tlsbase.c b/libpthread/nptl_db/td_thr_tlsbase.c
deleted file mode 100644
index c57009a73..000000000
--- a/libpthread/nptl_db/td_thr_tlsbase.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Locate TLS data for a thread.
- Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-td_err_e
-td_thr_tlsbase (const td_thrhandle_t *th,
- unsigned long int modid,
- psaddr_t *base)
-{
- td_err_e err;
- psaddr_t dtv, dtvptr;
-
- if (modid < 1)
- return TD_NOTLS;
-
- /* Get the DTV pointer from the thread descriptor. */
- err = DB_GET_FIELD (dtv, th->th_ta_p, th->th_unique, pthread, dtvp, 0);
- if (err != TD_OK)
- return err;
-
- /* Get the corresponding entry in the DTV. */
- err = DB_GET_FIELD (dtvptr, th->th_ta_p, dtv, dtv, dtv, modid);
- if (err != TD_OK)
- return err;
-
- /* It could be that the memory for this module is not allocated for
- the given thread. */
- if ((uintptr_t) dtvptr & 1)
- return TD_TLSDEFER;
-
- *base = dtvptr;
- return TD_OK;
-}
diff --git a/libpthread/nptl_db/td_thr_tsd.c b/libpthread/nptl_db/td_thr_tsd.c
deleted file mode 100644
index 08f617b7d..000000000
--- a/libpthread/nptl_db/td_thr_tsd.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/* Get a thread-specific data pointer for a thread.
- Copyright (C) 1999,2001,2002,2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-
-
-td_err_e
-td_thr_tsd (const td_thrhandle_t *th, const thread_key_t tk, void **data)
-{
- td_err_e err;
- psaddr_t tk_seq, level1, level2, seq, value;
- void *copy;
- uint32_t pthread_key_2ndlevel_size, idx1st, idx2nd;
-
- LOG ("td_thr_tsd");
-
- /* Get the key entry. */
- err = DB_GET_VALUE (tk_seq, th->th_ta_p, __pthread_keys, tk);
- if (err == TD_NOAPLIC)
- return TD_BADKEY;
- if (err != TD_OK)
- return err;
-
- /* Fail if this key is not at all used. */
- if (((uintptr_t) tk_seq & 1) == 0)
- return TD_BADKEY;
-
- /* This makes sure we have the size information on hand. */
- err = DB_GET_FIELD_ADDRESS (level2, th->th_ta_p, 0, pthread_key_data_level2,
- data, 1);
- if (err != TD_OK)
- return err;
-
- /* Compute the indeces. */
- pthread_key_2ndlevel_size
- = DB_DESC_NELEM (th->th_ta_p->ta_field_pthread_key_data_level2_data);
- idx1st = tk / pthread_key_2ndlevel_size;
- idx2nd = tk % pthread_key_2ndlevel_size;
-
- /* Now fetch the first level pointer. */
- err = DB_GET_FIELD (level1, th->th_ta_p, th->th_unique, pthread,
- specific, idx1st);
- if (err == TD_NOAPLIC)
- return TD_DBERR;
- if (err != TD_OK)
- return err;
-
- /* Check the pointer to the second level array. */
- if (level1 == 0)
- return TD_NOTSD;
-
- /* Locate the element within the second level array. */
- err = DB_GET_FIELD_ADDRESS (level2, th->th_ta_p,
- level1, pthread_key_data_level2, data, idx2nd);
- if (err == TD_NOAPLIC)
- return TD_DBERR;
- if (err != TD_OK)
- return err;
-
- /* Now copy in that whole structure. */
- err = DB_GET_STRUCT (copy, th->th_ta_p, level2, pthread_key_data);
- if (err != TD_OK)
- return err;
-
- /* Check whether the data is valid. */
- err = DB_GET_FIELD_LOCAL (seq, th->th_ta_p, copy, pthread_key_data, seq, 0);
- if (err != TD_OK)
- return err;
- if (seq != tk_seq)
- return TD_NOTSD;
-
- /* Finally, fetch the value. */
- err = DB_GET_FIELD_LOCAL (value, th->th_ta_p, copy, pthread_key_data,
- data, 0);
- if (err == TD_OK)
- *data = value;
-
- return err;
-}
diff --git a/libpthread/nptl_db/td_thr_validate.c b/libpthread/nptl_db/td_thr_validate.c
deleted file mode 100644
index 3d560a621..000000000
--- a/libpthread/nptl_db/td_thr_validate.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Validate a thread handle.
- Copyright (C) 1999, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include "thread_dbP.h"
-#include <stdbool.h>
-
-static td_err_e
-check_thread_list (const td_thrhandle_t *th, psaddr_t head, bool *uninit)
-{
- td_err_e err;
- psaddr_t next, ofs;
-
- err = DB_GET_FIELD (next, th->th_ta_p, head, list_t, next, 0);
- if (err == TD_OK)
- {
- if (next == 0)
- {
- *uninit = true;
- return TD_NOTHR;
- }
- err = DB_GET_FIELD_ADDRESS (ofs, th->th_ta_p, 0, pthread, list, 0);
- }
-
- while (err == TD_OK)
- {
- if (next == head)
- return TD_NOTHR;
-
- if (next - (ofs - (psaddr_t) 0) == th->th_unique)
- return TD_OK;
-
- err = DB_GET_FIELD (next, th->th_ta_p, next, list_t, next, 0);
- }
-
- return err;
-}
-
-
-td_err_e
-td_thr_validate (const td_thrhandle_t *th)
-{
- td_err_e err;
- psaddr_t list;
-
- LOG ("td_thr_validate");
-
- /* First check the list with threads using user allocated stacks. */
- bool uninit = false;
- err = DB_GET_SYMBOL (list, th->th_ta_p, __stack_user);
- if (err == TD_OK)
- err = check_thread_list (th, list, &uninit);
-
- /* If our thread is not on this list search the list with stack
- using implementation allocated stacks. */
- if (err == TD_NOTHR)
- {
- err = DB_GET_SYMBOL (list, th->th_ta_p, stack_used);
- if (err == TD_OK)
- err = check_thread_list (th, list, &uninit);
-
- if (err == TD_NOTHR && uninit)
- {
- /* __pthread_initialize_minimal has not run yet.
- But the main thread still has a valid ID. */
- td_thrhandle_t main_th;
- err = td_ta_map_lwp2thr (th->th_ta_p,
- ps_getpid (th->th_ta_p->ph), &main_th);
- if (err == TD_OK && th->th_unique != main_th.th_unique)
- err = TD_NOTHR;
- }
- }
-
- return err;
-}
diff --git a/libpthread/nptl_db/thread_db.h b/libpthread/nptl_db/thread_db.h
deleted file mode 100644
index 433b54fd5..000000000
--- a/libpthread/nptl_db/thread_db.h
+++ /dev/null
@@ -1,459 +0,0 @@
-/* thread_db.h -- interface to libthread_db.so library for debugging -lpthread
- Copyright (C) 1999,2001,2002,2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#ifndef _THREAD_DB_H
-#define _THREAD_DB_H 1
-
-/* This is the debugger interface for the NPTL library. It is
- modelled closely after the interface with same names in Solaris
- with the goal to share the same code in the debugger. */
-#include <pthread.h>
-#include <stdint.h>
-#include <sys/types.h>
-#include <sys/procfs.h>
-
-
-/* Error codes of the library. */
-typedef enum
-{
- TD_OK, /* No error. */
- TD_ERR, /* No further specified error. */
- TD_NOTHR, /* No matching thread found. */
- TD_NOSV, /* No matching synchronization handle found. */
- TD_NOLWP, /* No matching light-weighted process found. */
- TD_BADPH, /* Invalid process handle. */
- TD_BADTH, /* Invalid thread handle. */
- TD_BADSH, /* Invalid synchronization handle. */
- TD_BADTA, /* Invalid thread agent. */
- TD_BADKEY, /* Invalid key. */
- TD_NOMSG, /* No event available. */
- TD_NOFPREGS, /* No floating-point register content available. */
- TD_NOLIBTHREAD, /* Application not linked with thread library. */
- TD_NOEVENT, /* Requested event is not supported. */
- TD_NOCAPAB, /* Capability not available. */
- TD_DBERR, /* Internal debug library error. */
- TD_NOAPLIC, /* Operation is not applicable. */
- TD_NOTSD, /* No thread-specific data available. */
- TD_MALLOC, /* Out of memory. */
- TD_PARTIALREG, /* Not entire register set was read or written. */
- TD_NOXREGS, /* X register set not available for given thread. */
- TD_TLSDEFER, /* Thread has not yet allocated TLS for given module. */
- TD_NOTALLOC = TD_TLSDEFER,
- TD_VERSION, /* Version if libpthread and libthread_db do not match. */
- TD_NOTLS /* There is no TLS segment in the given module. */
-} td_err_e;
-
-
-/* Possible thread states. TD_THR_ANY_STATE is a pseudo-state used to
- select threads regardless of state in td_ta_thr_iter(). */
-typedef enum
-{
- TD_THR_ANY_STATE,
- TD_THR_UNKNOWN,
- TD_THR_STOPPED,
- TD_THR_RUN,
- TD_THR_ACTIVE,
- TD_THR_ZOMBIE,
- TD_THR_SLEEP,
- TD_THR_STOPPED_ASLEEP
-} td_thr_state_e;
-
-/* Thread type: user or system. TD_THR_ANY_TYPE is a pseudo-type used
- to select threads regardless of type in td_ta_thr_iter(). */
-typedef enum
-{
- TD_THR_ANY_TYPE,
- TD_THR_USER,
- TD_THR_SYSTEM
-} td_thr_type_e;
-
-
-/* Types of the debugging library. */
-
-/* Handle for a process. This type is opaque. */
-typedef struct td_thragent td_thragent_t;
-
-/* The actual thread handle type. This is also opaque. */
-typedef struct td_thrhandle
-{
- td_thragent_t *th_ta_p;
- psaddr_t th_unique;
-} td_thrhandle_t;
-
-
-/* Forward declaration of a type defined by and for the dynamic linker. */
-struct link_map;
-
-
-/* Flags for `td_ta_thr_iter'. */
-#define TD_THR_ANY_USER_FLAGS 0xffffffff
-#define TD_THR_LOWEST_PRIORITY -20
-#define TD_SIGNO_MASK NULL
-
-
-#define TD_EVENTSIZE 2
-#define BT_UISHIFT 5 /* log base 2 of BT_NBIPUI, to extract word index */
-#define BT_NBIPUI (1 << BT_UISHIFT) /* n bits per uint */
-#define BT_UIMASK (BT_NBIPUI - 1) /* to extract bit index */
-
-/* Bitmask of enabled events. */
-typedef struct td_thr_events
-{
- uint32_t event_bits[TD_EVENTSIZE];
-} td_thr_events_t;
-
-/* Event set manipulation macros. */
-#define __td_eventmask(n) \
- (UINT32_C (1) << (((n) - 1) & BT_UIMASK))
-#define __td_eventword(n) \
- ((UINT32_C ((n) - 1)) >> BT_UISHIFT)
-
-#define td_event_emptyset(setp) \
- do { \
- int __i; \
- for (__i = TD_EVENTSIZE; __i > 0; --__i) \
- (setp)->event_bits[__i - 1] = 0; \
- } while (0)
-
-#define td_event_fillset(setp) \
- do { \
- int __i; \
- for (__i = TD_EVENTSIZE; __i > 0; --__i) \
- (setp)->event_bits[__i - 1] = UINT32_C (0xffffffff); \
- } while (0)
-
-#define td_event_addset(setp, n) \
- (((setp)->event_bits[__td_eventword (n)]) |= __td_eventmask (n))
-#define td_event_delset(setp, n) \
- (((setp)->event_bits[__td_eventword (n)]) &= ~__td_eventmask (n))
-#define td_eventismember(setp, n) \
- (__td_eventmask (n) & ((setp)->event_bits[__td_eventword (n)]))
-#if TD_EVENTSIZE == 2
-# define td_eventisempty(setp) \
- (!((setp)->event_bits[0]) && !((setp)->event_bits[1]))
-#else
-# error "td_eventisempty must be changed to match TD_EVENTSIZE"
-#endif
-
-/* Events reportable by the thread implementation. */
-typedef enum
-{
- TD_ALL_EVENTS, /* Pseudo-event number. */
- TD_EVENT_NONE = TD_ALL_EVENTS, /* Depends on context. */
- TD_READY, /* Is executable now. */
- TD_SLEEP, /* Blocked in a synchronization obj. */
- TD_SWITCHTO, /* Now assigned to a process. */
- TD_SWITCHFROM, /* Not anymore assigned to a process. */
- TD_LOCK_TRY, /* Trying to get an unavailable lock. */
- TD_CATCHSIG, /* Signal posted to the thread. */
- TD_IDLE, /* Process getting idle. */
- TD_CREATE, /* New thread created. */
- TD_DEATH, /* Thread terminated. */
- TD_PREEMPT, /* Preempted. */
- TD_PRI_INHERIT, /* Inherited elevated priority. */
- TD_REAP, /* Reaped. */
- TD_CONCURRENCY, /* Number of processes changing. */
- TD_TIMEOUT, /* Conditional variable wait timed out. */
- TD_MIN_EVENT_NUM = TD_READY,
- TD_MAX_EVENT_NUM = TD_TIMEOUT,
- TD_EVENTS_ENABLE = 31 /* Event reporting enabled. */
-} td_event_e;
-
-/* Values representing the different ways events are reported. */
-typedef enum
-{
- NOTIFY_BPT, /* User must insert breakpoint at u.bptaddr. */
- NOTIFY_AUTOBPT, /* Breakpoint at u.bptaddr is automatically
- inserted. */
- NOTIFY_SYSCALL /* System call u.syscallno will be invoked. */
-} td_notify_e;
-
-/* Description how event type is reported. */
-typedef struct td_notify
-{
- td_notify_e type; /* Way the event is reported. */
- union
- {
- psaddr_t bptaddr; /* Address of breakpoint. */
- int syscallno; /* Number of system call used. */
- } u;
-} td_notify_t;
-
-/* Structure used to report event. */
-typedef struct td_event_msg
-{
- td_event_e event; /* Event type being reported. */
- const td_thrhandle_t *th_p; /* Thread reporting the event. */
- union
- {
-# if 0
- td_synchandle_t *sh; /* Handle of synchronization object. */
-#endif
- uintptr_t data; /* Event specific data. */
- } msg;
-} td_event_msg_t;
-
-/* Structure containing event data available in each thread structure. */
-typedef struct
-{
- td_thr_events_t eventmask; /* Mask of enabled events. */
- td_event_e eventnum; /* Number of last event. */
- void *eventdata; /* Data associated with event. */
-} td_eventbuf_t;
-
-
-/* Gathered statistics about the process. */
-typedef struct td_ta_stats
-{
- int nthreads; /* Total number of threads in use. */
- int r_concurrency; /* Concurrency level requested by user. */
- int nrunnable_num; /* Average runnable threads, numerator. */
- int nrunnable_den; /* Average runnable threads, denominator. */
- int a_concurrency_num; /* Achieved concurrency level, numerator. */
- int a_concurrency_den; /* Achieved concurrency level, denominator. */
- int nlwps_num; /* Average number of processes in use,
- numerator. */
- int nlwps_den; /* Average number of processes in use,
- denominator. */
- int nidle_num; /* Average number of idling processes,
- numerator. */
- int nidle_den; /* Average number of idling processes,
- denominator. */
-} td_ta_stats_t;
-
-
-/* Since Sun's library is based on Solaris threads we have to define a few
- types to map them to POSIX threads. */
-typedef pthread_t thread_t;
-typedef pthread_key_t thread_key_t;
-
-
-/* Callback for iteration over threads. */
-typedef int td_thr_iter_f (const td_thrhandle_t *, void *);
-
-/* Callback for iteration over thread local data. */
-typedef int td_key_iter_f (thread_key_t, void (*) (void *), void *);
-
-
-
-/* Forward declaration. This has to be defined by the user. */
-struct ps_prochandle;
-
-
-/* Information about the thread. */
-typedef struct td_thrinfo
-{
- td_thragent_t *ti_ta_p; /* Process handle. */
- unsigned int ti_user_flags; /* Unused. */
- thread_t ti_tid; /* Thread ID returned by
- pthread_create(). */
- char *ti_tls; /* Pointer to thread-local data. */
- psaddr_t ti_startfunc; /* Start function passed to
- pthread_create(). */
- psaddr_t ti_stkbase; /* Base of thread's stack. */
- long int ti_stksize; /* Size of thread's stack. */
- psaddr_t ti_ro_area; /* Unused. */
- int ti_ro_size; /* Unused. */
- td_thr_state_e ti_state; /* Thread state. */
- unsigned char ti_db_suspended; /* Nonzero if suspended by debugger. */
- td_thr_type_e ti_type; /* Type of the thread (system vs
- user thread). */
- intptr_t ti_pc; /* Unused. */
- intptr_t ti_sp; /* Unused. */
- short int ti_flags; /* Unused. */
- int ti_pri; /* Thread priority. */
- lwpid_t ti_lid; /* Kernel PID for this thread. */
- sigset_t ti_sigmask; /* Signal mask. */
- unsigned char ti_traceme; /* Nonzero if event reporting
- enabled. */
- unsigned char ti_preemptflag; /* Unused. */
- unsigned char ti_pirecflag; /* Unused. */
- sigset_t ti_pending; /* Set of pending signals. */
- td_thr_events_t ti_events; /* Set of enabled events. */
-} td_thrinfo_t;
-
-
-
-/* Prototypes for exported library functions. */
-
-/* Initialize the thread debug support library. */
-extern td_err_e td_init (void);
-
-/* Historical relict. Should not be used anymore. */
-extern td_err_e td_log (void);
-
-/* Return list of symbols the library can request. */
-extern const char **td_symbol_list (void);
-
-/* Generate new thread debug library handle for process PS. */
-extern td_err_e td_ta_new (struct ps_prochandle *__ps, td_thragent_t **__ta);
-
-/* Free resources allocated for TA. */
-extern td_err_e td_ta_delete (td_thragent_t *__ta);
-
-/* Get number of currently running threads in process associated with TA. */
-extern td_err_e td_ta_get_nthreads (const td_thragent_t *__ta, int *__np);
-
-/* Return process handle passed in `td_ta_new' for process associated with
- TA. */
-extern td_err_e td_ta_get_ph (const td_thragent_t *__ta,
- struct ps_prochandle **__ph);
-
-/* Map thread library handle PT to thread debug library handle for process
- associated with TA and store result in *TH. */
-extern td_err_e td_ta_map_id2thr (const td_thragent_t *__ta, pthread_t __pt,
- td_thrhandle_t *__th);
-
-/* Map process ID LWPID to thread debug library handle for process
- associated with TA and store result in *TH. */
-extern td_err_e td_ta_map_lwp2thr (const td_thragent_t *__ta, lwpid_t __lwpid,
- td_thrhandle_t *__th);
-
-
-/* Call for each thread in a process associated with TA the callback function
- CALLBACK. */
-extern td_err_e td_ta_thr_iter (const td_thragent_t *__ta,
- td_thr_iter_f *__callback, void *__cbdata_p,
- td_thr_state_e __state, int __ti_pri,
- sigset_t *__ti_sigmask_p,
- unsigned int __ti_user_flags);
-
-/* Call for each defined thread local data entry the callback function KI. */
-extern td_err_e td_ta_tsd_iter (const td_thragent_t *__ta, td_key_iter_f *__ki,
- void *__p);
-
-
-/* Get event address for EVENT. */
-extern td_err_e td_ta_event_addr (const td_thragent_t *__ta,
- td_event_e __event, td_notify_t *__ptr);
-
-/* Enable EVENT in global mask. */
-extern td_err_e td_ta_set_event (const td_thragent_t *__ta,
- td_thr_events_t *__event);
-
-/* Disable EVENT in global mask. */
-extern td_err_e td_ta_clear_event (const td_thragent_t *__ta,
- td_thr_events_t *__event);
-
-/* Return information about last event. */
-extern td_err_e td_ta_event_getmsg (const td_thragent_t *__ta,
- td_event_msg_t *__msg);
-
-
-/* Set suggested concurrency level for process associated with TA. */
-extern td_err_e td_ta_setconcurrency (const td_thragent_t *__ta, int __level);
-
-
-/* Enable collecting statistics for process associated with TA. */
-extern td_err_e td_ta_enable_stats (const td_thragent_t *__ta, int __enable);
-
-/* Reset statistics. */
-extern td_err_e td_ta_reset_stats (const td_thragent_t *__ta);
-
-/* Retrieve statistics from process associated with TA. */
-extern td_err_e td_ta_get_stats (const td_thragent_t *__ta,
- td_ta_stats_t *__statsp);
-
-
-/* Validate that TH is a thread handle. */
-extern td_err_e td_thr_validate (const td_thrhandle_t *__th);
-
-/* Return information about thread TH. */
-extern td_err_e td_thr_get_info (const td_thrhandle_t *__th,
- td_thrinfo_t *__infop);
-
-/* Retrieve floating-point register contents of process running thread TH. */
-extern td_err_e td_thr_getfpregs (const td_thrhandle_t *__th,
- prfpregset_t *__regset);
-
-/* Retrieve general register contents of process running thread TH. */
-extern td_err_e td_thr_getgregs (const td_thrhandle_t *__th,
- prgregset_t __gregs);
-
-/* Retrieve extended register contents of process running thread TH. */
-extern td_err_e td_thr_getxregs (const td_thrhandle_t *__th, void *__xregs);
-
-/* Get size of extended register set of process running thread TH. */
-extern td_err_e td_thr_getxregsize (const td_thrhandle_t *__th, int *__sizep);
-
-/* Set floating-point register contents of process running thread TH. */
-extern td_err_e td_thr_setfpregs (const td_thrhandle_t *__th,
- const prfpregset_t *__fpregs);
-
-/* Set general register contents of process running thread TH. */
-extern td_err_e td_thr_setgregs (const td_thrhandle_t *__th,
- prgregset_t __gregs);
-
-/* Set extended register contents of process running thread TH. */
-extern td_err_e td_thr_setxregs (const td_thrhandle_t *__th,
- const void *__addr);
-
-
-/* Get address of the given module's TLS storage area for the given thread. */
-extern td_err_e td_thr_tlsbase (const td_thrhandle_t *__th,
- unsigned long int __modid,
- psaddr_t *__base);
-
-/* Get address of thread local variable. */
-extern td_err_e td_thr_tls_get_addr (const td_thrhandle_t *__th,
- psaddr_t __map_address, size_t __offset,
- psaddr_t *__address);
-
-
-/* Enable reporting for EVENT for thread TH. */
-extern td_err_e td_thr_event_enable (const td_thrhandle_t *__th, int __event);
-
-/* Enable EVENT for thread TH. */
-extern td_err_e td_thr_set_event (const td_thrhandle_t *__th,
- td_thr_events_t *__event);
-
-/* Disable EVENT for thread TH. */
-extern td_err_e td_thr_clear_event (const td_thrhandle_t *__th,
- td_thr_events_t *__event);
-
-/* Get event message for thread TH. */
-extern td_err_e td_thr_event_getmsg (const td_thrhandle_t *__th,
- td_event_msg_t *__msg);
-
-
-/* Set priority of thread TH. */
-extern td_err_e td_thr_setprio (const td_thrhandle_t *__th, int __prio);
-
-
-/* Set pending signals for thread TH. */
-extern td_err_e td_thr_setsigpending (const td_thrhandle_t *__th,
- unsigned char __n, const sigset_t *__ss);
-
-/* Set signal mask for thread TH. */
-extern td_err_e td_thr_sigsetmask (const td_thrhandle_t *__th,
- const sigset_t *__ss);
-
-
-/* Return thread local data associated with key TK in thread TH. */
-extern td_err_e td_thr_tsd (const td_thrhandle_t *__th,
- const thread_key_t __tk, void **__data);
-
-
-/* Suspend execution of thread TH. */
-extern td_err_e td_thr_dbsuspend (const td_thrhandle_t *__th);
-
-/* Resume execution of thread TH. */
-extern td_err_e td_thr_dbresume (const td_thrhandle_t *__th);
-
-#endif /* thread_db.h */
diff --git a/libpthread/nptl_db/thread_dbP.h b/libpthread/nptl_db/thread_dbP.h
deleted file mode 100644
index c53d1ed94..000000000
--- a/libpthread/nptl_db/thread_dbP.h
+++ /dev/null
@@ -1,254 +0,0 @@
-/* Private header for thread debug library
- Copyright (C) 2003, 2004 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#ifndef _THREAD_DBP_H
-#define _THREAD_DBP_H 1
-
-#include <stdbool.h>
-#include <stdint.h>
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <assert.h>
-#include "proc_service.h"
-#include "thread_db.h"
-#include "../nptl/pthreadP.h" /* This is for *_BITMASK only. */
-
-/* Indeces for the symbol names. */
-enum
- {
-# define DB_STRUCT(type) SYM_SIZEOF_##type,
-# define DB_STRUCT_FIELD(type, field) SYM_##type##_FIELD_##field,
-# define DB_SYMBOL(name) SYM_##name,
-# define DB_FUNCTION(name) SYM_##name,
-# define DB_VARIABLE(name) SYM_##name, SYM_DESC_##name,
-# include "structs.def"
-# undef DB_STRUCT
-# undef DB_STRUCT_FIELD
-# undef DB_SYMBOL
-# undef DB_FUNCTION
-# undef DB_VARIABLE
-
- SYM_TH_UNIQUE_CONST_THREAD_AREA,
- SYM_TH_UNIQUE_REGISTER64,
- SYM_TH_UNIQUE_REGISTER32,
- SYM_TH_UNIQUE_REGISTER64_THREAD_AREA,
- SYM_TH_UNIQUE_REGISTER32_THREAD_AREA,
-
- SYM_NUM_MESSAGES
- };
-
-
-/* Comment out the following for less verbose output. */
-#ifndef NDEBUG
-# define LOG(c) if (__td_debug) write (2, c "\n", strlen (c "\n"))
-extern int __td_debug attribute_hidden;
-#else
-# define LOG(c)
-#endif
-
-
-#define DB_DESC_SIZE(desc) ((desc)[0])
-#define DB_DESC_NELEM(desc) ((desc)[1])
-#define DB_DESC_OFFSET(desc) ((desc)[2])
-#define DB_SIZEOF_DESC (3 * sizeof (uint32_t))
-#define DB_DEFINE_DESC(name, size, nelem, offset) \
- const uint32_t name[3] = { (size), (nelem), (offset) }
-typedef uint32_t db_desc_t[3];
-
-
-/* Handle for a process. This type is opaque. */
-struct td_thragent
-{
- /* Chain on the list of all agent structures. */
- list_t list;
-
- /* Delivered by the debugger and we have to pass it back in the
- proc callbacks. */
- struct ps_prochandle *ph;
-
- /* Cached values read from the inferior. */
-# define DB_STRUCT(type) \
- uint32_t ta_sizeof_##type;
-# define DB_STRUCT_FIELD(type, field) \
- db_desc_t ta_field_##type##_##field;
-# define DB_SYMBOL(name) \
- psaddr_t ta_addr_##name;
-# define DB_FUNCTION(name) \
- psaddr_t ta_addr_##name;
-# define DB_VARIABLE(name) \
- psaddr_t ta_addr_##name; \
- db_desc_t ta_var_##name;
-# include "structs.def"
-# undef DB_STRUCT
-# undef DB_STRUCT_FIELD
-# undef DB_FUNCTION
-# undef DB_SYMBOL
-# undef DB_VARIABLE
-
- /* The method of locating a thread's th_unique value. */
- enum
- {
- ta_howto_unknown,
- ta_howto_reg,
- ta_howto_reg_thread_area,
- ta_howto_const_thread_area
- } ta_howto;
- union
- {
- uint32_t const_thread_area; /* Constant argument to ps_get_thread_area. */
- /* These are as if the descriptor of the field in prregset_t,
- but DB_DESC_NELEM is overloaded as follows: */
- db_desc_t reg; /* Signed bias applied to register value. */
- db_desc_t reg_thread_area; /* Bits to scale down register value. */
- } ta_howto_data;
-};
-
-
-/* List of all known descriptors. */
-extern list_t __td_agent_list attribute_hidden;
-
-
-/* Function used to test for correct thread agent pointer. */
-static inline bool
-ta_ok (const td_thragent_t *ta)
-{
- list_t *runp;
-
- list_for_each (runp, &__td_agent_list)
- if (list_entry (runp, td_thragent_t, list) == ta)
- return true;
-
- return false;
-}
-
-
-/* Internal wrapper around ps_pglobal_lookup. */
-extern ps_err_e td_lookup (struct ps_prochandle *ps,
- int idx, psaddr_t *sym_addr) attribute_hidden;
-
-
-
-
-/* Store in psaddr_t VAR the address of inferior's symbol NAME. */
-#define DB_GET_SYMBOL(var, ta, name) \
- (((ta)->ta_addr_##name == 0 \
- && td_lookup ((ta)->ph, SYM_##name, &(ta)->ta_addr_##name) != PS_OK) \
- ? TD_ERR : ((var) = (ta)->ta_addr_##name, TD_OK))
-
-/* Store in psaddr_t VAR the value of ((TYPE) PTR)->FIELD[IDX] in the inferior.
- A target field smaller than psaddr_t is zero-extended. */
-#define DB_GET_FIELD(var, ta, ptr, type, field, idx) \
- _td_fetch_value ((ta), (ta)->ta_field_##type##_##field, \
- SYM_##type##_FIELD_##field, \
- (psaddr_t) 0 + (idx), (ptr), &(var))
-
-#define DB_GET_FIELD_ADDRESS(var, ta, ptr, type, field, idx) \
- ((var) = (ptr), _td_locate_field ((ta), (ta)->ta_field_##type##_##field, \
- SYM_##type##_FIELD_##field, \
- (psaddr_t) 0 + (idx), &(var)))
-
-extern td_err_e _td_locate_field (td_thragent_t *ta,
- db_desc_t desc, int descriptor_name,
- psaddr_t idx,
- psaddr_t *address) attribute_hidden;
-
-
-/* Like DB_GET_FIELD, but PTR is a local pointer to a structure that
- has already been copied in from the inferior. */
-#define DB_GET_FIELD_LOCAL(var, ta, ptr, type, field, idx) \
- _td_fetch_value_local ((ta), (ta)->ta_field_##type##_##field, \
- SYM_##type##_FIELD_##field, \
- (psaddr_t) 0 + (idx), (ptr), &(var))
-
-/* Store in psaddr_t VAR the value of variable NAME[IDX] in the inferior.
- A target value smaller than psaddr_t is zero-extended. */
-#define DB_GET_VALUE(var, ta, name, idx) \
- (((ta)->ta_addr_##name == 0 \
- && td_lookup ((ta)->ph, SYM_##name, &(ta)->ta_addr_##name) != PS_OK) \
- ? TD_ERR \
- : _td_fetch_value ((ta), (ta)->ta_var_##name, SYM_DESC_##name, \
- (psaddr_t) 0 + (idx), (ta)->ta_addr_##name, &(var)))
-
-/* Helper functions for those. */
-extern td_err_e _td_fetch_value (td_thragent_t *ta,
- db_desc_t field, int descriptor_name,
- psaddr_t idx, psaddr_t address,
- psaddr_t *result) attribute_hidden;
-extern td_err_e _td_fetch_value_local (td_thragent_t *ta,
- db_desc_t field,
- int descriptor_name,
- psaddr_t idx, void *address,
- psaddr_t *result) attribute_hidden;
-
-/* Store psaddr_t VALUE in ((TYPE) PTR)->FIELD[IDX] in the inferior.
- A target field smaller than psaddr_t is zero-extended. */
-#define DB_PUT_FIELD(ta, ptr, type, field, idx, value) \
- _td_store_value ((ta), (ta)->ta_field_##type##_##field, \
- SYM_##type##_FIELD_##field, \
- (psaddr_t) 0 + (idx), (ptr), (value))
-
-#define DB_PUT_FIELD_LOCAL(ta, ptr, type, field, idx, value) \
- _td_store_value_local ((ta), (ta)->ta_field_##type##_##field, \
- SYM_##type##_FIELD_##field, \
- (psaddr_t) 0 + (idx), (ptr), (value))
-
-/* Store psaddr_t VALUE in variable NAME[IDX] in the inferior.
- A target field smaller than psaddr_t is zero-extended. */
-#define DB_PUT_VALUE(ta, name, idx, value) \
- (((ta)->ta_addr_##name == 0 \
- && td_lookup ((ta)->ph, SYM_##name, &(ta)->ta_addr_##name) != PS_OK) \
- ? TD_ERR \
- : _td_store_value ((ta), (ta)->ta_var_##name, SYM_DESC_##name, \
- (psaddr_t) 0 + (idx), (ta)->ta_addr_##name, (value)))
-
-/* Helper functions for those. */
-extern td_err_e _td_store_value (td_thragent_t *ta,
- db_desc_t field, int descriptor_name,
- psaddr_t idx, psaddr_t address,
- psaddr_t value) attribute_hidden;
-extern td_err_e _td_store_value_local (td_thragent_t *ta,
- db_desc_t field, int descriptor_name,
- psaddr_t idx, void *address,
- psaddr_t value) attribute_hidden;
-
-#define DB_GET_STRUCT(var, ta, ptr, type) \
- ({ td_err_e _err = TD_OK; \
- if ((ta)->ta_sizeof_##type == 0) \
- _err = _td_check_sizeof ((ta), &(ta)->ta_sizeof_##type, \
- SYM_SIZEOF_##type); \
- if (_err == TD_OK) \
- _err = ps_pdread ((ta)->ph, (ptr), \
- (var) = __alloca ((ta)->ta_sizeof_##type), \
- (ta)->ta_sizeof_##type) \
- == PS_OK ? TD_OK : TD_ERR; \
- else \
- (var) = NULL; \
- _err; \
- })
-#define DB_PUT_STRUCT(ta, ptr, type, copy) \
- ({ assert ((ta)->ta_sizeof_##type != 0); \
- ps_pdwrite ((ta)->ph, (ptr), (copy), (ta)->ta_sizeof_##type) \
- == PS_OK ? TD_OK : TD_ERR; \
- })
-
-extern td_err_e _td_check_sizeof (td_thragent_t *ta, uint32_t *sizep,
- int sizep_name) attribute_hidden;
-
-#endif /* thread_dbP.h */