aboutsummaryrefslogtreecommitdiff
path: root/sim
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>1997-05-20 01:57:43 +0000
committerAndrew Cagney <cagney@redhat.com>1997-05-20 01:57:43 +0000
commitff82f21409746d1f9491b9c4ab13e74686ca6652 (patch)
treee47ac3cfaad58a74606f879ef932418b2b04a91a /sim
parent24aa2b57afc51bb0d47d8a3cfa470ad40a36cc6b (diff)
downloadgdb-ff82f21409746d1f9491b9c4ab13e74686ca6652.zip
gdb-ff82f21409746d1f9491b9c4ab13e74686ca6652.tar.gz
gdb-ff82f21409746d1f9491b9c4ab13e74686ca6652.tar.bz2
Part II of adding callback argument to sim_open(). Update all the
other simulators; remove SIM_DESC from depreciated function sim_set_callbacks().
Diffstat (limited to 'sim')
-rw-r--r--sim/ppc/ChangeLog10
-rw-r--r--sim/ppc/sim_calls.c71
-rw-r--r--sim/tic80/ChangeLog5
-rw-r--r--sim/tic80/sim-calls.c8
-rw-r--r--sim/tic80/sim-main.h3
-rw-r--r--sim/w65/ChangeLog4
-rw-r--r--sim/w65/interp.c3
7 files changed, 48 insertions, 56 deletions
diff --git a/sim/ppc/ChangeLog b/sim/ppc/ChangeLog
index 49b0aa2..67b5217 100644
--- a/sim/ppc/ChangeLog
+++ b/sim/ppc/ChangeLog
@@ -1,3 +1,13 @@
+Tue May 20 10:22:50 1997 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * sim_calls.c (sim_open): Add callback argument.
+ (sim_set_callbacks): Delete SIM_DESC argument.
+
+Tue Apr 22 22:36:57 1997 Mike Meissner <meissner@cygnus.com>
+
+ * sim_callbacks.h (error): Make declaration match gdb's.
+ * main.c (error): Ditto.
+
Fri Apr 18 17:03:09 1997 Andrew Cagney <cagney@b1.cygnus.com>
* sim_calls.c (sim_stop_reason): Simplify. Was running implies
diff --git a/sim/ppc/sim_calls.c b/sim/ppc/sim_calls.c
index b9962b8..f7d8803 100644
--- a/sim/ppc/sim_calls.c
+++ b/sim/ppc/sim_calls.c
@@ -57,8 +57,10 @@ static const char *register_names[] = REGISTER_NAMES;
static unsigned_word entry_point;
SIM_DESC
-sim_open (SIM_OPEN_KIND kind, char **argv)
+sim_open (SIM_OPEN_KIND kind, host_callback *callback, char **argv)
{
+ callbacks = callback;
+
/* Note: The simulation is not created by sim_open() because
complete information is not yet available */
/* trace the call */
@@ -215,48 +217,31 @@ sim_create_inferior (SIM_DESC sd, char **argv, char **envp)
}
-static volatile int sim_should_run;
-
void
sim_stop_reason (SIM_DESC sd, enum sim_stop *reason, int *sigrc)
{
psim_status status = psim_get_status(simulator);
- switch (CURRENT_ENVIRONMENT) {
-
- case USER_ENVIRONMENT:
- case VIRTUAL_ENVIRONMENT:
- switch (status.reason) {
- case was_continuing:
- *reason = sim_stopped;
- *sigrc = SIGTRAP;
- if (sim_should_run) {
- error("sim_stop_reason() unknown reason for halt\n");
- }
- break;
- case was_trap:
- *reason = sim_stopped;
+ switch (status.reason) {
+ case was_continuing:
+ *reason = sim_stopped;
+ if (status.signal == 0)
*sigrc = SIGTRAP;
- break;
- case was_exited:
- *reason = sim_exited;
- *sigrc = 0;
- break;
- case was_signalled:
- *reason = sim_signalled;
+ else
*sigrc = status.signal;
- break;
- }
break;
-
- case OPERATING_ENVIRONMENT:
+ case was_trap:
*reason = sim_stopped;
*sigrc = SIGTRAP;
break;
-
- default:
- error("sim_stop_reason() - unknown environment\n");
-
+ case was_exited:
+ *reason = sim_exited;
+ *sigrc = status.signal;
+ break;
+ case was_signalled:
+ *reason = sim_signalled;
+ *sigrc = status.signal;
+ break;
}
TRACE(trace_gdb, ("sim_stop_reason(reason=0x%lx(%ld), sigrc=0x%lx(%ld))\n",
@@ -266,10 +251,12 @@ sim_stop_reason (SIM_DESC sd, enum sim_stop *reason, int *sigrc)
/* Run (or resume) the program. */
-static RETSIGTYPE
-sim_ctrl_c(int sig)
+
+int
+sim_stop (SIM_DESC sd)
{
- sim_should_run = 0;
+ psim_stop (simulator);
+ return 1;
}
void
@@ -280,19 +267,11 @@ sim_resume (SIM_DESC sd, int step, int siggnal)
if (step)
{
- psim_step(simulator);
- /* sim_stop_reason has a sanity check for stopping while
- was_continuing. We don't want that here so reset sim_should_run. */
- sim_should_run = 0;
+ psim_step (simulator);
}
else
{
- RETSIGTYPE (*prev) ();
-
- prev = signal(SIGINT, sim_ctrl_c);
- sim_should_run = 1;
- psim_run_until_stop(simulator, &sim_should_run);
- signal(SIGINT, prev);
+ psim_run (simulator);
}
}
@@ -406,7 +385,7 @@ sim_io_flush_stdoutput(void)
}
void
-sim_set_callbacks (SIM_DESC sd, host_callback *callback)
+sim_set_callbacks (host_callback *callback)
{
callbacks = callback;
TRACE(trace_gdb, ("sim_set_callbacks called\n"));
diff --git a/sim/tic80/ChangeLog b/sim/tic80/ChangeLog
index bd62e58..28e6de5 100644
--- a/sim/tic80/ChangeLog
+++ b/sim/tic80/ChangeLog
@@ -1,8 +1,11 @@
Tue May 20 09:33:31 1997 Andrew Cagney <cagney@b1.cygnus.com>
+ * sim-main.h: Include <unistd.h>.
+
* sim-calls.c (sim_set_callback): Delete.
(sim_open): Add/install callback argument.
-
+ (sim_size): Delete.
+
Mon May 19 18:59:33 1997 Mike Meissner <meissner@cygnus.com>
* configure.in: Check for getpid, kill functions.
diff --git a/sim/tic80/sim-calls.c b/sim/tic80/sim-calls.c
index e62ca13..d7b0af6 100644
--- a/sim/tic80/sim-calls.c
+++ b/sim/tic80/sim-calls.c
@@ -110,14 +110,6 @@ sim_open (SIM_OPEN_KIND kind, struct host_callback_struct *callback, char **argv
}
-/* NOTE: sim_size is going away */
-void
-sim_size (SIM_DESC sd, int i)
-{
- sim_io_error (sd, "unexpected call to sim_size()");
-}
-
-
void
sim_close (SIM_DESC sd, int quitting)
{
diff --git a/sim/tic80/sim-main.h b/sim/tic80/sim-main.h
index 3b06723..0881888 100644
--- a/sim/tic80/sim-main.h
+++ b/sim/tic80/sim-main.h
@@ -27,6 +27,9 @@
#include <signal.h>
#include <errno.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
/* These are generated files. */
#include "itable.h"
diff --git a/sim/w65/ChangeLog b/sim/w65/ChangeLog
index 1f32585..0be0da3 100644
--- a/sim/w65/ChangeLog
+++ b/sim/w65/ChangeLog
@@ -1,3 +1,7 @@
+Tue May 20 10:24:54 1997 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * interp.c (sim_open): Add callback argument.
+
Tue Apr 15 14:55:10 1997 Ian Lance Taylor <ian@cygnus.com>
* Makefile.in (INSTALL): Set to @INSTALL@.
diff --git a/sim/w65/interp.c b/sim/w65/interp.c
index c01be45..70e7b47 100644
--- a/sim/w65/interp.c
+++ b/sim/w65/interp.c
@@ -322,8 +322,9 @@ sim_kill ()
}
void
-sim_open (kind,argv)
+sim_open (kind,cb,argv)
SIM_OPEN_KIND kind;
+ host_callback *cb;
char **argv;
{
}