aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);