* target.h: Add enum target_waitkind, enum target_signal, and
[deliverable/binutils-gdb.git] / gdb / remote-eb.c
index 778df8649d0568f8a4340f82f9c71db57a4c9d9f..d26154972cc6b8f3f597407927729746acb908de 100644 (file)
@@ -19,18 +19,18 @@ along with this program; if not, write to the Free Software
 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 /* This is like remote.c but is for an esoteric situation--
-   having a 29k board in a PC hooked up to a unix machine with
+   having a a29k board in a PC hooked up to a unix machine with
    a serial line, and running ctty com1 on the PC, through which
    the unix machine can run ebmon.  Not to mention that the PC
    has PC/NFS, so it can access the same executables that gdb can,
    over the net in real time.  */
 
-#define         TM_FILE_OVERRIDE
 #include "defs.h"
 #include <string.h>
-#include "tm-29k.h"
 
 #include "inferior.h"
+#include "bfd.h"
+#include "symfile.h"
 #include "wait.h"
 #include "value.h"
 #include <ctype.h>
@@ -198,7 +198,7 @@ get_hex_regs (n, regno)
       val = 0;
       for (j = 0; j < 8; j++)
        val = (val << 4) + get_hex_digit (j == 0);
-      supply_register (regno++, &val);
+      supply_register (regno++, (char *) &val);
     }
 }
 
@@ -252,10 +252,6 @@ eb_create_inferior (execfile, args, env)
 
   entry_pt = (int) bfd_get_start_address (exec_bfd);
 
-#ifdef CREATE_INFERIOR_HOOK
-  CREATE_INFERIOR_HOOK (0);            /* No process-ID */
-#endif  
-
   {
     /* OK, now read in the file.  Y=read, C=COFF, D=no symbols
        0=start address, %s=filename.  */
@@ -479,8 +475,9 @@ eb_detach (from_tty)
 /* Tell the remote machine to resume.  */
 
 void
-eb_resume (step, sig)
-     int step, sig;
+eb_resume (pid, step, sig)
+     int pid, step;
+     enum target_signal sig;
 {
   if (step)
     {
@@ -521,7 +518,7 @@ eb_resume (step, sig)
 
 int
 eb_wait (status)
-     WAITTYPE *status;
+     struct target_waitstatus *status;
 {
   /* Strings to look for.  '?' means match any single character.  
      Note that with the algorithm we use, the initial character
@@ -546,11 +543,13 @@ eb_wait (status)
 
   int old_timeout = timeout;
 
-  WSETEXIT ((*status), 0);
+  status->kind = TARGET_WAITKIND_EXITED;
+  status->value.integer = 0;
 
   if (need_artificial_trap != 0)
     {
-      WSETSTOP ((*status), SIGTRAP);
+      status->kind = TARGET_WAITKIND_STOPPED;
+      status->value.sig = TARGET_SIGNAL_TRAP;
       need_artificial_trap--;
       return 0;
     }
@@ -599,9 +598,15 @@ eb_wait (status)
     }
   expect_prompt ();
   if (*bp== '\0')
-    WSETSTOP ((*status), SIGTRAP);
+    {
+      status->kind = TARGET_WAITKIND_STOPPED;
+      status->value.sig = TARGET_SIGNAL_TRAP;
+    }
   else
-    WSETEXIT ((*status), 0);
+    {
+      status->kind = TARGET_WAITKIND_EXITED;
+      status->value.integer = 0;
+    }
   timeout = old_timeout;
 
   return 0;
@@ -717,10 +722,10 @@ eb_fetch_registers ()
   /* There doesn't seem to be any way to get these.  */
   {
     int val = -1;
-    supply_register (FPE_REGNUM, &val);
-    supply_register (INT_REGNUM, &val);
-    supply_register (FPS_REGNUM, &val);
-    supply_register (EXO_REGNUM, &val);
+    supply_register (FPE_REGNUM, (char *) &val);
+    supply_register (INTE_REGNUM, (char *) &val);
+    supply_register (FPS_REGNUM, (char *) &val);
+    supply_register (EXO_REGNUM, (char *) &val);
   }
 
   write (eb_desc, "dw gr1,gr1\n", 11);
@@ -790,7 +795,7 @@ eb_store_registers ()
 
 /* Store register REGNO, or all if REGNO == 0.
    Return errno value.  */
-int
+void
 eb_store_register (regno)
      int regno;
 {
@@ -810,7 +815,6 @@ eb_store_register (regno)
        registers_changed ();
       expect_prompt ();
     }
-  return 0;
 }
 
 /* Get ready to modify the registers array.  On machines which store
@@ -965,6 +969,7 @@ void
 eb_mourn_inferior ()
 {
   remove_breakpoints ();
+  unpush_target (&eb_ops);
   generic_mourn_inferior ();   /* Do all the proper things now */
 }
 /* Define the target subroutine names */
@@ -979,15 +984,17 @@ executable as it exists on the remote computer.  For example,\n\
        eb_open, eb_close, 
        0, eb_detach, eb_resume, eb_wait,
        eb_fetch_register, eb_store_register,
-       eb_prepare_to_store, 0, 0,      /* conv_to, conv_from */
+       eb_prepare_to_store,
        eb_xfer_inferior_memory, eb_files_info,
        0, 0,   /* Breakpoints */
        0, 0, 0, 0, 0,  /* Terminal handling */
        eb_kill,
-       0,      /* load */
+       generic_load,   /* load */
        0, /* lookup_symbol */
        eb_create_inferior,
        eb_mourn_inferior,
+       0,      /* can_run */
+       0, /* notice_signals */
        process_stratum, 0, /* next */
        1, 1, 1, 1, 1,  /* all mem, mem, stack, regs, exec */
        0, 0,                   /* Section pointers */
This page took 0.024684 seconds and 4 git commands to generate.