* Makefile.in (gencode): Provide explicit path to gencode.c.
[deliverable/binutils-gdb.git] / gdb / remote-e7000.c
index fbe36025e54b83772e222f22c3803043d16fb8bd..320584b94e3cc8a83d97ec3451ed38b4945fdb40 100644 (file)
@@ -1,5 +1,6 @@
 /* Remote debugging interface for Hitachi E7000 ICE, for GDB
-   Copyright 1993, 1994, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
+   Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+   Free Software Foundation, Inc.
    Contributed by Cygnus Support. 
 
    Written by Steve Chamberlain for Cygnus Support.
 #include "gdbarch.h"
 #include "inferior.h"
 #include "target.h"
-#include "gdb_wait.h"
 #include "value.h"
 #include "command.h"
-#include <signal.h>
 #include "gdb_string.h"
 #include "gdbcmd.h"
 #include <sys/types.h>
 #include "serial.h"
 #include "remote-utils.h"
 #include "symfile.h"
+#include "regcache.h"
 #include <time.h>
 #include <ctype.h>
 
@@ -86,8 +86,6 @@
 #define SR_REGNUM      -1
 #endif
 
-extern void notice_quit (void);
-
 extern void report_transfer_performance (unsigned long, time_t, time_t);
 
 extern char *sh_processor_type;
@@ -260,21 +258,6 @@ expect (char *string)
   while (1)
     {
       c = readchar (timeout);
-#if 0
-      notice_quit ();
-      if (quit_flag == 1)
-       {
-         if (ctrl_c)
-           {
-             putchar_e7000 (CTRLC);
-             --ctrl_c;
-           }
-         else
-           {
-             quit ();
-           }
-       }
-#endif
 
       if (echo)
        {
@@ -543,7 +526,7 @@ or \t\ttarget e7000 tcp_remote <host>[:<port>]\n\
 or \t\ttarget e7000 pc\n");
        }
 
-#if !defined(__GO32__) && !defined(_WIN32)
+#if !defined(__GO32__) && !defined(_WIN32) && !defined(__CYGWIN__)
       /* FIXME!  test for ':' is ambiguous */
       if (n == 1 && strchr (dev_name, ':') == 0)
        {
@@ -667,7 +650,11 @@ e7000_open (char *args, int from_tty)
   if (!e7000_desc)
     perror_with_name (dev_name);
 
-  SERIAL_SETBAUDRATE (e7000_desc, baudrate);
+  if (SERIAL_SETBAUDRATE (e7000_desc, baudrate))
+    {
+      SERIAL_CLOSE (dev_name);
+      perror_with_name (dev_name);
+    }
   SERIAL_RAW (e7000_desc);
 
 #ifdef GDB_TARGET_IS_H8300
@@ -710,7 +697,7 @@ e7000_detach (char *arg, int from_tty)
 /* Tell the remote machine to resume.  */
 
 static void
-e7000_resume (int pid, int step, enum target_signal sigal)
+e7000_resume (ptid_t ptid, int step, enum target_signal sigal)
 {
   if (step)
     puts_e7000debug ("S\r");
@@ -889,7 +876,7 @@ fetch_regs_from_dump (int (*nextchar) (), char *want)
                }
 
              else
-               abort ();
+               internal_error (__FILE__, __LINE__, "failed internal consistency check");
            }
          store_signed_integer (buf,
                                REGISTER_RAW_SIZE (regno),
@@ -1474,7 +1461,9 @@ fast_but_for_the_pause_e7000_read_inferior_memory (CORE_ADDR memaddr,
 
 static int
 e7000_xfer_inferior_memory (CORE_ADDR memaddr, char *myaddr,
-                           int len, int write, struct target_ops *target)
+                           int len, int write, 
+                           struct mem_attrib *attrib ATTRIBUTE_UNUSED,
+                           struct target_ops *target ATTRIBUTE_UNUSED)
 {
   if (write)
     return e7000_write_inferior_memory (memaddr, myaddr, len);
@@ -1643,7 +1632,7 @@ e7000_load (char *args, int from_tty)
   if (exec_bfd)
     write_pc (bfd_get_start_address (exec_bfd));
 
-  inferior_pid = 0;            /* No process now */
+  inferior_ptid = null_ptid;   /* No process now */
 
 /* This is necessary because many things were based on the PC at the time that
    we attached to the monitor, which is no longer valid now that we have loaded
@@ -1997,8 +1986,8 @@ static char *estrings[] =
 /* Wait until the remote machine stops, then return, storing status in
    STATUS just as `wait' would.  */
 
-static int
-e7000_wait (int pid, struct target_waitstatus *status)
+static ptid_t
+e7000_wait (ptid_t ptid, struct target_waitstatus *status)
 {
   int stop_reason;
   int regno;
@@ -2117,10 +2106,10 @@ e7000_wait (int pid, struct target_waitstatus *status)
       break;
     default:
       /* Get the user's attention - this should never happen. */
-      abort ();
+      internal_error (__FILE__, __LINE__, "failed internal consistency check");
     }
 
-  return 0;
+  return inferior_ptid;
 }
 
 /* Stop the running program.  */
@@ -2197,7 +2186,6 @@ target e7000 foobar";
   e7000_ops.to_thread_alive = 0;
   e7000_ops.to_stop = e7000_stop;
   e7000_ops.to_pid_to_exec_file = NULL;
-  e7000_ops.to_core_file_to_sym_file = NULL;
   e7000_ops.to_stratum = process_stratum;
   e7000_ops.DONT_USE = 0;
   e7000_ops.to_has_all_memory = 1;
This page took 0.027121 seconds and 4 git commands to generate.