#include "gdbcore.h"
#include "remote-sim.h"
#include "remote-utils.h"
+#include "callback.h"
/* Naming convention:
sim_* are the interface to the simulator (see remote-sim.h).
-
+ sim_callback_* are the stuff which the simulator can see inside GDB.
gdbsim_* are stuff which is internal to gdb. */
/* Forward data declarations */
}
-int
-gdbsim_write_stdout (arg, len)
-char *arg;
-int len;
-{
- int i;
- char b[2];
- for (i = 0; i< len; i++) {
- b[0] = arg[i];
- b[1] = 0;
- if (target_output_hook)
- target_output_hook (b);
- else
- fputs_filtered (b, gdb_stdout);
- }
- return len;
-}
-
static void
gdbsim_store_register (regno)
int regno;
program_loaded = 1;
if (sim_load (prog, fromtty) != 0)
- gr_load_image (prog, fromtty);
+ generic_load (prog, fromtty);
}
if (sr_get_debug ())
printf_filtered ("gdbsim_open: args \"%s\"\n", args ? args : "(null)");
+ sim_set_callbacks (&default_callback);
+ default_callback.init (&default_callback);
+
sim_open (args);
push_target (&gdbsim_ops);
target_fetch_registers (-1);
-
printf_filtered ("Connected to the simulator.\n");
}
int pid, step;
enum target_signal siggnal;
{
+ if (inferior_pid != 42)
+ error ("The program is not being run.");
+
if (sr_get_debug ())
printf_filtered ("gdbsim_resume: step %d, signal %d\n", step, siggnal);