aboutsummaryrefslogtreecommitdiff
path: root/gdb/hpux-thread.c
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2007-05-11 19:55:20 +0000
committerUlrich Weigand <uweigand@de.ibm.com>2007-05-11 19:55:20 +0000
commit06d3b283b148a3ab8ff85a50fb127973524e700c (patch)
tree4ba2d7fb06e44c9d4f6276211f4378d0e99e8e8d /gdb/hpux-thread.c
parent93ce7684566b4347cf4135f828dcffdb48417ebb (diff)
downloadgdb-06d3b283b148a3ab8ff85a50fb127973524e700c.zip
gdb-06d3b283b148a3ab8ff85a50fb127973524e700c.tar.gz
gdb-06d3b283b148a3ab8ff85a50fb127973524e700c.tar.bz2
doc/ChangeLog:
* observer.texi (GDB Observers): New observer "new_objfile". ChangeLog: * observer.sh: Add "struct objfile" forward declaration. * target.h (deprecated_target_new_objfile_hook): Remove. * symfile.c (deprecated_target_new_objfile_hook): Remove. (clear_symtab_users): Call observer_notify_new_objfile. (symbol_file_add_with_addrs_or_offsets): Likewise. * rs6000-nat.c: Include "observer.h". (vmap_ldinfo): Call observer_notify_new_objfile. (xcoff_relocate_core): Likewise. * remote.c (remote_new_objfile_chain): Remove. (remote_new_objfile): Do not call remote_new_objfile_chain. (_initialize_remote): Use observer_attach_new_objfile. * tui/tui-hooks.c (tui_target_new_objfile_chain): Remove. (tui_new_objfile_hook): Do not call tui_target_new_objfile_chain. (_initialize_tui_hooks): Use observer_attach_new_objfile. * aix-thread.c: Include "observer.h". (target_new_objfile_chain): Remove. (new_objfile): Do not call target_new_objfile_chain. (_initialize_aix_thread): Use observer_attach_new_objfile. * hpux-thread.c: Include "observer.h" (target_new_objfile_chain): Remove. (hpux_thread_new_objfile): Make static. Do not call target_new_objfile_chain. (_initialize_hpux_thread): Use observer_attach_new_objfile. * linux-thread-db.c: Include "observer.h". (target_new_objfile_chain): Remove. (thread_db_new_objfile): Do not call target_new_objfile_chain. (_initialize_thread_db): Use observer_attach_new_objfile. * sol-thread.c: Include "observer.h". (target_new_objfile_chain): Remove. (sol_thread_new_objfile): Make static. Do not call target_new_objfile_chain. (_initialize_sol_thread): Use observer_attach_new_objfile. * Makefile.in (aix-thread.o, hpux-thread.o, linux-thread-db.o, rs6000-nat.o, sol-thread.o, tui-hooks.o): Add dependency on $(observer_h).
Diffstat (limited to 'gdb/hpux-thread.c')
-rw-r--r--gdb/hpux-thread.c23
1 files changed, 6 insertions, 17 deletions
diff --git a/gdb/hpux-thread.c b/gdb/hpux-thread.c
index 71fe9f9..28920ba 100644
--- a/gdb/hpux-thread.c
+++ b/gdb/hpux-thread.c
@@ -48,6 +48,7 @@
#include "gdb_stat.h"
#include "gdbcore.h"
#include "hppa-tdep.h"
+#include "observer.h"
extern int child_suppress_run;
@@ -461,14 +462,7 @@ hpux_thread_create_inferior (char *exec_file, char *allargs, char **env,
those variables don't show up until the library gets mapped and the symbol
table is read in. */
-/* This new_objfile event is now managed by a chained function pointer.
- * It is the callee's responsability to call the next client on the chain.
- */
-
-/* Saved pointer to previous owner of the new_objfile event. */
-static void (*target_new_objfile_chain) (struct objfile *);
-
-void
+static void
hpux_thread_new_objfile (struct objfile *objfile)
{
struct minimal_symbol *ms;
@@ -476,28 +470,24 @@ hpux_thread_new_objfile (struct objfile *objfile)
if (!objfile)
{
hpux_thread_active = 0;
- goto quit;
+ return;
}
ms = lookup_minimal_symbol ("cma__g_known_threads", NULL, objfile);
if (!ms)
- goto quit;
+ return;
P_cma__g_known_threads = SYMBOL_VALUE_ADDRESS (ms);
ms = lookup_minimal_symbol ("cma__g_current_thread", NULL, objfile);
if (!ms)
- goto quit;
+ return;
P_cma__g_current_thread = SYMBOL_VALUE_ADDRESS (ms);
hpux_thread_active = 1;
-quit:
- /* Call predecessor on chain, if any. */
- if (target_new_objfile_chain)
- target_new_objfile_chain (objfile);
}
/* Clean up after the inferior dies. */
@@ -589,6 +579,5 @@ _initialize_hpux_thread (void)
child_suppress_run = 1;
/* Hook into new_objfile notification. */
- target_new_objfile_chain = deprecated_target_new_objfile_hook;
- deprecated_target_new_objfile_hook = hpux_thread_new_objfile;
+ observer_attach_new_objfile (hpux_thread_new_objfile);
}