/* Target-vector operations for controlling Mac applications, for GDB.
- Copyright (C) 1995 Free Software Foundation, Inc.
+ Copyright 1995, 1996, 1998, 1999, 2000, 2001
+ Free Software Foundation, Inc.
Written by Stan Shebs. Contributed by Cygnus Support.
This file is part of GDB.
#include "frame.h" /* required by inferior.h */
#include "inferior.h"
#include "target.h"
-#include "wait.h"
+#include "gdb_wait.h"
#include "gdbcore.h"
#include "command.h"
#include <signal.h>
#include "gdb_string.h"
#include "gdbthread.h"
#include "gdbcmd.h"
+#include "regcache.h"
#include <Processes.h>
extern struct target_ops child_ops;
-static void child_stop PARAMS ((void));
+static void child_stop (void);
static void
child_fetch_inferior_registers (int r)
}
}
-static int
-child_wait (int pid, struct target_waitstatus *ourstatus)
+static ptid_t
+child_wait (ptid_t ptid, struct target_waitstatus *ourstatus)
{
}
/* Attach to process PID, then initialize for debugging it. */
static void
-child_attach (args, from_tty)
- char *args;
- int from_tty;
+child_attach (char *args, int from_tty)
{
ProcessSerialNumber psn;
ProcessInfoRec inforec;
if (exec_file)
printf_unfiltered ("Attaching to program `%s', %s\n", exec_file,
- target_pid_to_str (pid));
+ target_pid_to_str (pid_to_ptid (pid)));
else
- printf_unfiltered ("Attaching to %s\n", target_pid_to_str (pid));
+ printf_unfiltered ("Attaching to %s\n",
+ target_pid_to_str (pid_to_ptid (pid)));
gdb_flush (gdb_stdout);
}
/* Do we need to do anything special? */
attach_flag = 1;
- inferior_pid = pid;
+ inferior_ptid = pid_to_ptid (pid);
push_target (&child_ops);
}
}
static void
-child_detach (args, from_tty)
- char *args;
- int from_tty;
+child_detach (char *args, int from_tty)
{
char *exec_file;
if (exec_file == 0)
exec_file = "";
printf_unfiltered ("Detaching from program: %s %s\n", exec_file,
- target_pid_to_str (inferior_pid));
+ target_pid_to_str (inferior_ptid));
gdb_flush (gdb_stdout);
}
- inferior_pid = 0;
+ inferior_ptid = null_ptid;
unpush_target (&child_ops);
}
/* Print status information about what we're accessing. */
static void
-child_files_info (ignore)
- struct target_ops *ignore;
+child_files_info (struct target_ops *ignore)
{
printf_unfiltered ("\tUsing the running image of %s %s.\n",
- attach_flag ? "attached" : "child", target_pid_to_str (inferior_pid));
+ attach_flag ? "attached" : "child", target_pid_to_str (inferior_ptid));
}
/* ARGSUSED */
static void
-child_open (arg, from_tty)
- char *arg;
- int from_tty;
+child_open (char *arg, int from_tty)
{
error ("Use the \"run\" command to start a Mac application.");
}
-/* Start an inferior Mac program and sets inferior_pid to its pid.
+/* Start an inferior Mac program and sets inferior_ptid to its pid.
EXEC_FILE is the file to run.
ALLARGS is a string containing the arguments to the program.
ENV is the environment vector to pass. Errors reported with error(). */
static void
-child_create_inferior (exec_file, allargs, env)
- char *exec_file;
- char *allargs;
- char **env;
+child_create_inferior (char *exec_file, char *allargs, char **env)
{
LaunchParamBlockRec launchparms;
FSSpec fsspec;
error ("Error launching %s, code %d\n", exec_file, launch_err);
}
- inferior_pid = launchparms.launchProcessSN.lowLongOfPSN;
+ inferior_ptid = pid_to_ptid (launchparms.launchProcessSN.lowLongOfPSN);
/* FIXME be sure that high long of PSN is 0 */
push_target (&child_ops);
init_wait_for_inferior ();
clear_proceed_status ();
-/* proceed ((CORE_ADDR) - 1, TARGET_SIGNAL_0, 0); */
+/* proceed ((CORE_ADDR) -1, TARGET_SIGNAL_0, 0); */
}
static void
-child_mourn_inferior ()
+child_mourn_inferior (void)
{
unpush_target (&child_ops);
generic_mourn_inferior ();
}
static void
-child_stop ()
+child_stop (void)
{
}
int
-child_xfer_memory (CORE_ADDR memaddr, char *myaddr, int len,
- int write, struct target_ops *target)
+child_xfer_memory (CORE_ADDR memaddr, char *myaddr, int len, int write,
+ struct mem_attrib *attrib,
+ struct target_ops *target)
{
int i;
}
void
-child_resume (int pid, int step, enum target_signal signal)
+child_resume (ptid_t ptid, int step, enum target_signal signal)
{
}
static void
-child_prepare_to_store ()
+child_prepare_to_store (void)
{
/* Do nothing, since we can store individual regs */
}
static int
-child_can_run ()
+child_can_run (void)
{
return 1;
}
static void
-child_close ()
+child_close (void)
{
}
static void
-info_proc (args, from_tty)
- char *args;
- int from_tty;
+info_proc (char *args, int from_tty)
{
ProcessSerialNumber psn;
ProcessInfoRec inforec;
child_ops.to_thread_alive = 0;
child_ops.to_stop = child_stop;
child_ops.to_pid_to_exec_file = NULL; /* to_pid_to_exec_file */
- child_ops.to_core_file_to_sym_file = NULL;
child_ops.to_stratum = process_stratum;
child_ops.DONT_USE = 0;
child_ops.to_has_all_memory = 1;
};
void
-_initialize_mac_nat ()
+_initialize_mac_nat (void)
{
init_child_ops ();