static void darwin_stop (ptid_t);
-static void darwin_resume (ptid_t ptid, int step,
- enum target_signal signal);
-
-static ptid_t darwin_wait (ptid_t ptid, struct target_waitstatus *status);
-
static void darwin_mourn_inferior (struct target_ops *ops);
static int darwin_lookup_task (char *args, task_t * ptask, int *ppid);
-static void darwin_kill_inferior (void);
+static void darwin_kill_inferior (struct target_ops *ops);
static void darwin_ptrace_me (void);
static void darwin_files_info (struct target_ops *ops);
-static char *darwin_pid_to_str (ptid_t tpid);
-
-static int darwin_thread_alive (ptid_t tpid);
-
/* Current inferior. */
darwin_inferior *darwin_inf = NULL;
}
static void
-darwin_resume (ptid_t ptid, int step, enum target_signal signal)
+darwin_resume (struct target_ops *ops,
+ ptid_t ptid, int step, enum target_signal signal)
{
struct target_waitstatus status;
int pid;
}
static ptid_t
-darwin_wait (ptid_t ptid, struct target_waitstatus *status)
+darwin_wait (struct target_ops *ops,
+ ptid_t ptid, struct target_waitstatus *status)
{
kern_return_t kret;
mach_msg_header_t *hdr = &msgin.hdr;
}
static void
-darwin_stop_inferior (darwin_inferior *inf)
+darwin_stop_inferior (struct target_ops *ops, darwin_inferior *inf)
{
struct target_waitstatus wstatus;
ptid_t ptid;
MACH_CHECK_ERROR (kret);
if (msg_state == GOT_MESSAGE)
- darwin_resume (inferior_ptid, 0, 0);
+ darwin_resume (darwin_ops, inferior_ptid, 0, 0);
res = kill (inf->pid, SIGSTOP);
if (res != 0)
warning (_("cannot kill: %s\n"), strerror (errno));
- ptid = darwin_wait (inferior_ptid, &wstatus);
+ ptid = darwin_wait (ops, inferior_ptid, &wstatus);
gdb_assert (wstatus.kind = TARGET_WAITKIND_STOPPED);
}
static void
-darwin_kill_inferior (void)
+darwin_kill_inferior (struct target_ops *ops)
{
struct target_waitstatus wstatus;
ptid_t ptid;
if (ptid_equal (inferior_ptid, null_ptid))
return;
- darwin_stop_inferior (darwin_inf);
+ darwin_stop_inferior (ops, darwin_inf);
res = PTRACE (PT_KILL, darwin_inf->pid, 0, 0);
gdb_assert (res == 0);
if (msg_state == GOT_MESSAGE)
{
exc_msg.ex_type = 0;
- darwin_resume (inferior_ptid, 0, 0);
+ darwin_resume (ops, inferior_ptid, 0, 0);
}
kret = task_resume (darwin_inf->task);
MACH_CHECK_ERROR (kret);
- ptid = darwin_wait (inferior_ptid, &wstatus);
+ ptid = darwin_wait (ops, inferior_ptid, &wstatus);
/* This double wait seems required... */
res = waitpid (darwin_inf->pid, &status, 0);
gdb_flush (gdb_stdout);
}
- darwin_stop_inferior (darwin_inf);
+ darwin_stop_inferior (ops, darwin_inf);
kret = darwin_restore_exception_ports (darwin_inf);
MACH_CHECK_ERROR (kret);
if (msg_state == GOT_MESSAGE)
{
exc_msg.ex_type = 0;
- darwin_resume (inferior_ptid, 0, 0);
+ darwin_resume (ops, inferior_ptid, 0, 0);
}
kret = task_resume (darwin_inf->task);
}
static char *
-darwin_pid_to_str (ptid_t ptid)
+darwin_pid_to_str (struct target_ops *ops, ptid_t ptid)
{
static char buf[128];
}
static int
-darwin_thread_alive (ptid_t ptid)
+darwin_thread_alive (struct target_ops *ops, ptid_t ptid)
{
return 1;
}