diff options
author | Daniel Jacobowitz <drow@false.org> | 2006-10-17 16:02:27 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2006-10-17 16:02:27 +0000 |
commit | dae5f5cf4b47e0c8b81c090316093ecf5777f770 (patch) | |
tree | 7a7f4edbdd4892beda9c8424dc6445c998aeb2a4 /gdb/gdbserver/target.h | |
parent | 5bd2f6e2a6179014300f75f86231e0e37736eb6b (diff) | |
download | gdb-dae5f5cf4b47e0c8b81c090316093ecf5777f770.zip gdb-dae5f5cf4b47e0c8b81c090316093ecf5777f770.tar.gz gdb-dae5f5cf4b47e0c8b81c090316093ecf5777f770.tar.bz2 |
* acinclude.m4 (SRV_CHECK_TLS_GET_ADDR): New.
* configure.ac: Use it. Define HAVE_TD_THR_TLS_GET_ADDR.
* config.in, configure: Regenerated.
* inferiors.c (gdb_id_to_thread): New function.
(gdb_id_to_thread_id): Use it.
* linux-low.c (linux_target_ops): Use thread_db_get_tls_address.
* linux-low.h (struct process_info): Add th member.
(thread_db_get_tls_address): New prototype.
* remote-utils.c (decode_address): Make non-static.
* server.c (handle_query): Handle qGetTLSAddr.
* server.h (gdb_id_to_thread, decode_address): New prototypes.
* target.h (struct target_ops): Add get_tls_address.
* thread-db.c (maybe_attach_thread): Save the thread handle.
(thread_db_get_tls_address): New.
Diffstat (limited to 'gdb/gdbserver/target.h')
-rw-r--r-- | gdb/gdbserver/target.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gdb/gdbserver/target.h b/gdb/gdbserver/target.h index 9ee87a2..b2f9b09 100644 --- a/gdb/gdbserver/target.h +++ b/gdb/gdbserver/target.h @@ -163,6 +163,15 @@ struct target_ops time. */ int (*read_offsets) (CORE_ADDR *text, CORE_ADDR *data); + + /* Fetch the address associated with a specific thread local storage + area, determined by the specified THREAD, OFFSET, and LOAD_MODULE. + Stores it in *ADDRESS and returns zero on success; otherwise returns + an error code. A return value of -1 means this system does not + support the operation. */ + + int (*get_tls_address) (struct thread_info *thread, CORE_ADDR offset, + CORE_ADDR load_module, CORE_ADDR *address); }; extern struct target_ops *the_target; |