diff options
author | Vladimir Prus <vladimir@codesourcery.com> | 2008-11-09 11:27:17 +0000 |
---|---|---|
committer | Vladimir Prus <vladimir@codesourcery.com> | 2008-11-09 11:27:17 +0000 |
commit | 67259e81f777345c0a57fa1a658cbe76a38074cc (patch) | |
tree | 2ce6a184bc7e5c1de67798b5134f1f7cbd0da060 /gdb/linux-nat.c | |
parent | 9a61fea6bb6688fd79be98a3d0a762920c6f82f8 (diff) | |
download | gdb-67259e81f777345c0a57fa1a658cbe76a38074cc.tar.gz |
Kill pthread_ops_hack
* target.h (struct target_ops): Make to_attach, to_detach,
to_create_inferior and to_mourn_inferior accept a pointer
to struct target_ops.
(target_attach, target_create_inferior, target_create_inferior):
Convert from macros to function. Find the right target to
invoke a method of.
(find_default_attach, find_default_create_inferior): New parameter
ops.
* corefile.c (core_file_command): Pass target to to_detach.
* corelow.c (core_detach): Add 'ops' parameter.
* fork-child.c (fork_inferior): Return the pid. Allow
init_trace_fun to be NULL.
* inf-ptrace (ptrace_ops_hack): Remove.
(inf_ptrace_him): Remove, moving all logic into....
(inf_ptrace_create_inferior): ... here. Push the target
passed as parameter.
(inf_ptrace_mourn_inferior, inf_ptrace_attach, inf_ptrace_detach):
Push/pop target passed as parameter, no ptrace_ops_hack.
(inf_ptrace_target): Don't remember result.
* inferior.h (fork_inferior): Adjust prototype.
* linux-nat.c (linux_nat_create_inferior, linux_nat_attach)
(linux_nat_detach, linux_nat_mourn_inferior): New parameter ops.
Pass it to linux_ops target.
* linux-thread-db.c (thread_db_detach, thread_db_mourn_inferior):
New parameter ops. Pass it to the target beneath.
* remote.c (remote_mourn, extended_remote_mourn, remote_detach)
(extended_remote_create_inferior): New parameter ops. Pass it
further.
* target.c (debug_to_attach, debug_to_detach)
(debug_to_mourn_inferior): New parameter ops.
(target_create_inferior): New.
(update_current_target): Do not inherit to_attach, to_detach,
to_create_inferiour, to_mourn_inferior. Do not default
to_detach and to_mourn_inferior.
(target_detach): Find the right target to use.
(target_mourn_inferior): New.
(find_default_attach, find_default_create_inferior): New parameter
ops. Pass the found target when calling its method.
(init_dummy_target): Provide fallback definition of to_detach.
(target_attach): New.
(debug_to_attach, debug_to_detach, debug_to_create_inferior)
(debug_to_mourn_inferiour): New parameter ops.
* aix-thread.c: Adjust.
* bsd-uthread.c: Adjust.
* gnu-nat.c: Adjust.
* go32-nat.c: Adjust.
* hpux-thread.c: Adjust.
* inf-ttrace.c: Ajust.
* monitor.c: Adjust.
* nto-procfs.c: Adjust.
* procfs.c: Adjust.
* remote-m32r-sdi.c: Adjust.
* remote-mips.c: Adjust.
* remote-sim.c: Adjust.
* rs6000-nat.c: Adjust.
* sol-thread.c: Adjust.
* win32-nat.c: Adjust.
* dec-thread.c: Adjust.
Diffstat (limited to 'gdb/linux-nat.c')
-rw-r--r-- | gdb/linux-nat.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c index 56ec9cb2899..913bfecc659 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -1317,7 +1317,8 @@ lin_lwp_attach_lwp (ptid_t ptid) } static void -linux_nat_create_inferior (char *exec_file, char *allargs, char **env, +linux_nat_create_inferior (struct target_ops *ops, + char *exec_file, char *allargs, char **env, int from_tty) { int saved_async = 0; @@ -1364,7 +1365,7 @@ linux_nat_create_inferior (char *exec_file, char *allargs, char **env, } #endif /* HAVE_PERSONALITY */ - linux_ops->to_create_inferior (exec_file, allargs, env, from_tty); + linux_ops->to_create_inferior (ops, exec_file, allargs, env, from_tty); #ifdef HAVE_PERSONALITY if (personality_set) @@ -1382,7 +1383,7 @@ linux_nat_create_inferior (char *exec_file, char *allargs, char **env, } static void -linux_nat_attach (char *args, int from_tty) +linux_nat_attach (struct target_ops *ops, char *args, int from_tty) { struct lwp_info *lp; int status; @@ -1390,7 +1391,7 @@ linux_nat_attach (char *args, int from_tty) /* FIXME: We should probably accept a list of process id's, and attach all of them. */ - linux_ops->to_attach (args, from_tty); + linux_ops->to_attach (ops, args, from_tty); if (!target_can_async_p ()) { @@ -1571,7 +1572,7 @@ detach_callback (struct lwp_info *lp, void *data) } static void -linux_nat_detach (char *args, int from_tty) +linux_nat_detach (struct target_ops *ops, char *args, int from_tty) { int pid; int status; @@ -1612,7 +1613,7 @@ linux_nat_detach (char *args, int from_tty) pid = GET_PID (inferior_ptid); inferior_ptid = pid_to_ptid (pid); - linux_ops->to_detach (args, from_tty); + linux_ops->to_detach (ops, args, from_tty); if (target_can_async_p ()) drain_queued_events (pid); @@ -3176,7 +3177,7 @@ linux_nat_kill (void) } static void -linux_nat_mourn_inferior (void) +linux_nat_mourn_inferior (struct target_ops *ops) { /* Destroy LWP info; it's no longer valid. */ init_lwp_list (); @@ -3186,7 +3187,7 @@ linux_nat_mourn_inferior (void) /* Normal case, no other forks available. */ if (target_can_async_p ()) linux_nat_async (NULL, 0); - linux_ops->to_mourn_inferior (); + linux_ops->to_mourn_inferior (ops); } else /* Multi-fork case. The current inferior_ptid has exited, but |