From ff82f21409746d1f9491b9c4ab13e74686ca6652 Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Tue, 20 May 1997 01:57:43 +0000 Subject: [PATCH] Part II of adding callback argument to sim_open(). Update all the other simulators; remove SIM_DESC from depreciated function sim_set_callbacks(). --- include/remote-sim.h | 19 +++++++----- sim/ppc/ChangeLog | 10 ++++++ sim/ppc/sim_calls.c | 71 +++++++++++++++---------------------------- sim/tic80/ChangeLog | 5 ++- sim/tic80/sim-calls.c | 8 ----- sim/tic80/sim-main.h | 3 ++ sim/w65/ChangeLog | 4 +++ sim/w65/interp.c | 3 +- 8 files changed, 59 insertions(+), 64 deletions(-) diff --git a/include/remote-sim.h b/include/remote-sim.h index 45abd4bb65..fb13a24977 100644 --- a/include/remote-sim.h +++ b/include/remote-sim.h @@ -162,19 +162,22 @@ int sim_stop PARAMS ((SIM_DESC sd)); void sim_do_command PARAMS ((SIM_DESC sd, char *cmd)); -/* Provide simulator with a standard host_callback_struct. - If SD is NULL, the command is to be interpreted as refering to - the global state, however the simulator defines that. +/* NOTE: sim_set_callbacks () is depreciated. - This function is depreciated. Callbacks are set as part of - sim_open. */ + Provide simulator with a default (global) host_callback_struct. */ -void sim_set_callbacks PARAMS ((SIM_DESC sd, struct host_callback_struct *)); +void sim_set_callbacks PARAMS ((struct host_callback_struct *)); -/* NOTE: sim_size() and sim_trace() are going away */ +/* NOTE: sim_size() is depreciated. -void sim_size PARAMS ((SIM_DESC sd, int i)); + sim_size() does not take a SIM_DESC argument as this function is + used before sim_open() has been called. */ + +void sim_size PARAMS ((int i)); + + +/* NOTE: sim_trace() is depreciated. */ int sim_trace PARAMS ((SIM_DESC sd)); diff --git a/sim/ppc/ChangeLog b/sim/ppc/ChangeLog index 49b0aa2161..67b5217ee9 100644 --- a/sim/ppc/ChangeLog +++ b/sim/ppc/ChangeLog @@ -1,3 +1,13 @@ +Tue May 20 10:22:50 1997 Andrew Cagney + + * sim_calls.c (sim_open): Add callback argument. + (sim_set_callbacks): Delete SIM_DESC argument. + +Tue Apr 22 22:36:57 1997 Mike Meissner + + * sim_callbacks.h (error): Make declaration match gdb's. + * main.c (error): Ditto. + Fri Apr 18 17:03:09 1997 Andrew Cagney * 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 b9962b8d9e..f7d8803600 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; + switch (status.reason) { + case was_continuing: + *reason = sim_stopped; + if (status.signal == 0) *sigrc = SIGTRAP; - if (sim_should_run) { - error("sim_stop_reason() unknown reason for halt\n"); - } - break; - case was_trap: - *reason = sim_stopped; - *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 bd62e58549..28e6de572f 100644 --- a/sim/tic80/ChangeLog +++ b/sim/tic80/ChangeLog @@ -1,8 +1,11 @@ Tue May 20 09:33:31 1997 Andrew Cagney + * sim-main.h: Include . + * 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 * configure.in: Check for getpid, kill functions. diff --git a/sim/tic80/sim-calls.c b/sim/tic80/sim-calls.c index e62ca13dbe..d7b0af609d 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 3b06723667..08818889f3 100644 --- a/sim/tic80/sim-main.h +++ b/sim/tic80/sim-main.h @@ -27,6 +27,9 @@ #include #include +#ifdef HAVE_UNISTD_H +#include +#endif /* These are generated files. */ #include "itable.h" diff --git a/sim/w65/ChangeLog b/sim/w65/ChangeLog index 1f3258539f..0be0da3b66 100644 --- a/sim/w65/ChangeLog +++ b/sim/w65/ChangeLog @@ -1,3 +1,7 @@ +Tue May 20 10:24:54 1997 Andrew Cagney + + * interp.c (sim_open): Add callback argument. + Tue Apr 15 14:55:10 1997 Ian Lance Taylor * Makefile.in (INSTALL): Set to @INSTALL@. diff --git a/sim/w65/interp.c b/sim/w65/interp.c index c01be45229..70e7b478c2 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; { }