2002-09-29  Ulrich Drepper  <drepper@redhat.com>

	* td_thr_tsd.c (td_thr_tsd): Read correct entry from pthread_keys
	array.

2002-09-28  Andreas Jaeger  <aj@suse.de>

	* td_thr_tls_get_addr.c (td_thr_tls_get_addr): Fix reference to dtv.

2002-09-24  Roland McGrath  <roland@redhat.com>

	* td_thr_tls_get_addr.c (td_thr_tls_get_addr): Fetch just the
	individual members we need, not the whole structures.

2002-09-24  Ulrich Drepper  <drepper@redhat.com>

	* td_thr_tls_get_addr.c (td_thr_tls_get_addr): Change second
	parameter to be the address of the link map in the inferior process.
	* thread_db.h: Update prototype for td_thr_tls_get_addr.

2002-08-23  Ulrich Drepper  <drepper@redhat.com>

	* thread_dbP.h: Define LINUXTHREADS_VERSION.
	* td_symbol_list.c (symbol_list_arr): Add LINUXTHREADS_VERSION string.
	* td_ta_new.c (td_ta_new): After verifying the thread library is
	there check version.
	* thread_db.h: Add new error TD_VERSION.

2002-08-21  Roland McGrath  <roland@redhat.com>

	* td_thr_tls_get_addr.c (td_thr_tls_get_addr): __attribute_used__ ->
	__attribute__ ((unused)) for arguments.

2002-08-07  Ulrich Drepper  <drepper@redhat.com>

	* thread_dbP.h: Define LINUXTHREADS_INITIAL_REPORT_EVENTS.
	* td_thr_event_enable.c (td_thr_event_enable): If th->th_unique is
	null write to __linuxthreads_initial_report_events.
	* td_symbol_list.c (symbol_list_arr): Add
	__linuxthreads_initial_report_events.

2002-07-16  Ulrich Drepper  <drepper@redhat.com>

	* td_thr_clear_event.c: Yet more changes to help with TLS-enabled
	libpthread.
	* td_thr_event_enable.c: Likewise.
	* td_thr_event_getmsg.c: Likewise.
	* td_thr_set_event.c: Likewise.
	* td_thr_setfpregs.c: Likewise.
	* td_thr_setgregs.c: Likewise.
	* td_thr_tsd.c: Likewise.
	* td_thr_validate.c: Likewise.

2002-07-15  Ulrich Drepper  <drepper@redhat.com>

	* td_ta_thr_iter.c: Some more changes to enable using TLS-enabled
	libpthread.
	* td_thr_event_enable.c: Likewise.
	* td_thr_getfpregs.c: Likewise.
	* td_thr_getgregs.c: Likewise.

2002-07-14  Ulrich Drepper  <drepper@redhat.com>

	* td_ta_map_id2thr.c: Begin fixing implementation for libpthread with
	TLS support.
	* td_ta_map_lwp2thr.c: Likewise.
	* td_ta_thr_iter.c: Likewise.
	* td_thr_get_info.c: Likewise.

2002-07-10  Ulrich Drepper  <drepper@redhat.com>

	* Versions [libthread_db] (GLIBC_2.3): Add td_thr_tls_get_addr.

2002-06-14  H.J. Lu  <hjl@gnu.org>

	* td_thr_tls_get_addr.c (td_thr_tls_get_addr): Don't include
	"tls.h". Return TD_ERR if USE_TLS is not defined.

2002-06-12  Ulrich Drepper  <drepper@redhat.com>

	* td_thr_tls_get_addr.c: New file.
	* thread_db.h: Add prototype for td_thr_tls_get_addr.
	* Makefile (libthread_db-routines): Add td_thr_tls_get_addr.

2002-03-03  Andreas Jaeger  <aj@suse.de>

	* thread_dbP.h: Include <unistd.h> for prototypes of __libc_write.

2002-02-04  Ulrich Drepper  <drepper@redhat.com>

	* thread_dbP.h: Include descr.h instead of internals.h.
	* td_ta_event_getmsg.c: Also include <linuxthreads/internals.h>.
	* td_ta_map_id2thr.c: Likewise.
	* td_ta_map_lwp2thr.c: Likewise.
	* td_ta_thr_iter.c: Likewise.
	* td_ta_tsd_iter.c: Likewise.
	* td_thr_tsd.c: Likewise.
	* td_thr_validate.c: Likewise.

2001-12-28  Andreas Jaeger  <aj@suse.de>

	* td_init.c (td_init): Don't use __FUNCTION__ as literal.
	* td_log.c (td_log): Likewise.
	* td_ta_delete.c (td_ta_delete): Likewise.
	* td_ta_get_nthreads.c (td_ta_get_nthreads): Likewise.
	* td_ta_get_ph.c (td_ta_get_ph): Likewise.
	* td_ta_map_id2thr.c (td_ta_map_id2thr): Likewise.
	* td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Likewise.
	* td_ta_new.c (td_ta_new): Likewise.
	* td_ta_clear_event.c (td_ta_clear_event): Likewise.
	* td_ta_enable_stats.c (td_ta_enable_stats): Likewise.
	* td_ta_event_addr.c (td_ta_event_addr): Likewise.
	* td_ta_event_getmsg.c (td_ta_event_getmsg): Likewise.
	* td_ta_get_stats.c (td_ta_get_stats): Likewise.
	* td_ta_reset_stats.c (td_ta_reset_stats): Likewise.
	* td_ta_set_event.c (td_ta_set_event): Likewise.
	* td_ta_setconcurrency.c (td_ta_setconcurrency): Likewise.
	* td_ta_thr_iter.c (td_ta_thr_iter): Likewise.
	* td_ta_tsd_iter.c (td_ta_tsd_iter): Likewise.
	* td_thr_clear_event.c (td_thr_clear_event): Likewise.
	* td_thr_dbresume.c (td_thr_dbresume): Likewise.
	* td_thr_dbsuspend.c (td_thr_dbsuspend): Likewise.
	* td_thr_event_enable.c (td_thr_event_enable): Likewise.
	* td_thr_event_getmsg.c (td_thr_event_getmsg): Likewise.
	* td_thr_get_info.c (td_thr_get_info): Likewise.
	* td_thr_getfpregs.c (td_thr_getfpregs): Likewise.
	* td_thr_getgregs.c (td_thr_getgregs): Likewise.
	* td_thr_getxregs.c (td_thr_getxregs): Likewise.
	* td_thr_getxregsize.c (td_thr_getxregsize): Likewise.
	* td_thr_set_event.c (td_thr_set_event): Likewise.
	* td_thr_setfpregs.c (td_thr_setfpregs): Likewise.
	* td_thr_setgregs.c (td_thr_setgregs): Likewise.
	* td_thr_setprio.c (td_thr_setprio): Likewise.
	* td_thr_setsigpending.c (td_thr_setsigpending): Likewise.
	* td_thr_setxregs.c (td_thr_setxregs): Likewise.
	* td_thr_sigsetmask.c (td_thr_sigsetmask): Likewise.
	* td_thr_tsd.c (td_thr_tsd): Likewise.
	* td_thr_validate.c (td_thr_validate): Likewise.

2001-04-12  Ulrich Drepper  <drepper@redhat.com>

	* td_ta_map_id2thr.c: If thread terminated return TD_NOTHR.
	* td_thr_validate.c: Likewise.

2001-04-04  Ulrich Drepper  <drepper@redhat.com>

	* td_thr_getfpregs.c: If p_pid is zero use ps_getpid().
	* td_thr_getgregs.c: Likewise.
	* td_thr_setfpregs.c: Likewise.
	* td_thr_setgregs.c: Likewise.

2001-03-20  Ulrich Drepper  <drepper@redhat.com>

	* Makefile (libthread_db-routines): Add td_symbol_list.
	* Versions [libthread_db] (GLIBC_2.2.3): Add td_symbol_list.
	* td_symbol_list.c: New file.
	* thread_db.h: Add prototype for td_symbol_list.
	* thread_dbP.h: Define symbol name indices.
	Add prototype for td_lookup.
	* td_ta_event_addr.c: Use td_lookup instead of directly using
	ps_pglobal_lookup to find symbol address.
	* td_ta_get_nthreads.c: Likewise.
	* td_ta_new.c: Likewise.

2001-03-18  Ulrich Drepper  <drepper@redhat.com>

	* Makefile: When generating DSO link with libc_nonshared.a.

2000-08-01  Andreas Jaeger  <aj@suse.de>

	* Makefile (distribute): Add missing files.

2000-04-24  Mark Kettenis  <kettenis@gnu.org>

	* td_thr_get_info.c (td_thr_get_info): Set ti_state to
	TD_THR_ACTIVE instead of TD_THR_RUN.  If the thread is no longer
	running but is still joinable, set it to TD_THR_ZOMBIE.  Otherwise
	set it to TD_THR_UNKNOWN.

2000-02-25  Andreas Jaeger  <aj@suse.de>

	* td_ta_thr_iter.c: Include <alloca.h> for prototype declaration.
	* td_ta_tsd_iter.c: Likewise.

2000-01-20  Andreas Jaeger  <aj@suse.de>

	* td_thr_getgregs.c (td_thr_getgregs): Fix typo.

2000-01-19  Ulrich Drepper  <drepper@cygnus.com>

	* td_thr_getgregs.c: Correct size parameter of memset call.

1999-12-02  Ulrich Drepper  <drepper@cygnus.com>

	* proc_service.h: Fix typos in last added declaractions.

1999-12-01  Ulrich Drepper  <drepper@cygnus.com>

	* proc_service.h: Add ps_pstop, ps_pcontinue, ps_lstop, and
	ps_lcontinue prototypes.

1999-11-23  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile: Correct dependency for shared object.

1999-11-22  Ulrich Drepper  <drepper@cygnus.com>

	* td_ta_map_lwp2thr.c: Add missing brace in comparison.

	* thread_dbP.h (LOG): Only print message if __td_debug is nonzero.
	* td_init.c: Add __td_debug.

1999-11-12  Ulrich Drepper  <drepper@cygnus.com>

	* td_ta_thr_iter.c: Start copying list of descriptors from right
	position in target process.

	* td_ta_thr_iter.c: Fix loop starting point over all but main and
	manager thread.

	* td_ta_thr_iter.c: Read descriptors for main and manager thread
	special since after this we can assume that no new threads will be
	created anymore (at least in the gdb implementation).

	* Makefile: Define version correctly.

1999-11-10  Ulrich Drepper  <drepper@cygnus.com>

	* td_ta_map_lwp2thr.c: If p_pid field is zero, this is before the
	thread library is initialized and we get the PID from the
	debugger.

1999-11-08  Ulrich Drepper  <drepper@cygnus.com>

	* td_thr_get_info.c: Make sure ti_lid is never zero.

	* proc_service.h: Add ps_getpid prototype.

1999-11-03  Ulrich Drepper  <drepper@cygnus.com>

	* thread_dbP.h (ta_ok): New function.
	* td_ta_new.c: Add new handle to list.
	* td_ta_delete.c: Remove handle from list.
	* td_ta_clear_event.c: Use ta_ok to check for correct ta parameter.
	* td_ta_enable_stats.c: Likewise.
	* td_ta_event_addr.c: Likewise.
	* td_ta_event_getmsg.c: Likewise.
	* td_ta_get_nthreads.c: Likewise.
	* td_ta_get_ph.c: Likewise.
	* td_ta_get_stats.c: Likewise.
	* td_ta_map_id2thr.c: Likewise.
	* td_ta_map_lwp2thr.c: Likewise.
	* td_ta_reset_stats.c: Likewise.
	* td_ta_set_event.c: Likewise.
	* td_ta_setconcurrency.c: Likewise.
	* td_ta_thr_iter.c: Likewise.

	* td_ta_tsd_iter.c: Optimize memory retrieving.

	* Versions: New file.

	* td_thr_get_info.c (td_thr_get_info): Initialize ti_traceme.

1999-11-02  Ulrich Drepper  <drepper@cygnus.com>

	* td_ta_thr_iter.c (td_ta_thr_iter): Optimize a bit.  Read all
	handles at once.

	* thread_dbP.h (struct th_thragent): Add pthread_handle_num.
	* td_ta_new.c: Initialize pthread_handle_num.
	* td_ta_event_getmsg.c: If last event was already reported search
	for another unreported event.

	* td_thr_get_info.c (td_thr_get_info): Initialize ti_events.

	* Makefile (libthread_db-routines): Add td_ta_set_event,
	td_ta_event_getmsg, and td_ta_clear_event.
	* td_ta_clear_event.c: New file.
	* td_ta_event_getmsg.c: New file.
	* td_ta_new.c: Get address of __pthread_last_event in target.
	* td_ta_set_event.c: Don't overwrite old mask, set additional bits.
	* td_thr_set_event.c: Likewise.
	* td_thr_clear_event.c: Implement.
	* thread_db.h: Declare td_ta_clear_event and td_ta_event_getmsg.
	* thread_dbP.h (struct td_thragent): Add pthread_last_event.

	* td_ta_new.c: Don't test for __pthread_threads_debug.  Get address
	of __pthread_threads_events and fail if this is not possible.
	* td_ta_event_addr.c: Implement.
	* td_thr_event_enable.c: Implement.
	* td_thr_event_getmsg.c: Implement.
	* td_thr_set_event.c: Implement.
	* td_ta_set_event.c: New file.
	* thread_db.h (td_eventbuf_t): Define.
	Declare td_ta_set_event.
	* thread_dbP.h (struct td_thragent): Add pthread_threads_eventsp.

	* td_thr_getfpregs.c: For terminated threads return empty structure.
	* td_thr_getgregs.c: Likewise.
	* td_thr_setfpregs.c: Likewise.
	* td_thr_setgregs.c: Likewise.

1999-11-01  Ulrich Drepper  <drepper@cygnus.com>

	* thread_db.h: Shuffle types around to make things work for gdb.
	* thread_dbP.h: Include proc_service.h before thread_db.h.

	* thread_db.h: It's TD_NOLIBTHREAD, not TD_LIBTHREAD.
	* td_ta_new.c: Likewise.

1999-10-14  Ulrich Drepper  <drepper@cygnus.com>

	* td_ta_new.c: p_startfct does not exist anymore.

	* td_thr_get_info.c: Always initialize start function.

	* td_ta_thr_iter.c: Don't return threads which exited (but are not
	joined).

	* td_thr_validate.c: Don't skip manager thread.

1999-10-13  Ulrich Drepper  <drepper@cygnus.com>

	* td_ta_thr_iter.c: Use size of descriptor from *TA.
	Don't return manager thread before it's actually running.
	Actually use state parameter to distingusih at least a few states.

	* td_thr_get_info.c: Handle manager thread special.  Fill in ti_lid,
	ti_state, and ti_startfunc fields.

1999-10-12  Andreas Jaeger  <aj@suse.de>

	* thread_dbP.h: Include <string.h> for strlen declaration.  Remove
	__libc_write prototype since this is already declared in
	linuxthreads/internals.h.

1999-10-11  Ulrich Drepper  <drepper@cygnus.com>

	* thread_db.h: Fix comment for ti_type.

	* td_thr_get_info.c: Initialize ti_type field.

	* td_ta_thr_iter.c: Also report the manager thread.

1999-10-08  Andreas Jaeger  <aj@suse.de>

	* thread_db.h: Fix typos in comments.

	* td_ta_get_nthreads.c (td_ta_get_nthreads): Don't hardcode
	libpthread library name, get it from <gnu/lib-names.h> instead.
	* td_ta_new.c (td_ta_new): Likewise.

1999-10-08  Ulrich Drepper  <drepper@cygnus.com>

	* shlib-versions: New file.

1999-10-07  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile: New file.
	* proc_service.h: New file.
	* td_init.c: New file.
	* td_log.c: New file.
	* td_ta_delete.c: New file.
	* td_ta_enable_stats.c: New file.
	* td_ta_event_addr.c: New file.
	* td_ta_get_nthreads.c: New file.
	* td_ta_get_ph.c: New file.
	* td_ta_get_stats.c: New file.
	* td_ta_map_id2thr.c: New file.
	* td_ta_map_lwp2thr.c: New file.
	* td_ta_new.c: New file.
	* td_ta_reset_stats.c: New file.
	* td_ta_setconcurrency.c: New file.
	* td_ta_thr_iter.c: New file.
	* td_ta_tsd_iter.c: New file.
	* td_thr_clear_event.c: New file.
	* td_thr_dbresume.c: New file.
	* td_thr_dbsuspend.c: New file.
	* td_thr_event_enable.c: New file.
	* td_thr_event_getmsg.c: New file.
	* td_thr_get_info.c: New file.
	* td_thr_getfpregs.c: New file.
	* td_thr_getgregs.c: New file.
	* td_thr_getxregs.c: New file.
	* td_thr_getxregsize.c: New file.
	* td_thr_set_event.c: New file.
	* td_thr_setfpregs.c: New file.
	* td_thr_setgregs.c: New file.
	* td_thr_setprio.c: New file.
	* td_thr_setsigpending.c: New file.
	* td_thr_setxregs.c: New file.
	* td_thr_sigsetmask.c: New file.
	* td_thr_tsd.c: New file.
	* td_thr_validate.c: New file.
	* thread_db.h: New file.
	* thread_dbP.h: New file.
