* arm-tdep.c (arm_gdbarch_init): Use gdbarch_num_pseudo_regs
[deliverable/binutils-gdb.git] / gdb / remote-nindy.c
index fb8b5e29fa1f0ae2a8c8b0bc2e86552a4bd81993..679dfad919e8b07e7ce16247a4afbb7f9f9aba8b 100644 (file)
@@ -1,5 +1,8 @@
 /* Memory-access and commands for remote NINDY process, for GDB.
-   Copyright 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
+
+   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999,
+   2000, 2001, 2002 Free Software Foundation, Inc.
+
    Contributed by Intel Corporation.  Modified from remote.c by Chris Benenati.
 
    GDB is distributed in the hope that it will be useful, but WITHOUT ANY
@@ -16,8 +19,7 @@
    notice and this notice must be preserved on all copies.
 
    In other words, go ahead and share GDB, but don't try to stop
-   anyone else from sharing it farther.  Help stamp out software hoarding!
- */
+   anyone else from sharing it farther.  Help stamp out software hoarding!  */
 
 /*
    Except for the data cache routines, this file bears little resemblence
 #include "gdbcore.h"
 #include "command.h"
 #include "floatformat.h"
+#include "regcache.h"
 
-#include "gdb_wait.h"
 #include <sys/file.h>
 #include <ctype.h>
 #include "serial.h"
 #include "nindy-share/env.h"
 #include "nindy-share/stop.h"
-
-#include "dcache.h"
 #include "remote-utils.h"
 
-static DCACHE *nindy_dcache;
-
 extern int unlink ();
 extern char *getenv ();
 extern char *mktemp ();
@@ -144,7 +142,7 @@ char *nindy_ttyname;                /* name of tty to talk to nindy on, or null */
 #define FALSE  0
 
 /* From nindy-share/nindy.c.  */
-extern serial_t nindy_serial;
+extern struct serial *nindy_serial;
 
 static int have_regs = 0;      /* 1 iff regs read since i960 last halted */
 static int regs_changed = 0;   /* 1 iff regs were modified since last read */
@@ -158,15 +156,14 @@ static void nindy_store_registers (int);
 static char *savename;
 
 static void
-nindy_close (quitting)
-     int quitting;
+nindy_close (int quitting)
 {
   if (nindy_serial != NULL)
-    SERIAL_CLOSE (nindy_serial);
+    serial_close (nindy_serial);
   nindy_serial = NULL;
 
   if (savename)
-    free (savename);
+    xfree (savename);
   savename = 0;
 }
 
@@ -175,9 +172,8 @@ nindy_close (quitting)
    now specified with gdb command-line options (old_protocol,
    and initial_brk).  */
 void
-nindy_open (name, from_tty)
-     char *name;               /* "/dev/ttyXX", "ttyXX", or "XX": tty to be opened */
-     int from_tty;
+nindy_open (char *name,                /* "/dev/ttyXX", "ttyXX", or "XX": tty to be opened */
+           int from_tty)
 {
   char baudrate[1024];
 
@@ -189,7 +185,6 @@ nindy_open (name, from_tty)
   nindy_close (0);
 
   have_regs = regs_changed = 0;
-  nindy_dcache = dcache_init (ninMemGet, ninMemPut);
 
   /* Allow user to interrupt the following -- we could hang if there's
      no NINDY at the other end of the remote tty.  */
@@ -221,9 +216,7 @@ nindy_open (name, from_tty)
 /* User-initiated quit of nindy operations.  */
 
 static void
-nindy_detach (name, from_tty)
-     char *name;
-     int from_tty;
+nindy_detach (char *name, int from_tty)
 {
   if (name)
     error ("Too many arguments");
@@ -231,7 +224,7 @@ nindy_detach (name, from_tty)
 }
 
 static void
-nindy_files_info ()
+nindy_files_info (void)
 {
   /* FIXME: this lies about the baud rate if we autobauded.  */
   printf_unfiltered ("\tAttached to %s at %d bits per second%s%s.\n", savename,
@@ -240,14 +233,13 @@ nindy_files_info ()
                     nindy_initial_brk ? " with initial break" : "");
 }
 \f
-/* Return the number of characters in the buffer before
-   the first DLE character.  */
+/* Return the number of characters in the buffer BUF before
+   the first DLE character.  N is maximum number of characters to
+   consider.  */
 
 static
 int
-non_dle (buf, n)
-     char *buf;                        /* Character buffer; NOT '\0'-terminated */
-     int n;                    /* Number of characters in buffer */
+non_dle (char *buf, int n)
 {
   int i;
 
@@ -264,14 +256,11 @@ non_dle (buf, n)
 /* Tell the remote machine to resume.  */
 
 void
-nindy_resume (pid, step, siggnal)
-     int pid, step;
-     enum target_signal siggnal;
+nindy_resume (ptid_t ptid, int step, enum target_signal siggnal)
 {
   if (siggnal != TARGET_SIGNAL_0 && siggnal != stop_signal)
     warning ("Can't send signals to remote NINDY targets.");
 
-  dcache_flush (nindy_dcache);
   if (regs_changed)
     {
       nindy_store_registers (-1);
@@ -289,17 +278,16 @@ nindy_resume (pid, step, siggnal)
 struct clean_up_tty_args
 {
   serial_ttystate state;
-  serial_t serial;
+  struct serial *serial;
 };
 static struct clean_up_tty_args tty_args;
 
 static void
-clean_up_tty (ptrarg)
-     PTR ptrarg;
+clean_up_tty (PTR ptrarg)
 {
   struct clean_up_tty_args *args = (struct clean_up_tty_args *) ptrarg;
-  SERIAL_SET_TTY_STATE (args->serial, args->state);
-  free (args->state);
+  serial_set_tty_state (args->serial, args->state);
+  xfree (args->state);
   warning ("\n\nYou may need to reset the 80960 and/or reload your program.\n");
 }
 
@@ -310,10 +298,10 @@ static void (*old_ctrlz) ();
 #endif
 
 static void
-clean_up_int ()
+clean_up_int (void)
 {
-  SERIAL_SET_TTY_STATE (tty_args.serial, tty_args.state);
-  free (tty_args.state);
+  serial_set_tty_state (tty_args.serial, tty_args.state);
+  xfree (tty_args.state);
 
   signal (SIGINT, old_ctrlc);
 #ifdef SIGTSTP
@@ -329,10 +317,8 @@ clean_up_int ()
  * Return to caller, storing status in 'status' just as `wait' would.
  */
 
-static int
-nindy_wait (pid, status)
-     int pid;
-     struct target_waitstatus *status;
+static ptid_t
+nindy_wait (ptid_t ptid, struct target_waitstatus *status)
 {
   fd_set fds;
   int c;
@@ -349,8 +335,8 @@ nindy_wait (pid, status)
   /* OPERATE IN PASSTHROUGH MODE UNTIL NINDY SENDS A DLE CHARACTER */
 
   /* Save current tty attributes, and restore them when done.  */
-  tty_args.serial = SERIAL_FDOPEN (0);
-  tty_args.state = SERIAL_GET_TTY_STATE (tty_args.serial);
+  tty_args.serial = serial_fdopen (0);
+  tty_args.state = serial_get_tty_state (tty_args.serial);
   old_ctrlc = signal (SIGINT, clean_up_int);
 #ifdef SIGTSTP
   old_ctrlz = signal (SIGTSTP, clean_up_int);
@@ -362,19 +348,19 @@ nindy_wait (pid, status)
      <CR> and perform echo.  */
   /* This used to set CBREAK and clear ECHO and CRMOD.  I hope this is close
      enough.  */
-  SERIAL_RAW (tty_args.serial);
+  serial_raw (tty_args.serial);
 
   while (1)
     {
       /* Input on remote */
-      c = SERIAL_READCHAR (nindy_serial, -1);
+      c = serial_readchar (nindy_serial, -1);
       if (c == SERIAL_ERROR)
        {
          error ("Cannot read from serial line");
        }
       else if (c == 0x1b)      /* ESC */
        {
-         c = SERIAL_READCHAR (nindy_serial, -1);
+         c = serial_readchar (nindy_serial, -1);
          c &= ~0x40;
        }
       else if (c != 0x10)      /* DLE */
@@ -407,8 +393,8 @@ nindy_wait (pid, status)
        }
     }
 
-  SERIAL_SET_TTY_STATE (tty_args.serial, tty_args.state);
-  free (tty_args.state);
+  serial_set_tty_state (tty_args.serial, tty_args.state);
+  xfree (tty_args.state);
   discard_cleanups (old_cleanups);
 
   if (stop_exit)
@@ -424,7 +410,7 @@ nindy_wait (pid, status)
       status->kind = TARGET_WAITKIND_STOPPED;
       status->value.sig = i960_fault_to_signal (stop_code);
     }
-  return inferior_pid;
+  return inferior_ptid;
 }
 
 /* Read the remote registers into the block REGS.  */
@@ -441,8 +427,7 @@ struct nindy_regs
 };
 
 static void
-nindy_fetch_registers (regno)
-     int regno;
+nindy_fetch_registers (int regno)
 {
   struct nindy_regs nindy_regs;
   int regnum;
@@ -462,15 +447,14 @@ nindy_fetch_registers (regno)
 }
 
 static void
-nindy_prepare_to_store ()
+nindy_prepare_to_store (void)
 {
   /* Fetch all regs if they aren't already here.  */
   read_register_bytes (0, NULL, REGISTER_BYTES);
 }
 
 static void
-nindy_store_registers (regno)
-     int regno;
+nindy_store_registers (int regno)
 {
   struct nindy_regs nindy_regs;
   int regnum;
@@ -489,27 +473,29 @@ nindy_store_registers (regno)
 
 /* Copy LEN bytes to or from inferior's memory starting at MEMADDR
    to debugger memory starting at MYADDR.   Copy to inferior if
-   SHOULD_WRITE is nonzero.  Returns the length copied. */
+   SHOULD_WRITE is nonzero.  Returns the length copied.  TARGET is
+   unused.  */
 
 int
-nindy_xfer_inferior_memory (memaddr, myaddr, len, should_write, target)
-     CORE_ADDR memaddr;
-     char *myaddr;
-     int len;
-     int should_write;
-     struct target_ops *target;        /* ignored */
+nindy_xfer_inferior_memory (CORE_ADDR memaddr, char *myaddr, int len,
+                           int should_write, struct mem_attrib *attrib,
+                           struct target_ops *target)
 {
+  int res;
+
   if (len <= 0)
     return 0;
-  return dcache_xfer_memory (nindy_dcache, memaddr, myaddr, 
-                            len, should_write);
+
+  if (should_write)
+    res = ninMemPut (memaddr, myaddr, len);
+  else
+    res = ninMemGet (memaddr, myaddr, len);
+
+  return res;
 }
 \f
 static void
-nindy_create_inferior (execfile, args, env)
-     char *execfile;
-     char *args;
-     char **env;
+nindy_create_inferior (char *execfile, char *args, char **env)
 {
   int entry_pt;
   int pid;
@@ -527,7 +513,7 @@ nindy_create_inferior (execfile, args, env)
   /* The "process" (board) is already stopped awaiting our commands, and
      the program is already downloaded.  We just set its PC and go.  */
 
-  inferior_pid = pid;          /* Needed for wait_for_inferior below */
+  inferior_ptid = pid_to_ptid (pid);   /* Needed for wait_for_inferior below */
 
   clear_proceed_status ();
 
@@ -547,9 +533,7 @@ nindy_create_inferior (execfile, args, env)
 }
 
 static void
-reset_command (args, from_tty)
-     char *args;
-     int from_tty;
+reset_command (char *args, int from_tty)
 {
   if (nindy_serial == NULL)
     {
@@ -557,15 +541,13 @@ reset_command (args, from_tty)
     }
   if (query ("Really reset the target system?", 0, 0))
     {
-      SERIAL_SEND_BREAK (nindy_serial);
+      serial_send_break (nindy_serial);
       tty_flush (nindy_serial);
     }
 }
 
 void
-nindy_kill (args, from_tty)
-     char *args;
-     int from_tty;
+nindy_kill (char *args, int from_tty)
 {
   return;                      /* Ignore attempts to kill target system */
 }
@@ -577,7 +559,7 @@ nindy_kill (args, from_tty)
    instructions.  */
 
 void
-nindy_mourn_inferior ()
+nindy_mourn_inferior (void)
 {
   remove_breakpoints ();
   unpush_target (&nindy_ops);
@@ -586,17 +568,14 @@ nindy_mourn_inferior ()
 \f
 /* Pass the args the way catch_errors wants them.  */
 static int
-nindy_open_stub (arg)
-     char *arg;
+nindy_open_stub (char *arg)
 {
   nindy_open (arg, 1);
   return 1;
 }
 
 static void
-nindy_load (filename, from_tty)
-     char *filename;
-     int from_tty;
+nindy_load (char *filename, int from_tty)
 {
   asection *s;
   /* Can't do unix style forking on a VMS system, so we'll use bfd to do
@@ -627,15 +606,14 @@ nindy_load (filename, from_tty)
                  s->_raw_size,
                  s->vma);
          ninMemPut (s->vma, buffer, s->_raw_size);
-         free (buffer);
+         xfree (buffer);
        }
     }
   bfd_close (file);
 }
 
 static int
-load_stub (arg)
-     char *arg;
+load_stub (char *arg)
 {
   target_load (arg, 1);
   return 1;
@@ -650,7 +628,7 @@ load_stub (arg)
    an i960 object file on the host system.  */
 
 void
-nindy_before_main_loop ()
+nindy_before_main_loop (void)
 {
   char ttyname[100];
   char *p, *p2;
@@ -760,7 +738,6 @@ specified when you started GDB.";
   nindy_ops.to_thread_alive = 0;       /* to_thread_alive */
   nindy_ops.to_stop = 0;       /* to_stop */
   nindy_ops.to_pid_to_exec_file = NULL;
-  nindy_ops.to_core_file_to_sym_file = NULL;
   nindy_ops.to_stratum = process_stratum;
   nindy_ops.DONT_USE = 0;      /* next */
   nindy_ops.to_has_all_memory = 1;
@@ -774,7 +751,7 @@ specified when you started GDB.";
 }
 
 void
-_initialize_nindy ()
+_initialize_nindy (void)
 {
   init_nindy_ops ();
   add_target (&nindy_ops);
This page took 0.036846 seconds and 4 git commands to generate.