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.
This commit is contained in:
Vladimir Prus
2008-11-09 11:27:18 +00:00
parent ed40653276
commit 136d6dae62
28 changed files with 310 additions and 181 deletions

View File

@@ -105,11 +105,11 @@ static void remote_close (int quitting);
static void remote_store_registers (struct regcache *regcache, int regno);
static void remote_mourn (void);
static void remote_mourn (struct target_ops *ops);
static void extended_remote_restart (void);
static void extended_remote_mourn (void);
static void extended_remote_mourn (struct target_ops *);
static void remote_mourn_1 (struct target_ops *);
@@ -133,7 +133,7 @@ static void remote_async (void (*callback) (enum inferior_event_type event_type,
static int remote_async_mask (int new_mask);
static void remote_detach (char *args, int from_tty);
static void remote_detach (struct target_ops *ops, char *args, int from_tty);
static void remote_interrupt (int signo);
@@ -3306,13 +3306,13 @@ remote_detach_1 (char *args, int from_tty, int extended)
}
static void
remote_detach (char *args, int from_tty)
remote_detach (struct target_ops *ops, char *args, int from_tty)
{
remote_detach_1 (args, from_tty, 0);
}
static void
extended_remote_detach (char *args, int from_tty)
extended_remote_detach (struct target_ops *ops, char *args, int from_tty)
{
remote_detach_1 (args, from_tty, 1);
}
@@ -3435,9 +3435,9 @@ extended_remote_attach_1 (struct target_ops *target, char *args, int from_tty)
}
static void
extended_remote_attach (char *args, int from_tty)
extended_remote_attach (struct target_ops *ops, char *args, int from_tty)
{
extended_remote_attach_1 (&extended_remote_ops, args, from_tty);
extended_remote_attach_1 (ops, args, from_tty);
}
/* Convert hex digit A to a number. */
@@ -6452,9 +6452,9 @@ extended_remote_kill (void)
}
static void
remote_mourn (void)
remote_mourn (struct target_ops *ops)
{
remote_mourn_1 (&remote_ops);
remote_mourn_1 (ops);
}
/* Worker function for remote_mourn. */
@@ -6537,9 +6537,9 @@ extended_remote_mourn_1 (struct target_ops *target)
}
static void
extended_remote_mourn (void)
extended_remote_mourn (struct target_ops *ops)
{
extended_remote_mourn_1 (&extended_remote_ops);
extended_remote_mourn_1 (ops);
}
static int
@@ -6655,7 +6655,8 @@ extended_remote_create_inferior_1 (char *exec_file, char *args,
}
static void
extended_remote_create_inferior (char *exec_file, char *args,
extended_remote_create_inferior (struct target_ops *ops,
char *exec_file, char *args,
char **env, int from_tty)
{
extended_remote_create_inferior_1 (exec_file, args, env, from_tty);