diff options
| author | "Steven J. Hill" <sjhill@realitydiluted.com> | 2005-11-16 03:58:05 +0000 | 
|---|---|---|
| committer | "Steven J. Hill" <sjhill@realitydiluted.com> | 2005-11-16 03:58:05 +0000 | 
| commit | 4e19db9216b8781b2b34f9b5ce6d3c61d1574a38 (patch) | |
| tree | 193788b734c9c870d529e2b9a4bc8d40b8aede46 /libpthread/linuxthreads_db | |
| parent | 94823a8764a1238e1a661eb5fd72a3038e05ad2b (diff) | |
| download | uClibc-alpine-4e19db9216b8781b2b34f9b5ce6d3c61d1574a38.tar.bz2 uClibc-alpine-4e19db9216b8781b2b34f9b5ce6d3c61d1574a38.tar.xz  | |
Remove old directories.
Diffstat (limited to 'libpthread/linuxthreads_db')
46 files changed, 0 insertions, 2965 deletions
diff --git a/libpthread/linuxthreads_db/Banner b/libpthread/linuxthreads_db/Banner deleted file mode 100644 index 6f4f3f818..000000000 --- a/libpthread/linuxthreads_db/Banner +++ /dev/null @@ -1 +0,0 @@ -libthread_db work sponsored by Alpha Processor Inc diff --git a/libpthread/linuxthreads_db/Makefile b/libpthread/linuxthreads_db/Makefile deleted file mode 100644 index f92f205a5..000000000 --- a/libpthread/linuxthreads_db/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -# Makefile for uClibc -# -# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org> -# -# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. -# - -TOPDIR=../../ - -top_srcdir=$(TOPDIR) -top_builddir=../../ -include $(top_builddir)Rules.mak -all: libs -include Makefile.in -include $(top_srcdir)Makerules diff --git a/libpthread/linuxthreads_db/Makefile.in b/libpthread/linuxthreads_db/Makefile.in deleted file mode 100644 index 0a5c5a578..000000000 --- a/libpthread/linuxthreads_db/Makefile.in +++ /dev/null @@ -1,41 +0,0 @@ -# Makefile for uClibc -# -# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org> -# -# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. -# - -#CFLAGS+=$(SSP_ALL_CFLAGS) - -PT_MAJOR_VERSION:=$(MAJOR_VERSION) -# Get the thread include dependencies and shared object name -CFLAGS+=-DLIBPTHREAD_SO="\"libpthread.so.$(PT_MAJOR_VERSION)\"" - -# Remove any -z defs since this lib will have undefined symbols -LDFLAGS:=$(subst -z defs,,$(LDFLAGS)) --warn-unresolved-symbols - -ifeq ($(PTHREADS_DEBUG_SUPPORT),y) -STRIP_FLAGS:=-X --strip-debug -R .note -R .comment -endif - -LIB_NAME:=libthread_db -libthread_db_FULL_NAME:=$(LIB_NAME)-$(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL).so - -MAJOR_VERSION:=1 - -libthread_db_DIR:=$(top_srcdir)libpthread/linuxthreads_db -libthread_db_OUT:=$(top_builddir)libpthread/linuxthreads_db - -libthread_db_SRC:=$(wildcard $(libthread_db_DIR)/*.c) - -libthread_db_OBJ:=$(patsubst $(libthread_db_DIR)/%.c,$(libthread_db_OUT)/%.o,$(libthread_db_SRC)) - -libthread_db-a-$(PTHREADS_DEBUG_SUPPORT)+=$(libthread_db_OBJ) -libthread_db-so-$(PTHREADS_DEBUG_SUPPORT)+=$(libthread_db_OBJ:.o=.os) - -libthread_db-multi-$(PTHREADS_DEBUG_SUPPORT)+=$(libthread_db_SRC) - -objclean-y+=libthread_db_clean - -lib-a-$(PTHREADS_DEBUG_SUPPORT)+=$(top_builddir)lib/libthread_db.a -lib-so-$(PTHREADS_DEBUG_SUPPORT)+=$(top_builddir)lib/libthread_db.so diff --git a/libpthread/linuxthreads_db/Versions b/libpthread/linuxthreads_db/Versions deleted file mode 100644 index 4ca8042c1..000000000 --- a/libpthread/linuxthreads_db/Versions +++ /dev/null @@ -1,21 +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; -  } -} diff --git a/libpthread/linuxthreads_db/proc_service.h b/libpthread/linuxthreads_db/proc_service.h deleted file mode 100644 index 74136c03e..000000000 --- a/libpthread/linuxthreads_db/proc_service.h +++ /dev/null @@ -1,70 +0,0 @@ -/* Copyright (C) 1999 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> - -typedef enum -{ -  PS_OK,          /* generic "call succeeded" */ -  PS_ERR,         /* generic. */ -  PS_BADPID,      /* bad process handle */ -  PS_BADLID,      /* bad lwp identifier */ -  PS_BADADDR,     /* bad address */ -  PS_NOSYM,       /* p_lookup() could not find given symbol */ -        PS_NOFREGS -  /* -   * FPU register set not available for given -   * lwp -   */ -}       ps_err_e; - - -struct ps_prochandle;		/* user defined. */ - - -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); - -extern ps_err_e ps_pglobal_lookup(struct ps_prochandle *, -        const char *object_name, const char *sym_name, psaddr_t *sym_addr); - - -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 *); - -extern pid_t ps_getpid (struct ps_prochandle *); - - -extern ps_err_e ps_pstop (const struct ps_prochandle *); -extern ps_err_e ps_pcontinue (const struct ps_prochandle *); - -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/linuxthreads_db/td_init.c b/libpthread/linuxthreads_db/td_init.c deleted file mode 100644 index d714f1ba0..000000000 --- a/libpthread/linuxthreads_db/td_init.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Initialization function of thread debugger support library. -   Copyright (C) 1999, 2001 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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/linuxthreads_db/td_log.c b/libpthread/linuxthreads_db/td_log.c deleted file mode 100644 index 025273a63..000000000 --- a/libpthread/linuxthreads_db/td_log.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Noop, left for historical reasons. -   Copyright (C) 1999, 2001 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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/linuxthreads_db/td_symbol_list.c b/libpthread/linuxthreads_db/td_symbol_list.c deleted file mode 100644 index 779332b9d..000000000 --- a/libpthread/linuxthreads_db/td_symbol_list.c +++ /dev/null @@ -1,56 +0,0 @@ -/* Return list of symbols the library can request. -   Copyright (C) 2001, 2002 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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 "thread_dbP.h" - - -static const char *symbol_list_arr[] = -{ -  [PTHREAD_THREADS_EVENTS] = "__pthread_threads_events", -  [PTHREAD_LAST_EVENT] = "__pthread_last_event", -  [PTHREAD_HANDLES_NUM] = "__pthread_handles_num", -  [PTHREAD_HANDLES] = "__pthread_handles", -  [PTHREAD_KEYS] = "pthread_keys", -  [LINUXTHREADS_PTHREAD_THREADS_MAX] = "__linuxthreads_pthread_threads_max", -  [LINUXTHREADS_PTHREAD_KEYS_MAX] = "__linuxthreads_pthread_keys_max", -  [LINUXTHREADS_PTHREAD_SIZEOF_DESCR] = "__linuxthreads_pthread_sizeof_descr", -  [LINUXTHREADS_CREATE_EVENT] = "__linuxthreads_create_event", -  [LINUXTHREADS_DEATH_EVENT] = "__linuxthreads_death_event", -  [LINUXTHREADS_REAP_EVENT] = "__linuxthreads_reap_event", -  [LINUXTHREADS_INITIAL_REPORT_EVENTS] = "__linuxthreads_initial_report_events", -  [LINUXTHREADS_VERSION] = "__linuxthreads_version", -  [NUM_MESSAGES] = NULL -}; - - -const char ** -td_symbol_list (void) -{ -  return symbol_list_arr; -} - - -int -td_lookup (struct ps_prochandle *ps, int idx, psaddr_t *sym_addr) -{ -  assert (idx >= 0 && idx < NUM_MESSAGES); -  return ps_pglobal_lookup (ps, LIBPTHREAD_SO, symbol_list_arr[idx], sym_addr); -} diff --git a/libpthread/linuxthreads_db/td_ta_clear_event.c b/libpthread/linuxthreads_db/td_ta_clear_event.c deleted file mode 100644 index bdbcf47aa..000000000 --- a/libpthread/linuxthreads_db/td_ta_clear_event.c +++ /dev/null @@ -1,53 +0,0 @@ -/* Globally disable events. -   Copyright (C) 1999, 2001 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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, event) -     const td_thragent_t *ta; -     td_thr_events_t *event; -{ -  td_thr_events_t old_event; -  int i; - -  LOG ("td_ta_clear_event"); - -  /* Test whether the TA parameter is ok.  */ -  if (! ta_ok (ta)) -    return TD_BADTA; - -  /* Write the new value into the thread data structure.  */ -  if (ps_pdread (ta->ph, ta->pthread_threads_eventsp, -		 &old_event, sizeof (td_thrhandle_t)) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ - -  /* Remove the set bits in.  */ -  for (i = 0; i < TD_EVENTSIZE; ++i) -    old_event.event_bits[i] &= ~event->event_bits[i]; - -  /* Write the new value into the thread data structure.  */ -  if (ps_pdwrite (ta->ph, ta->pthread_threads_eventsp, -		  &old_event, sizeof (td_thrhandle_t)) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ - -  return TD_OK; -} diff --git a/libpthread/linuxthreads_db/td_ta_delete.c b/libpthread/linuxthreads_db/td_ta_delete.c deleted file mode 100644 index 0e6ec17d0..000000000 --- a/libpthread/linuxthreads_db/td_ta_delete.c +++ /dev/null @@ -1,58 +0,0 @@ -/* Detach to target process. -   Copyright (C) 1999, 2001 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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.  */ -  if (ta == NULL || __td_agent_list == NULL) -    return TD_BADTA; - -  /* Remove the handle from the list.  */ -  if (ta == __td_agent_list->ta) -    /* It's the first element of the list.  */ -    __td_agent_list = __td_agent_list->next; -  else -    { -      /* We have to search for it.  */ -      struct agent_list *runp = __td_agent_list; - -      while (runp->next != NULL && runp->next->ta != ta) -	runp = runp->next; - -      if (runp->next == NULL) -	/* It's not a valid decriptor since it is not in the list.  */ -	return TD_BADTA; - -      runp->next = runp->next->next; -    } - -  /* The handle was allocated in `td_ta_new'.  */ -  free (ta); - -  return TD_OK; -} diff --git a/libpthread/linuxthreads_db/td_ta_enable_stats.c b/libpthread/linuxthreads_db/td_ta_enable_stats.c deleted file mode 100644 index 1d4c34a8d..000000000 --- a/libpthread/linuxthreads_db/td_ta_enable_stats.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Enable collection of statistics for process. -   Copyright (C) 1999, 2001 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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/linuxthreads_db/td_ta_event_addr.c b/libpthread/linuxthreads_db/td_ta_event_addr.c deleted file mode 100644 index 8bce35ae8..000000000 --- a/libpthread/linuxthreads_db/td_ta_event_addr.c +++ /dev/null @@ -1,73 +0,0 @@ -/* Get event address. -   Copyright (C) 1999, 2001 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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, td_event_e event, td_notify_t *addr) -{ -  td_err_e res = TD_NOEVENT; -  int idx = -1; - -  LOG ("td_ta_event_addr"); - -  /* Test whether the TA parameter is ok.  */ -  if (! ta_ok (ta)) -    return TD_BADTA; - -  switch (event) -    { -    case TD_CREATE: -      idx = LINUXTHREADS_CREATE_EVENT; -      break; - -    case TD_DEATH: -      idx = LINUXTHREADS_DEATH_EVENT; -      break; - -    case TD_REAP: -      idx = LINUXTHREADS_REAP_EVENT; -      break; - -    default: -      /* Event cannot be handled.  */ -      break; -    } - -  /* Now get the address.  */ -  if (idx != -1) -    { -      psaddr_t taddr; - -      if (td_lookup (ta->ph, idx, &taddr) == PS_OK) -	{ -	  /* Success, we got the address.  */ -	  addr->type = NOTIFY_BPT; -	  addr->u.bptaddr = taddr; - -	  res = TD_OK; -	} -      else -	res = TD_ERR; -    } - -  return res; -} diff --git a/libpthread/linuxthreads_db/td_ta_event_getmsg.c b/libpthread/linuxthreads_db/td_ta_event_getmsg.c deleted file mode 100644 index ec68ae0e2..000000000 --- a/libpthread/linuxthreads_db/td_ta_event_getmsg.c +++ /dev/null @@ -1,129 +0,0 @@ -/* Retrieve event. -   Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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" -#include "../linuxthreads/internals.h" - - -td_err_e -td_ta_event_getmsg (const td_thragent_t *ta, td_event_msg_t *msg) -{ -  /* XXX I cannot think of another way but using a static variable.  */ -  static td_thrhandle_t th; -  td_eventbuf_t event; -  psaddr_t addr; - -  LOG ("td_ta_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.  */ -  if (ps_pdread (ta->ph, ta->pthread_last_event, -		 &addr, sizeof (void *)) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ - -  /* If the pointer is NULL no event occurred.  */ -  if (addr == 0) -    return TD_NOMSG; - -  /* Read the even structure from the target.  */ -  if (ps_pdread (ta->ph, -		 ((char *) addr -		  + offsetof (struct _pthread_descr_struct, p_eventbuf)), -		 &event, sizeof (td_eventbuf_t)) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ - -  /* Check whether an event occurred.  */ -  if (event.eventnum == TD_EVENT_NONE) -    { -      /* Oh well, this means the last event was already read.  So -	 we have to look for any other event.  */ -      struct pthread_handle_struct handles[ta->pthread_threads_max]; -      int num; -      int i; - -      /* Read the number of currently active threads.  */ -      if (ps_pdread (ta->ph, ta->pthread_handles_num, &num, sizeof (int)) -	  != PS_OK) -	return TD_ERR;	/* XXX Other error value?  */ - -      /* Now read the handles.  */ -      if (ps_pdread (ta->ph, ta->handles, handles, -		     ta->pthread_threads_max * sizeof (handles[0])) != PS_OK) -	return TD_ERR;	/* XXX Other error value?  */ - -      for (i = 0; i < ta->pthread_threads_max && num > 0; ++i) -	{ -	  if (handles[i].h_descr == NULL) -	    /* No entry here.  */ -	    continue; - -	  /* First count this active thread.  */ -	  --num; - -	  if (handles[i].h_descr == addr) -	    /* We already handled this.  */ -	    continue; - -	  /* Read the event data for this thread.  */ -	  if (ps_pdread (ta->ph, -			 ((char *) handles[i].h_descr -			  + offsetof (struct _pthread_descr_struct, -				      p_eventbuf)), -			 &event, sizeof (td_eventbuf_t)) != PS_OK) -	    return TD_ERR; - -	  if (event.eventnum != TD_EVENT_NONE) -	    { -	      /* We found a thread with an unreported event.  */ -	      addr = handles[i].h_descr; -	      break; -	    } -	} - -      /* If we haven't found any other event signal this to the user.  */ -      if (event.eventnum == TD_EVENT_NONE) -	return TD_NOMSG; -    } - -  /* Generate the thread descriptor.  */ -  th.th_ta_p = (td_thragent_t *) ta; -  th.th_unique = addr; - -  /* Fill the user's data structure.  */ -  msg->event = event.eventnum; -  msg->th_p = &th; -  msg->msg.data = (uintptr_t) event.eventdata; - -  /* And clear the event message in the target.  */ -  memset (&event, '\0', sizeof (td_eventbuf_t)); -  if (ps_pdwrite (ta->ph, -		  ((char *) addr -		   + offsetof (struct _pthread_descr_struct, p_eventbuf)), -		  &event, sizeof (td_eventbuf_t)) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ - -  return TD_OK; -} diff --git a/libpthread/linuxthreads_db/td_ta_get_nthreads.c b/libpthread/linuxthreads_db/td_ta_get_nthreads.c deleted file mode 100644 index 839b56be5..000000000 --- a/libpthread/linuxthreads_db/td_ta_get_nthreads.c +++ /dev/null @@ -1,42 +0,0 @@ -/* Get the number of threads in the process. -   Copyright (C) 1999, 2001 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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, int *np) -{ -  psaddr_t addr; - -  LOG ("td_ta_get_nthreads"); - -  /* Test whether the TA parameter is ok.  */ -  if (! ta_ok (ta)) -    return TD_BADTA; - -  /* Access the variable `__pthread_handles_num'.  */ -  if (td_lookup (ta->ph, PTHREAD_HANDLES_NUM, &addr) != PS_OK) -     return TD_ERR;	/* XXX Other error value?  */ - -  if (ps_pdread (ta->ph, addr, np, sizeof (int)) != PS_OK) -     return TD_ERR;	/* XXX Other error value?  */ - -  return TD_OK; -} diff --git a/libpthread/linuxthreads_db/td_ta_get_ph.c b/libpthread/linuxthreads_db/td_ta_get_ph.c deleted file mode 100644 index 23d328508..000000000 --- a/libpthread/linuxthreads_db/td_ta_get_ph.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Get external process handle. -   Copyright (C) 1999, 2001 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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/linuxthreads_db/td_ta_get_stats.c b/libpthread/linuxthreads_db/td_ta_get_stats.c deleted file mode 100644 index 6bf2f5352..000000000 --- a/libpthread/linuxthreads_db/td_ta_get_stats.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Retrieve statistics for process. -   Copyright (C) 1999, 2001 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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/linuxthreads_db/td_ta_map_id2thr.c b/libpthread/linuxthreads_db/td_ta_map_id2thr.c deleted file mode 100644 index ddb6492e2..000000000 --- a/libpthread/linuxthreads_db/td_ta_map_id2thr.c +++ /dev/null @@ -1,79 +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@cygnus.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 "../linuxthreads/internals.h" - - -td_err_e -td_ta_map_id2thr (const td_thragent_t *ta, pthread_t pt, td_thrhandle_t *th) -{ -  struct pthread_handle_struct phc; -  struct _pthread_descr_struct pds; -  int pthread_threads_max; - -  LOG ("td_ta_map_id2thr"); - -  /* Test whether the TA parameter is ok.  */ -  if (! ta_ok (ta)) -    return TD_BADTA; - -  /* Make the following expression a bit smaller.  */ -  pthread_threads_max = ta->pthread_threads_max; - -  /* We can compute the entry in the handle array we want.  */ -  if (ps_pdread (ta->ph, ta->handles + pt % pthread_threads_max, &phc, -		 sizeof (struct pthread_handle_struct)) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ - -  /* Test whether this entry is in use.  */ -  if (phc.h_descr == NULL) -    { -      if (pt % pthread_threads_max == 0) -	{ -	  /* The initial thread always exists but the thread library -	     might not yet be initialized.  */ -	  th->th_ta_p = (td_thragent_t *) ta; -	  th->th_unique = NULL; - -	  return TD_OK; -	} - -      return TD_BADTH; -    } - -  /* Next test: get the descriptor to see whether this is not an old -     thread handle.  */ -  if (ps_pdread (ta->ph, phc.h_descr, &pds, -		 sizeof (struct _pthread_descr_struct)) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ - -  if (pds.p_tid != pt) -    return TD_BADTH; - -  if (pds.p_terminated != 0) -    return TD_NOTHR; - -  /* Create the `td_thrhandle_t' object.  */ -  th->th_ta_p = (td_thragent_t *) ta; -  th->th_unique = phc.h_descr; - -  return TD_OK; -} diff --git a/libpthread/linuxthreads_db/td_ta_map_lwp2thr.c b/libpthread/linuxthreads_db/td_ta_map_lwp2thr.c deleted file mode 100644 index 1337a5c68..000000000 --- a/libpthread/linuxthreads_db/td_ta_map_lwp2thr.c +++ /dev/null @@ -1,91 +0,0 @@ -/* Which thread is running on an lwp? -   Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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 "../linuxthreads/internals.h" - - -td_err_e -td_ta_map_lwp2thr (const td_thragent_t *ta, lwpid_t lwpid, td_thrhandle_t *th) -{ -  int pthread_threads_max = ta->pthread_threads_max; -  size_t sizeof_descr = ta->sizeof_descr; -  struct pthread_handle_struct phc[pthread_threads_max]; -  size_t cnt; -#ifdef ALL_THREADS_STOPPED -  int num; -#else -# define num 1 -#endif - -  LOG ("td_ta_map_lwp2thr"); - -  /* Test whether the TA parameter is ok.  */ -  if (! ta_ok (ta)) -    return TD_BADTA; - -  /* Read all the descriptors.  */ -  if (ps_pdread (ta->ph, ta->handles, phc, -		 sizeof (struct pthread_handle_struct) * pthread_threads_max) -      != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ - -#ifdef ALL_THREADS_STOPPED -  /* Read the number of currently active threads.  */ -  if (ps_pdread (ta->ph, ta->pthread_handles_num, &num, sizeof (int)) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ -#endif - -  /* Get the entries one after the other and find out whether the ID -     matches.  */ -  for (cnt = 0; cnt < pthread_threads_max && num > 0; ++cnt) -    if (phc[cnt].h_descr != NULL) -      { -	struct _pthread_descr_struct pds; - -#ifdef ALL_THREADS_STOPPED -	/* First count this active thread.  */ -	--num; -#endif - -	if (ps_pdread (ta->ph, phc[cnt].h_descr, &pds, sizeof_descr) != PS_OK) -	  return TD_ERR;	/* XXX Other error value?  */ - -	if ((pds.p_pid ?: ps_getpid (ta->ph)) == lwpid) -	  { -	    /* Found it.  Now fill in the `td_thrhandle_t' object.  */ -	    th->th_ta_p = (td_thragent_t *) ta; -	    th->th_unique = phc[cnt].h_descr; - -	    return TD_OK; -	  } -      } -    else if (cnt == 0) -      { -	/* The initial thread always exists.  But it might not yet be -	   initialized.  Construct a value.  */ -	th->th_ta_p = (td_thragent_t *) ta; -	th->th_unique = NULL; - -	return TD_OK; -      } - -  return TD_NOLWP; -} diff --git a/libpthread/linuxthreads_db/td_ta_new.c b/libpthread/linuxthreads_db/td_ta_new.c deleted file mode 100644 index 9bf926719..000000000 --- a/libpthread/linuxthreads_db/td_ta_new.c +++ /dev/null @@ -1,150 +0,0 @@ -/* Attach 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@cygnus.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 "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.  */ -struct agent_list *__td_agent_list; - - -td_err_e -td_ta_new (struct ps_prochandle *ps, td_thragent_t **ta) -{ -  psaddr_t addr; -  psaddr_t versaddr; -  char versbuf[sizeof (VERSION)]; -  struct agent_list *elemp; - -  LOG ("td_ta_new"); - -  /* Get the global event mask.  This is one of the variables which -     are new in the thread library to enable debugging.  If it is -     not available we cannot debug.  */ -  if (td_lookup (ps, PTHREAD_THREADS_EVENTS, &addr) != PS_OK) -    return TD_NOLIBTHREAD; - -  /* Check whether the versions match.  */ -  if (td_lookup (ps, LINUXTHREADS_VERSION, &versaddr) != PS_OK) -    return TD_VERSION; -  if (ps_pdread (ps, versaddr, versbuf, sizeof (versbuf)) != PS_OK) -    return TD_ERR; - -  versbuf[sizeof (versbuf) - 1] = '\0'; -  if (strcmp (versbuf, VERSION) != 0) -    /* Not the right version.  */ -    return TD_VERSION; - -  /* Fill in the appropriate information.  */ -  *ta = (td_thragent_t *) malloc (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; - -  /* Remember the address.  */ -  (*ta)->pthread_threads_eventsp = (td_thr_events_t *) addr; - -  /* Get the pointer to the variable pointing to the thread descriptor -     with the last event.  */ -  if (td_lookup (ps, PTHREAD_LAST_EVENT, &(*ta)->pthread_last_event) != PS_OK) -    { -    free_return: -      free (*ta); -      return TD_ERR; -    } - -  /* Get the pointer to the variable containing the number of active -     threads.  */ -  if (td_lookup (ps, PTHREAD_HANDLES_NUM, &(*ta)->pthread_handles_num) -      != PS_OK) -    goto free_return; - -  /* See whether the library contains the necessary symbols.  */ -  if (td_lookup (ps, PTHREAD_HANDLES, &addr) != PS_OK) -    goto free_return; - -  (*ta)->handles = (struct pthread_handle_struct *) addr; - - -  if (td_lookup (ps, PTHREAD_KEYS, &addr) != PS_OK) -    goto free_return; - -  /* Cast to the right type.  */ -  (*ta)->keys = (struct pthread_key_struct *) addr; - -  /* Find out about the maximum number of threads.  Old implementations -     don't provide this information.  In this case we assume that the -     debug  library is compiled with the same values.  */ -  if (td_lookup (ps, LINUXTHREADS_PTHREAD_THREADS_MAX, &addr) != PS_OK) -    (*ta)->pthread_threads_max = PTHREAD_THREADS_MAX; -  else -    { -      if (ps_pdread (ps, addr, &(*ta)->pthread_threads_max, sizeof (int)) -	  != PS_OK) -	goto free_return; -    } - -  /* Similar for the maximum number of thread local data keys.  */ -  if (td_lookup (ps, LINUXTHREADS_PTHREAD_KEYS_MAX, &addr) != PS_OK) -    (*ta)->pthread_keys_max = PTHREAD_KEYS_MAX; -  else -    { -      if (ps_pdread (ps, addr, &(*ta)->pthread_keys_max, sizeof (int)) -	  != PS_OK) -	goto free_return; -    } - -  /* And for the size of the second level arrays for the keys.  */ -  if (td_lookup (ps, LINUXTHREADS_PTHREAD_SIZEOF_DESCR, &addr) != PS_OK) -    (*ta)->sizeof_descr = sizeof (struct _pthread_descr_struct); -  else -    { -      if (ps_pdread (ps, addr, &(*ta)->sizeof_descr, sizeof (int)) != PS_OK) -	goto free_return; -      /* Don't let bogons in the inferior make us mess ourselves.  */ -      if ((*ta)->sizeof_descr > sizeof (struct _pthread_descr_struct)) -	  (*ta)->sizeof_descr = sizeof (struct _pthread_descr_struct); - -    } - -  /* Now add the new agent descriptor to the list.  */ -  elemp = (struct agent_list *) malloc (sizeof (struct agent_list)); -  if (elemp == NULL) -    { -      /* Argh, now that everything else worked...  */ -      free (*ta); -      return TD_MALLOC; -    } - -  /* We don't care for thread-safety here.  */ -  elemp->ta = *ta; -  elemp->next = __td_agent_list; -  __td_agent_list = elemp; - -  return TD_OK; -} diff --git a/libpthread/linuxthreads_db/td_ta_reset_stats.c b/libpthread/linuxthreads_db/td_ta_reset_stats.c deleted file mode 100644 index b3ddbd07b..000000000 --- a/libpthread/linuxthreads_db/td_ta_reset_stats.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Reset statistics. -   Copyright (C) 1999, 2001 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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/linuxthreads_db/td_ta_set_event.c b/libpthread/linuxthreads_db/td_ta_set_event.c deleted file mode 100644 index 73cf9f405..000000000 --- a/libpthread/linuxthreads_db/td_ta_set_event.c +++ /dev/null @@ -1,53 +0,0 @@ -/* Globally enable events. -   Copyright (C) 1999, 2001 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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, event) -     const td_thragent_t *ta; -     td_thr_events_t *event; -{ -  td_thr_events_t old_event; -  int i; - -  LOG ("td_ta_set_event"); - -  /* Test whether the TA parameter is ok.  */ -  if (! ta_ok (ta)) -    return TD_BADTA; - -  /* Write the new value into the thread data structure.  */ -  if (ps_pdread (ta->ph, ta->pthread_threads_eventsp, -		 &old_event, sizeof (td_thrhandle_t)) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ - -  /* Or the new bits in.  */ -  for (i = 0; i < TD_EVENTSIZE; ++i) -    old_event.event_bits[i] |= event->event_bits[i]; - -  /* Write the new value into the thread data structure.  */ -  if (ps_pdwrite (ta->ph, ta->pthread_threads_eventsp, -		  &old_event, sizeof (td_thrhandle_t)) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ - -  return TD_OK; -} diff --git a/libpthread/linuxthreads_db/td_ta_setconcurrency.c b/libpthread/linuxthreads_db/td_ta_setconcurrency.c deleted file mode 100644 index 408e76309..000000000 --- a/libpthread/linuxthreads_db/td_ta_setconcurrency.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Set suggested concurrency level for process. -   Copyright (C) 1999, 2001 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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 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/linuxthreads_db/td_ta_thr_iter.c b/libpthread/linuxthreads_db/td_ta_thr_iter.c deleted file mode 100644 index 2dad149d5..000000000 --- a/libpthread/linuxthreads_db/td_ta_thr_iter.c +++ /dev/null @@ -1,174 +0,0 @@ -/* Iterate over a process's threads. -   Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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 "../linuxthreads/internals.h" -#include <alloca.h> - -static int -handle_descr (const td_thragent_t *ta, td_thr_iter_f *callback, -	      void *cbdata_p, td_thr_state_e state, int ti_pri, -	      size_t cnt, pthread_descr descr) -{ -  struct _pthread_descr_struct pds; -  size_t sizeof_descr = ta->sizeof_descr; -  td_thrhandle_t th; - -  if (descr == NULL) -    { -      /* No descriptor (yet).  */ -      if (cnt == 0) -	{ -	  /* This is the main thread.  Create a fake descriptor.  */ -	  memset (&pds, '\0', sizeof (pds)); - -	  /* Empty thread descriptor the thread library would create.  */ -	  pds.p_self = &pds; -	  pds.p_nextlive = pds.p_prevlive = &pds; -	  pds.p_tid = PTHREAD_THREADS_MAX; -	  /* The init code also sets up p_lock, p_errnop, p_herrnop, and -	     p_userstack but this should not be necessary here.  */ - -	  th.th_ta_p = (td_thragent_t *) ta; -	  th.th_unique = NULL; -	  if (callback (&th, cbdata_p) != 0) -	    return TD_DBERR; - -	  /* All done successfully.  */ -	  return TD_OK; -	} -      else if (cnt == 1) -	/* The manager is not yet started.  No big deal.  */ -	return TD_OK; -      else -	/* For every other thread this should not happen.  */ -	return TD_ERR; -    } - -  if (ps_pdread (ta->ph, descr, &pds, sizeof_descr) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ - -  /* The manager thread must be handled special.  The descriptor -     exists but the thread only gets created when the first -     `pthread_create' call is issued.  A clear indication that this -     happened is when the p_pid field is non-zero.  */ -  if (cnt == 1 && pds.p_pid == 0) -    return TD_OK; - -  /* Now test whether this thread matches the specified -     conditions.  */ - -  /* Only if the priority level is as high or higher.  */ -  if (pds.p_priority < ti_pri) -    return TD_OK; - -  /* Test the state. -     XXX This is incomplete.  */ -  if (state != TD_THR_ANY_STATE) -    return TD_OK; - -  /* XXX For now we ignore threads which are not running anymore. -     The reason is that gdb tries to get the registers and fails. -     In future we should have a special mode of the thread library -     in which we keep the process around until the actual join -     operation happened.  */ -  if (pds.p_exited != 0) -    return TD_OK; - -  /* Yep, it matches.  Call the callback function.  */ -  th.th_ta_p = (td_thragent_t *) ta; -  th.th_unique = descr; -  if (callback (&th, cbdata_p) != 0) -    return TD_DBERR; - -  /* All done successfully.  */ -  return TD_OK; -} - - -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) -{ -  int pthread_threads_max; -  struct pthread_handle_struct *phc; -  td_err_e result = TD_OK; -  int cnt; -#ifdef ALL_THREADS_STOPPED -  int num; -#else -# define num 1 -#endif - -  LOG ("td_ta_thr_iter"); - -  /* Test whether the TA parameter is ok.  */ -  if (! ta_ok (ta)) -    return TD_BADTA; - -  pthread_threads_max = ta->pthread_threads_max; -  phc = (struct pthread_handle_struct *) alloca (sizeof (phc[0]) -						 * pthread_threads_max); - -  /* First read only the main thread and manager thread information.  */ -  if (ps_pdread (ta->ph, ta->handles, phc, -		 sizeof (struct pthread_handle_struct) * 2) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ - -  /* Now handle these descriptors.  */ -  result = handle_descr (ta, callback, cbdata_p, state, ti_pri, 0, -			 phc[0].h_descr); -  if (result != TD_OK) -    return result; -  result = handle_descr (ta, callback, cbdata_p, state, ti_pri, 1, -			 phc[1].h_descr); -  if (result != TD_OK) -    return result; - -  /* Read all the descriptors.  */ -  if (ps_pdread (ta->ph, ta->handles + 2, &phc[2], -		 (sizeof (struct pthread_handle_struct) -		  * (pthread_threads_max - 2))) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ - -#ifdef ALL_THREADS_STOPPED -  /* Read the number of currently active threads.  */ -  if (ps_pdread (ta->ph, ta->pthread_handles_num, &num, sizeof (int)) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ -#endif - -  /* Now get all descriptors, one after the other.  */ -  for (cnt = 2; cnt < pthread_threads_max && num > 0; ++cnt) -    if (phc[cnt].h_descr != NULL) -      { -#ifdef ALL_THREADS_STOPPED -	/* First count this active thread.  */ -	--num; -#endif - -	result = handle_descr (ta, callback, cbdata_p, state, ti_pri, cnt, -			       phc[cnt].h_descr); -	if (result != TD_OK) -	  break; -      } - -  return result; -} diff --git a/libpthread/linuxthreads_db/td_ta_tsd_iter.c b/libpthread/linuxthreads_db/td_ta_tsd_iter.c deleted file mode 100644 index 9e24250c6..000000000 --- a/libpthread/linuxthreads_db/td_ta_tsd_iter.c +++ /dev/null @@ -1,56 +0,0 @@ -/* Iterate over a process's thread-specific data. -   Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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 "../linuxthreads/internals.h" -#include <alloca.h> - -td_err_e -td_ta_tsd_iter (const td_thragent_t *ta, td_key_iter_f *callback, -		void *cbdata_p) -{ -  struct pthread_key_struct *keys; -  int pthread_keys_max; -  int cnt; - -  LOG ("td_ta_tsd_iter"); - -  /* Test whether the TA parameter is ok.  */ -  if (! ta_ok (ta)) -    return TD_BADTA; - -  pthread_keys_max = ta->pthread_keys_max; -  keys = (struct pthread_key_struct *) alloca (sizeof (keys[0]) -					       * pthread_keys_max); - -  /* Read all the information about the keys.  */ -  if (ps_pdread (ta->ph, ta->keys, keys, -		 sizeof (keys[0]) * pthread_keys_max) != PS_OK) -	return TD_ERR;	/* XXX Other error value?  */ - -  /* Now get all descriptors, one after the other.  */ -  for (cnt = 0; cnt < pthread_keys_max; ++cnt) -    if (keys[cnt].in_use -	/* Return with an error if the callback returns a nonzero value.  */ -	&& callback (cnt, keys[cnt].destr, cbdata_p) != 0) -      return TD_DBERR; - -  return TD_OK; -} diff --git a/libpthread/linuxthreads_db/td_thr_clear_event.c b/libpthread/linuxthreads_db/td_thr_clear_event.c deleted file mode 100644 index c027fc09f..000000000 --- a/libpthread/linuxthreads_db/td_thr_clear_event.c +++ /dev/null @@ -1,62 +0,0 @@ -/* Disable specific event for thread. -   Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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_thr_events_t old_event; -  int i; - -  LOG ("td_thr_clear_event"); - -  /* If the thread descriptor has not yet been constructed do not do -     anything.  */ -  if (th->th_unique == NULL) -    return TD_OK; - -  /* Write the new value into the thread data structure.  */ -  if (ps_pdread (th->th_ta_p->ph, -		 ((char *) th->th_unique -		  + offsetof (struct _pthread_descr_struct, -			      p_eventbuf.eventmask)), -		 &old_event, sizeof (td_thrhandle_t)) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ - -  /* Remove the set bits in.  */ -  for (i = 0; i < TD_EVENTSIZE; ++i) -    old_event.event_bits[i] &= ~event->event_bits[i]; - -  /* Write the new value into the thread data structure.  */ -  if (ps_pdwrite (th->th_ta_p->ph, -		  ((char *) th->th_unique -		   + offsetof (struct _pthread_descr_struct, -			       p_eventbuf.eventmask)), -		  &old_event, sizeof (td_thrhandle_t)) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ - -  return TD_OK; -} diff --git a/libpthread/linuxthreads_db/td_thr_dbresume.c b/libpthread/linuxthreads_db/td_thr_dbresume.c deleted file mode 100644 index 7b7f6eef9..000000000 --- a/libpthread/linuxthreads_db/td_thr_dbresume.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Resume execution of given thread. -   Copyright (C) 1999, 2001 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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/linuxthreads_db/td_thr_dbsuspend.c b/libpthread/linuxthreads_db/td_thr_dbsuspend.c deleted file mode 100644 index ef668023d..000000000 --- a/libpthread/linuxthreads_db/td_thr_dbsuspend.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Suspend execution of given thread. -   Copyright (C) 1999, 2001 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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/linuxthreads_db/td_thr_event_enable.c b/libpthread/linuxthreads_db/td_thr_event_enable.c deleted file mode 100644 index 407f3fc44..000000000 --- a/libpthread/linuxthreads_db/td_thr_event_enable.c +++ /dev/null @@ -1,57 +0,0 @@ -/* Enable event process-wide. -   Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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_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.  */ -  if (th->th_unique == NULL) -    { -      psaddr_t addr; - -      if (td_lookup (th->th_ta_p->ph, LINUXTHREADS_INITIAL_REPORT_EVENTS, -		     &addr) != PS_OK) -	/* Cannot read the symbol.  This should not happen.  */ -	return TD_ERR; - -      if (ps_pdwrite (th->th_ta_p->ph, addr, &onoff, sizeof (int)) != PS_OK) -	return TD_ERR; - -      return TD_OK; -    } - -  if (ps_pdwrite (th->th_ta_p->ph, -		  ((char *) th->th_unique -		   + offsetof (struct _pthread_descr_struct, -			       p_report_events)), -		  &onoff, sizeof (int)) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ - -  return TD_OK; -} diff --git a/libpthread/linuxthreads_db/td_thr_event_getmsg.c b/libpthread/linuxthreads_db/td_thr_event_getmsg.c deleted file mode 100644 index bf4ddd4ad..000000000 --- a/libpthread/linuxthreads_db/td_thr_event_getmsg.c +++ /dev/null @@ -1,65 +0,0 @@ -/* Retrieve event. -   Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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_event_getmsg (const td_thrhandle_t *th, td_event_msg_t *msg) -{ -  td_eventbuf_t event; - -  LOG ("td_thr_event_getmsg"); - -  /* If the thread descriptor has not yet been created there cannot be -     any event.  */ -  if (th->th_unique == NULL) -    return TD_NOMSG; - -  /* Read the even structure from the target.  */ -  if (ps_pdread (th->th_ta_p->ph, -		 ((char *) th->th_unique -		  + offsetof (struct _pthread_descr_struct, p_eventbuf)), -		 &event, sizeof (td_eventbuf_t)) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ - -  /* Check whether an event occurred.  */ -  if (event.eventnum == TD_EVENT_NONE) -    /* Nothing.  */ -    return TD_NOMSG; - -  /* Fill the user's data structure.  */ -  msg->event = event.eventnum; -  msg->th_p = th; -  msg->msg.data = (uintptr_t) event.eventdata; - -  /* And clear the event message in the target.  */ -  memset (&event, '\0', sizeof (td_eventbuf_t)); -  if (ps_pdwrite (th->th_ta_p->ph, -		  ((char *) th->th_unique -		   + offsetof (struct _pthread_descr_struct, p_eventbuf)), -		  &event, sizeof (td_eventbuf_t)) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ - -  return TD_OK; -} diff --git a/libpthread/linuxthreads_db/td_thr_get_info.c b/libpthread/linuxthreads_db/td_thr_get_info.c deleted file mode 100644 index 4666bda97..000000000 --- a/libpthread/linuxthreads_db/td_thr_get_info.c +++ /dev/null @@ -1,83 +0,0 @@ -/* Get thread information. -   Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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) -{ -  struct _pthread_descr_struct pds; - -  LOG ("td_thr_get_info"); - -  /* Handle the case when the thread library is not yet initialized.  */ -  if (th->th_unique == NULL) -    { -      memset (&pds, '\0', sizeof (pds)); -      pds.p_tid = PTHREAD_THREADS_MAX; -    } -  else -    /* Get the thread descriptor.  */ -    if (ps_pdread (th->th_ta_p->ph, th->th_unique, &pds, -		   th->th_ta_p->sizeof_descr) != PS_OK) -      return TD_ERR;	/* XXX Other error value?  */ - -  /* Fill in information.  Clear first to provide reproducable -     results for the fields we do not fill in.  */ -  memset (infop, '\0', sizeof (td_thrinfo_t)); - -  /* We have to handle the manager thread special since the thread -     descriptor in older versions is not fully initialized.  */ -  if (pds.p_nr == 1) -    { -      infop->ti_tid = th->th_ta_p->pthread_threads_max * 2 + 1; -      infop->ti_type = TD_THR_SYSTEM; -      infop->ti_state = TD_THR_ACTIVE; -    } -  else -    { -      infop->ti_tid = pds.p_tid; -      infop->ti_tls = (char *) pds.p_specific; -      infop->ti_pri = pds.p_priority; -      infop->ti_type = TD_THR_USER; - -      if (! pds.p_terminated) -	/* XXX For now there is no way to get more information.  */ -	infop->ti_state = TD_THR_ACTIVE; -      else if (! pds.p_detached) -	infop->ti_state = TD_THR_ZOMBIE; -      else -	infop->ti_state = TD_THR_UNKNOWN; -    } - -  /* Initialization which are the same in both cases.  */ -  infop->ti_lid = pds.p_pid ?: ps_getpid (th->th_ta_p->ph); -  infop->ti_ta_p = th->th_ta_p; -  infop->ti_startfunc = pds.p_start_args.start_routine; -  memcpy (&infop->ti_events, &pds.p_eventbuf.eventmask, -	  sizeof (td_thr_events_t)); -  infop->ti_traceme = pds.p_report_events != 0; - -  return TD_OK; -} diff --git a/libpthread/linuxthreads_db/td_thr_getfpregs.c b/libpthread/linuxthreads_db/td_thr_getfpregs.c deleted file mode 100644 index 31c55c876..000000000 --- a/libpthread/linuxthreads_db/td_thr_getfpregs.c +++ /dev/null @@ -1,58 +0,0 @@ -/* Get a thread's floating-point register set. -   Copyright (C) 1999, 2001, 2003 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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) -{ -  struct _pthread_descr_struct pds; - -  LOG ("td_thr_getfpregs"); - -  if (th->th_unique == NULL) -    { -      /* No data yet.  Use the main thread.  */ -      pid_t pid = ps_getpid (th->th_ta_p->ph); -      if (ps_lgetfpregs (th->th_ta_p->ph, pid, regset) != PS_OK) -	return TD_ERR; -      return TD_OK; -    } - -  /* We have to get the state and the PID for this thread.  */ -  if (ps_pdread (th->th_ta_p->ph, th->th_unique, &pds, -		 sizeof (struct _pthread_descr_struct)) != PS_OK) -    return TD_ERR; - -  /* If the thread already terminated we return all zeroes.  */ -  if (pds.p_terminated) -    memset (regset, '\0', sizeof (*regset)); -  /* Otherwise get the register content through the callback.  */ -  else -    { -      pid_t pid = pds.p_pid ?: ps_getpid (th->th_ta_p->ph); - -      if (ps_lgetfpregs (th->th_ta_p->ph, pid, regset) != PS_OK) -	return TD_ERR; -    } - -  return TD_OK; -} diff --git a/libpthread/linuxthreads_db/td_thr_getgregs.c b/libpthread/linuxthreads_db/td_thr_getgregs.c deleted file mode 100644 index a9ec6a37d..000000000 --- a/libpthread/linuxthreads_db/td_thr_getgregs.c +++ /dev/null @@ -1,58 +0,0 @@ -/* Get a thread's general register set. -   Copyright (C) 1999, 2000, 2001, 2003 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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 gregs) -{ -  struct _pthread_descr_struct pds; - -  LOG ("td_thr_getgregs"); - -  if (th->th_unique == NULL) -    { -      /* No data yet.  Use the main thread.  */ -      pid_t pid = ps_getpid (th->th_ta_p->ph); -      if (ps_lgetregs (th->th_ta_p->ph, pid, gregs) != PS_OK) -	return TD_ERR; -      return TD_OK; -    } - -  /* We have to get the state and the PID for this thread.  */ -  if (ps_pdread (th->th_ta_p->ph, th->th_unique, &pds, -		 sizeof (struct _pthread_descr_struct)) != PS_OK) -    return TD_ERR; - -  /* If the thread already terminated we return all zeroes.  */ -  if (pds.p_terminated) -    memset (gregs, '\0', sizeof (prgregset_t)); -  /* Otherwise get the register content through the callback.  */ -  else -    { -      pid_t pid = pds.p_pid ?: ps_getpid (th->th_ta_p->ph); - -      if (ps_lgetregs (th->th_ta_p->ph, pid, gregs) != PS_OK) -	return TD_ERR; -    } - -  return TD_OK; -} diff --git a/libpthread/linuxthreads_db/td_thr_getxregs.c b/libpthread/linuxthreads_db/td_thr_getxregs.c deleted file mode 100644 index 39cd73cf1..000000000 --- a/libpthread/linuxthreads_db/td_thr_getxregs.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Get a thread's extra state register set. -   Copyright (C) 1999, 2001 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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/linuxthreads_db/td_thr_getxregsize.c b/libpthread/linuxthreads_db/td_thr_getxregsize.c deleted file mode 100644 index 5d8ac288e..000000000 --- a/libpthread/linuxthreads_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 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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/linuxthreads_db/td_thr_set_event.c b/libpthread/linuxthreads_db/td_thr_set_event.c deleted file mode 100644 index 205b445c7..000000000 --- a/libpthread/linuxthreads_db/td_thr_set_event.c +++ /dev/null @@ -1,62 +0,0 @@ -/* Enable specific event for thread. -   Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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_thr_events_t old_event; -  int i; - -  LOG ("td_thr_set_event"); - -  /* What shall we do if no thread descriptor exists but the user -     wants to set an event?  */ -  if (th->th_unique == NULL) -    return TD_NOTALLOC; - -  /* Write the new value into the thread data structure.  */ -  if (ps_pdread (th->th_ta_p->ph, -		 ((char *) th->th_unique -		  + offsetof (struct _pthread_descr_struct, -			      p_eventbuf.eventmask)), -		 &old_event, sizeof (td_thrhandle_t)) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ - -  /* Or the new bits in.  */ -  for (i = 0; i < TD_EVENTSIZE; ++i) -    old_event.event_bits[i] |= event->event_bits[i]; - -  /* Write the new value into the thread data structure.  */ -  if (ps_pdwrite (th->th_ta_p->ph, -		  ((char *) th->th_unique -		   + offsetof (struct _pthread_descr_struct, -			       p_eventbuf.eventmask)), -		  &old_event, sizeof (td_thrhandle_t)) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ - -  return TD_OK; -} diff --git a/libpthread/linuxthreads_db/td_thr_setfpregs.c b/libpthread/linuxthreads_db/td_thr_setfpregs.c deleted file mode 100644 index e4d9ec65e..000000000 --- a/libpthread/linuxthreads_db/td_thr_setfpregs.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Set a thread's floating-point 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@cygnus.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) -{ -  struct _pthread_descr_struct pds = { .p_terminated = 0, .p_pid = 0 }; - -  LOG ("td_thr_setfpregs"); - -  /* We have to get the state and the PID for this thread.  */ -  if (th->th_unique != NULL -      && ps_pdread (th->th_ta_p->ph, th->th_unique, &pds, -                 sizeof (struct _pthread_descr_struct)) != PS_OK) -    return TD_ERR; - -  /* Only set the registers if the thread hasn't yet terminated.  */ -  if (pds.p_terminated == 0) -    { -      pid_t pid = pds.p_pid ?: ps_getpid (th->th_ta_p->ph); - -      if (ps_lsetfpregs (th->th_ta_p->ph, pid, fpregs) != PS_OK) -	return TD_ERR; -    } - -  return TD_OK; -} diff --git a/libpthread/linuxthreads_db/td_thr_setgregs.c b/libpthread/linuxthreads_db/td_thr_setgregs.c deleted file mode 100644 index 8c021a473..000000000 --- a/libpthread/linuxthreads_db/td_thr_setgregs.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Set a thread's general 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@cygnus.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) -{ -  struct _pthread_descr_struct pds = { .p_terminated = 0, .p_pid = 0 }; - -  LOG ("td_thr_setgregs"); - -  /* We have to get the state and the PID for this thread.  */ -  if (th->th_unique != NULL -      && ps_pdread (th->th_ta_p->ph, th->th_unique, &pds, -                 sizeof (struct _pthread_descr_struct)) != PS_OK) -    return TD_ERR; - -  /* Only set the registers if the thread hasn't yet terminated.  */ -  if (pds.p_terminated == 0) -    { -      pid_t pid = pds.p_pid ?: ps_getpid (th->th_ta_p->ph); - -      if (ps_lsetregs (th->th_ta_p->ph, pid, gregs) != PS_OK) -	return TD_ERR; -    } - -  return TD_OK; -} diff --git a/libpthread/linuxthreads_db/td_thr_setprio.c b/libpthread/linuxthreads_db/td_thr_setprio.c deleted file mode 100644 index 98d202dfe..000000000 --- a/libpthread/linuxthreads_db/td_thr_setprio.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Set a thread's priority. -   Copyright (C) 1999, 2001 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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/linuxthreads_db/td_thr_setsigpending.c b/libpthread/linuxthreads_db/td_thr_setsigpending.c deleted file mode 100644 index 98e30140e..000000000 --- a/libpthread/linuxthreads_db/td_thr_setsigpending.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Raise a signal for a thread. -   Copyright (C) 1999, 2001 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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/linuxthreads_db/td_thr_setxregs.c b/libpthread/linuxthreads_db/td_thr_setxregs.c deleted file mode 100644 index da77ab3b4..000000000 --- a/libpthread/linuxthreads_db/td_thr_setxregs.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Set a thread's extra state register set. -   Copyright (C) 1999, 2001 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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/linuxthreads_db/td_thr_sigsetmask.c b/libpthread/linuxthreads_db/td_thr_sigsetmask.c deleted file mode 100644 index 8b0eb8185..000000000 --- a/libpthread/linuxthreads_db/td_thr_sigsetmask.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Set a thread's signal mask. -   Copyright (C) 1999, 2001 Free Software Foundation, Inc. -   This file is part of the GNU C Library. -   Contributed by Ulrich Drepper <drepper@cygnus.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/linuxthreads_db/td_thr_tls_get_addr.c b/libpthread/linuxthreads_db/td_thr_tls_get_addr.c deleted file mode 100644 index e140b77dc..000000000 --- a/libpthread/linuxthreads_db/td_thr_tls_get_addr.c +++ /dev/null @@ -1,70 +0,0 @@ -/* Get address of thread local variable. -   Copyright (C) 2002 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" - -/* Value used for dtv entries for which the allocation is delayed.  */ -# define TLS_DTV_UNALLOCATED	((void *) -1l) - - -td_err_e -td_thr_tls_get_addr (const td_thrhandle_t *th __attribute__ ((unused)), -		     void *map_address __attribute__ ((unused)), -		     size_t offset __attribute__ ((unused)), -		     void **address __attribute__ ((unused))) -{ -#if USE_TLS -  size_t modid; -  union dtv pdtv, *dtvp; - -  LOG ("td_thr_tls_get_addr"); - -  /* Get the DTV pointer from the thread descriptor.  */ -  if (ps_pdread (th->th_ta_p->ph, -		 &((struct _pthread_descr_struct *) th->th_unique)->p_header.data.dtvp, -		 &dtvp, sizeof dtvp) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ - -  /* Read the module ID from the link_map.  */ -  if (ps_pdread (th->th_ta_p->ph, -		 &((struct link_map *) map_address)->l_tls_modid, -		 &modid, sizeof modid) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ - -  /* Get the corresponding entry in the DTV.  */ -  if (ps_pdread (th->th_ta_p->ph, dtvp + modid, -		 &pdtv, sizeof (union dtv)) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ - -  /* It could be that the memory for this module is not allocated for -     the given thread.  */ -  if (pdtv.pointer == TLS_DTV_UNALLOCATED) -    /* There is not much we can do.  */ -    return TD_NOTALLOC; - -  *address = (char *) pdtv.pointer + offset; - -  return TD_OK; -#else -  return TD_ERR; -#endif -} diff --git a/libpthread/linuxthreads_db/td_thr_tsd.c b/libpthread/linuxthreads_db/td_thr_tsd.c deleted file mode 100644 index f2cdefcfa..000000000 --- a/libpthread/linuxthreads_db/td_thr_tsd.c +++ /dev/null @@ -1,82 +0,0 @@ -/* Get a thread-specific data pointer 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@cygnus.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 "../linuxthreads/internals.h" - - -td_err_e -td_thr_tsd (const td_thrhandle_t *th, const thread_key_t tk, void **data) -{ -  struct _pthread_descr_struct pds; -  struct pthread_key_struct *keys = th->th_ta_p->keys; -  struct pthread_key_struct key; -  int pthread_keys_max = th->th_ta_p->pthread_keys_max; -  int pthread_key_2ndlevel_size = th->th_ta_p->pthread_key_2ndlevel_size; -  unsigned int idx1st; -  unsigned int idx2nd; -  void *p; - -  LOG ("td_thr_tsd"); - -  /* If there is no thread descriptor there cannot be any thread -     specific data.  */ -  if (th->th_unique == NULL) -    return TD_BADKEY; - -  /* Get the thread descriptor.  */ -  if (ps_pdread (th->th_ta_p->ph, th->th_unique, &pds, -		 sizeof (struct _pthread_descr_struct)) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ - -  /* Check correct value of key.  */ -  if (tk >= pthread_keys_max) -    return TD_BADKEY; - -  /* Get the key entry.  */ -  if (ps_pdread (th->th_ta_p->ph, &keys[tk], &key, -		 sizeof (struct pthread_key_struct)) != PS_OK) -    return TD_ERR;	/* XXX Other error value?  */ - -  /* Fail if this key is not at all used.  */ -  if (! key.in_use) -    return TD_BADKEY; - -  /* Compute the indeces.  */ -  idx1st = tk / pthread_key_2ndlevel_size; -  idx2nd = tk % pthread_key_2ndlevel_size; - -  /* Check the pointer to the second level array.  */ -  if (pds.p_specific[idx1st] == NULL) -    return TD_NOTSD; - -  /* Now get the real key. -     XXX I don't know whether it's correct but there is currently no -     easy way to determine whether a key was never set or the value -     is NULL.  We return an error whenever the value is NULL.  */ -  if (ps_pdread (th->th_ta_p->ph, &pds.p_specific[idx1st][idx2nd], &p, -		 sizeof (void *)) != PS_OK) -    return TD_ERR; - -  if (p != NULL) -    *data = p; - -  return p != NULL ? TD_OK : TD_NOTSD; -} diff --git a/libpthread/linuxthreads_db/td_thr_validate.c b/libpthread/linuxthreads_db/td_thr_validate.c deleted file mode 100644 index e18b5728b..000000000 --- a/libpthread/linuxthreads_db/td_thr_validate.c +++ /dev/null @@ -1,70 +0,0 @@ -/* Validate a 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@cygnus.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 "../linuxthreads/internals.h" - - -td_err_e -td_thr_validate (const td_thrhandle_t *th) -{ -  struct pthread_handle_struct *handles = th->th_ta_p->handles; -  int pthread_threads_max = th->th_ta_p->pthread_threads_max; -  int cnt; -  struct pthread_handle_struct phc; - -  LOG ("td_thr_validate"); - -  /* A special case: if the program just starts up the handle is -     NULL.  */ -  if (th->th_unique == NULL) -    { -      /* Read the first handle.  If the pointer to the thread -	 descriptor is not NULL this is an error.  */ -      if (ps_pdread (th->th_ta_p->ph, handles, &phc, -		     sizeof (struct pthread_handle_struct)) != PS_OK) -	return TD_ERR;	/* XXX Other error value?  */ - -      return phc.h_descr == NULL ? TD_OK : TD_NOTHR; -    } - -  /* Now get all descriptors, one after the other.  */ -  for (cnt = 0; cnt < pthread_threads_max; ++cnt, ++handles) -    { -      if (ps_pdread (th->th_ta_p->ph, handles, &phc, -		     sizeof (struct pthread_handle_struct)) != PS_OK) -	return TD_ERR;	/* XXX Other error value?  */ - -      if (phc.h_descr != NULL && phc.h_descr == th->th_unique) -	{ -	  struct _pthread_descr_struct pds; - -	  if (ps_pdread (th->th_ta_p->ph, phc.h_descr, &pds, -			 th->th_ta_p->sizeof_descr) != PS_OK) -	    return TD_ERR;	/* XXX Other error value?  */ - -	  /* XXX There should be another test using the TID but this is -	     currently not available.  */ -	  return pds.p_terminated != 0 ? TD_NOTHR : TD_OK; -	} -    } - -  return TD_ERR; -} diff --git a/libpthread/linuxthreads_db/thread_db.h b/libpthread/linuxthreads_db/thread_db.h deleted file mode 100644 index f0d9aa7c3..000000000 --- a/libpthread/linuxthreads_db/thread_db.h +++ /dev/null @@ -1,451 +0,0 @@ -/* Copyright (C) 1999, 2001, 2002 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 LinuxThreads 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_NOTALLOC,	  /* TLS memory not yet allocated.  */ -  TD_VERSION	  /* Version if libpthread and libthread_db do not match.  */ -} 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;			/* Unused.  */ -  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 thread local variable.  */ -extern td_err_e td_thr_tls_get_addr (const td_thrhandle_t *__th, -				     void *__map_address, size_t __offset, -				     void **__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/linuxthreads_db/thread_dbP.h b/libpthread/linuxthreads_db/thread_dbP.h deleted file mode 100644 index c45336ac9..000000000 --- a/libpthread/linuxthreads_db/thread_dbP.h +++ /dev/null @@ -1,110 +0,0 @@ -/* Private header for thread debug library.  */ -#ifndef _THREAD_DBP_H -#define _THREAD_DBP_H	1 - -#define __FORCE_GLIBC -#include <features.h> -#include <string.h> -#include <unistd.h> -#include "proc_service.h" -#include "thread_db.h" -#include "../linuxthreads/internals.h" - - -/* Indeces for the symbol names.  */ -enum -  { -    PTHREAD_THREADS_EVENTS = 0, -    PTHREAD_LAST_EVENT, -    PTHREAD_HANDLES_NUM, -    PTHREAD_HANDLES, -    PTHREAD_KEYS, -    LINUXTHREADS_PTHREAD_THREADS_MAX, -    LINUXTHREADS_PTHREAD_KEYS_MAX, -    LINUXTHREADS_PTHREAD_SIZEOF_DESCR, -    LINUXTHREADS_CREATE_EVENT, -    LINUXTHREADS_DEATH_EVENT, -    LINUXTHREADS_REAP_EVENT, -    LINUXTHREADS_INITIAL_REPORT_EVENTS, -    LINUXTHREADS_VERSION, -    NUM_MESSAGES -  }; - - -/* Comment out the following for less verbose output.  */ -#ifndef NDEBUG -# define LOG(c) if (__td_debug) __libc_write (2, c "\n", strlen (c "\n")) -extern int __td_debug; -#else -# define LOG(c) -#endif - - -/* Handle for a process.  This type is opaque.  */ -struct td_thragent -{ -  /* Delivered by the debugger and we have to pass it back in the -     proc callbacks.  */ -  struct ps_prochandle *ph; - -  /* Some cached information.  */ - -  /* Address of the `__pthread_handles' array.  */ -  struct pthread_handle_struct *handles; - -  /* Address of the `pthread_kyes' array.  */ -  struct pthread_key_struct *keys; - -  /* Maximum number of threads.  */ -  int pthread_threads_max; - -  /* Maximum number of thread-local data keys.  */ -  int pthread_keys_max; - -  /* Size of 2nd level array for thread-local data keys.  */ -  int pthread_key_2ndlevel_size; - -  /* Sizeof struct _pthread_descr_struct.  */ -  int sizeof_descr; - -  /* Pointer to the `__pthread_threads_events' variable in the target.  */ -  psaddr_t pthread_threads_eventsp; - -  /* Pointer to the `__pthread_last_event' variable in the target.  */ -  psaddr_t pthread_last_event; - -  /* Pointer to the `__pthread_handles_num' variable.  */ -  psaddr_t pthread_handles_num; -}; - - -/* Type used internally to keep track of thread agent descriptors.  */ -struct agent_list -{ -  td_thragent_t *ta; -  struct agent_list *next; -}; - -/* List of all known descriptors.  */ -extern struct agent_list *__td_agent_list; - -/* Function used to test for correct thread agent pointer.  */ -static inline int -ta_ok (const td_thragent_t *ta) -{ -  struct agent_list *runp = __td_agent_list; - -  if (ta == NULL) -    return 0; - -  while (runp != NULL && runp->ta != ta) -    runp = runp->next; - -  return runp != NULL; -} - - -/* Internal wrapper around ps_pglobal_lookup.  */ -extern int td_lookup (struct ps_prochandle *ps, int idx, psaddr_t *sym_addr); - -#endif /* thread_dbP.h */  | 
