about summary refs log tree commit diff
path: root/linuxthreads_db
diff options
context:
space:
mode:
Diffstat (limited to 'linuxthreads_db')
-rw-r--r--linuxthreads_db/ChangeLog6
-rw-r--r--linuxthreads_db/Makefile4
-rw-r--r--linuxthreads_db/thread_db.h17
3 files changed, 22 insertions, 5 deletions
diff --git a/linuxthreads_db/ChangeLog b/linuxthreads_db/ChangeLog
index d02ceec2fa..e2524274ca 100644
--- a/linuxthreads_db/ChangeLog
+++ b/linuxthreads_db/ChangeLog
@@ -1,3 +1,9 @@
+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.
diff --git a/linuxthreads_db/Makefile b/linuxthreads_db/Makefile
index 8e56774f9c..30eba9f042 100644
--- a/linuxthreads_db/Makefile
+++ b/linuxthreads_db/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 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
@@ -39,7 +39,7 @@ libthread_db-routines = td_init td_log td_ta_delete td_ta_get_nthreads      \
 			td_thr_event_enable td_thr_set_event 		    \
 			td_thr_clear_event td_thr_event_getmsg		    \
 			td_ta_set_event td_ta_event_getmsg		    \
-			td_ta_clear_event td_symbol_list
+			td_ta_clear_event td_symbol_list td_thr_tls_get_addr
 
 libthread_db-inhibit-o = $(filter-out .os,$(object-suffixes))
 
diff --git a/linuxthreads_db/thread_db.h b/linuxthreads_db/thread_db.h
index b192d1f2e9..65cdb84886 100644
--- a/linuxthreads_db/thread_db.h
+++ b/linuxthreads_db/thread_db.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+/* 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
@@ -51,7 +51,8 @@ typedef enum
   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_NOXREGS,	  /* X register set not available for given thread.  */
+  TD_NOTALLOC	  /* TLS memory not yet allocated.  */
 } td_err_e;
 
 
@@ -92,6 +93,10 @@ typedef struct td_thrhandle
 } 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
@@ -344,7 +349,7 @@ extern td_err_e td_ta_clear_event (const td_thragent_t *__ta,
 
 /* Return information about last event.  */
 extern td_err_e td_ta_event_getmsg (const td_thragent_t *__ta,
-				    td_event_msg_t *msg);
+				    td_event_msg_t *__msg);
 
 
 /* Set suggested concurrency level for process associated with TA.  */
@@ -396,6 +401,12 @@ 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,
+				     struct link_map *__map, 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);