+Sat Oct 23 14:48:18 1993 Doug Evans (dje@canuck.cygnus.com)
+
+ * remote-sim.h (sim_stop): New enum.
+ (sim_stop_signal): Change prototype, result is enum sim_stop.
+ * remote-sim.c (gdbsim_wait): Update call to sim_stop_signal.
+
Fri Oct 22 07:49:54 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
* stabsread.c (define_symbol): Skip the whole thing about "pcc
int pid;
WAITTYPE *status;
{
+ int sigrc;
+
if (sr_get_debug ())
printf_filtered ("gdbsim_wait: ");
- WSETSTOP (*status, sim_stop_signal ());
+ if (sim_stop_signal (&sigrc) == sim_exited)
+ WSETEXIT (*status, sigrc);
+ else
+ WSETSTOP (*status, sigrc);
if (sr_get_debug ())
printf_filtered ("status %d\n", *status);
return inferior_pid;
int sim_kill PARAMS ((void));
-/* Read LENGTH bytes of the simulated program's memory and store in BUF. */
+/* Read LENGTH bytes of the simulated program's memory and store in BUF.
+ Result is number of bytes read, or zero if error. */
int sim_read PARAMS ((CORE_ADDR mem, char *buf, int length));
-/* Store LENGTH bytes from BUF in the simulated program's memory. */
+/* Store LENGTH bytes from BUF in the simulated program's memory.
+ Result is number of bytes write, or zero if error. */
int sim_write PARAMS ((CORE_ADDR mem, char *buf, int length));
int sim_set_pc PARAMS ((CORE_ADDR pc));
-/* Fetch why the program stopped. */
+/* Fetch why the program stopped.
+ SIGRC will contain either the argument to exit() or the signal number. */
-int sim_stop_signal PARAMS ((void));
+enum sim_stop { sim_exited, sim_stopped, sim_signalled };
+
+enum sim_stop sim_stop_signal PARAMS ((int *sigrc));
/* Run (or resume) the program. */