* remote-sim.h (sim_stop): New enum.
authorDavid Edelsohn <dje.gcc@gmail.com>
Sat, 23 Oct 1993 21:56:47 +0000 (21:56 +0000)
committerDavid Edelsohn <dje.gcc@gmail.com>
Sat, 23 Oct 1993 21:56:47 +0000 (21:56 +0000)
(sim_stop_signal): Change prototype, result is enum sim_stop.
* remote-sim.c (gdbsim_wait): Update call to sim_stop_signal.

gdb/ChangeLog
gdb/remote-sim.c
gdb/remote-sim.h

index 94cc9a2..442f2ce 100644 (file)
@@ -1,3 +1,9 @@
+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
index dbecaa0..0c93082 100644 (file)
@@ -349,9 +349,14 @@ gdbsim_wait (pid, status)
      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;
index bdad3fd..293be34 100644 (file)
@@ -63,11 +63,13 @@ int sim_store_register PARAMS ((int regno, char *buf));
 
 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));
 
@@ -79,9 +81,12 @@ int sim_info PARAMS ((void));
 
 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.  */