* 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 94cc9a26a0dc50cb03a0d65cc64ed1009e7e25ea..442f2ce36faa7903004c1a635c8cd3c83ddce5c9 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 dbecaa00f36cff2642cbb2f5dde57d1aaaca28f5..0c9308203d848062b56ad2c85439becedf6b938a 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 bdad3fd5ba32d8f19517812a36966d029c367ee6..293be34905f83269c2f2ab14fc9af9f276d0da62 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.  */