* Makefile.am: Use a temporary file to build chew.
[deliverable/binutils-gdb.git] / gdb / remote-st.c
index 868c08ed48421b212cd760c39189bb8115d3993d..e90cbc37a0ceb0b87cd0730f4534ef9e6a070c8a 100644 (file)
@@ -1,6 +1,8 @@
 /* Remote debugging interface for Tandem ST2000 phone switch, for GDB.
 /* Remote debugging interface for Tandem ST2000 phone switch, for GDB.
-   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001
-   Free Software Foundation, Inc.
+
+   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000,
+   2001, 2002 Free Software Foundation, Inc.
+
    Contributed by Cygnus Support.  Written by Jim Kingdon for Cygnus.
 
    This file is part of GDB.
    Contributed by Cygnus Support.  Written by Jim Kingdon for Cygnus.
 
    This file is part of GDB.
@@ -34,7 +36,7 @@
    In reality, this module talks to a debug monitor called 'STDEBUG', which
    runs in a phone switch.  We communicate with STDEBUG via either a direct
    serial line, or a TCP (or possibly TELNET) stream to a terminal multiplexor,
    In reality, this module talks to a debug monitor called 'STDEBUG', which
    runs in a phone switch.  We communicate with STDEBUG via either a direct
    serial line, or a TCP (or possibly TELNET) stream to a terminal multiplexor,
-   which in turn talks to the phone switch. */
+   which in turn talks to the phone switch.  */
 
 #include "defs.h"
 #include "gdbcore.h"
 
 #include "defs.h"
 #include "gdbcore.h"
@@ -61,7 +63,7 @@ static int timeout = 24;
    st2000_open knows that we don't have a file open when the program
    starts.  */
 
    st2000_open knows that we don't have a file open when the program
    starts.  */
 
-static serial_t st2000_desc;
+static struct serial *st2000_desc;
 
 /* Send data to stdebug.  Works just like printf. */
 
 
 /* Send data to stdebug.  Works just like printf. */
 
@@ -76,8 +78,9 @@ printf_stdebug (char *pattern,...)
   vsprintf (buf, pattern, args);
   va_end (args);
 
   vsprintf (buf, pattern, args);
   va_end (args);
 
-  if (SERIAL_WRITE (st2000_desc, buf, strlen (buf)))
-    fprintf (stderr, "SERIAL_WRITE failed: %s\n", safe_strerror (errno));
+  if (serial_write (st2000_desc, buf, strlen (buf)))
+    fprintf_unfiltered (gdb_stderr, "serial_write failed: %s\n",
+                       safe_strerror (errno));
 }
 
 /* Read a character from the remote system, doing all the fancy timeout
 }
 
 /* Read a character from the remote system, doing all the fancy timeout
@@ -88,7 +91,7 @@ readchar (int timeout)
 {
   int c;
 
 {
   int c;
 
-  c = SERIAL_READCHAR (st2000_desc, timeout);
+  c = serial_readchar (st2000_desc, timeout);
 
 #ifdef LOG_FILE
   putc (c & 0x7f, log_file);
 
 #ifdef LOG_FILE
   putc (c & 0x7f, log_file);
@@ -102,10 +105,10 @@ readchar (int timeout)
       if (timeout == 0)
        return c;               /* Polls shouldn't generate timeout errors */
 
       if (timeout == 0)
        return c;               /* Polls shouldn't generate timeout errors */
 
-      error ("Timeout reading from remote system.");
+      error (_("Timeout reading from remote system."));
     }
 
     }
 
-  perror_with_name ("remote-st2000");
+  perror_with_name (_("remote-st2000"));
 }
 
 /* Scan input from the remote system, until STRING is found.  If DISCARD is
 }
 
 /* Scan input from the remote system, until STRING is found.  If DISCARD is
@@ -187,7 +190,7 @@ get_hex_digit (int ignore_space)
       else
        {
          expect_prompt (1);
       else
        {
          expect_prompt (1);
-         error ("Invalid hex digit from remote system.");
+         error (_("Invalid hex digit from remote system."));
        }
     }
 }
        }
     }
 }
@@ -219,22 +222,23 @@ get_hex_regs (int n, int regno)
       val = 0;
       for (j = 0; j < 8; j++)
        val = (val << 4) + get_hex_digit (j == 0);
       val = 0;
       for (j = 0; j < 8; j++)
        val = (val << 4) + get_hex_digit (j == 0);
-      supply_register (regno++, (char *) &val);
+      regcache_raw_supply (current_regcache, regno++, (char *) &val);
     }
 }
 
 /* This is called not only when we first attach, but also when the
    user types "run" after having attached.  */
 static void
     }
 }
 
 /* This is called not only when we first attach, but also when the
    user types "run" after having attached.  */
 static void
-st2000_create_inferior (char *execfile, char *args, char **env)
+st2000_create_inferior (char *execfile, char *args, char **env,
+                       int from_tty)
 {
   int entry_pt;
 
   if (args && *args)
 {
   int entry_pt;
 
   if (args && *args)
-    error ("Can't pass arguments to remote STDEBUG process");
+    error (_("Can't pass arguments to remote STDEBUG process"));
 
   if (execfile == 0 || exec_bfd == 0)
 
   if (execfile == 0 || exec_bfd == 0)
-    error ("No executable file specified");
+    error (_("No executable file specified"));
 
   entry_pt = (int) bfd_get_start_address (exec_bfd);
 
 
   entry_pt = (int) bfd_get_start_address (exec_bfd);
 
@@ -275,26 +279,30 @@ st2000_open (char *args, int from_tty)
   n = sscanf (args, " %s %d %s", dev_name, &baudrate, junk);
 
   if (n != 2)
   n = sscanf (args, " %s %d %s", dev_name, &baudrate, junk);
 
   if (n != 2)
-    error ("Bad arguments.  Usage: target st2000 <device> <speed>\n\
-or target st2000 <host> <port>\n");
+    error (_("Bad arguments.  Usage: target st2000 <device> <speed>\n\
+or target st2000 <host> <port>\n"));
 
   st2000_close (0);
 
 
   st2000_close (0);
 
-  st2000_desc = SERIAL_OPEN (dev_name);
+  st2000_desc = serial_open (dev_name);
 
   if (!st2000_desc)
     perror_with_name (dev_name);
 
 
   if (!st2000_desc)
     perror_with_name (dev_name);
 
-  SERIAL_SETBAUDRATE (st2000_desc, baudrate);
+  if (serial_setbaudrate (st2000_desc, baudrate))
+    {
+      serial_close (dev_name);
+      perror_with_name (dev_name);
+    }
 
 
-  SERIAL_RAW (st2000_desc);
+  serial_raw (st2000_desc);
 
   push_target (&st2000_ops);
 
 #if defined (LOG_FILE)
   log_file = fopen (LOG_FILE, "w");
   if (log_file == NULL)
 
   push_target (&st2000_ops);
 
 #if defined (LOG_FILE)
   log_file = fopen (LOG_FILE, "w");
   if (log_file == NULL)
-    perror_with_name (LOG_FILE);
+    perror_with_name ((LOG_FILE));
 #endif
 
   /* Hello?  Are you there?  */
 #endif
 
   /* Hello?  Are you there?  */
@@ -312,15 +320,15 @@ or target st2000 <host> <port>\n");
 static void
 st2000_close (int quitting)
 {
 static void
 st2000_close (int quitting)
 {
-  SERIAL_CLOSE (st2000_desc);
+  serial_close (st2000_desc);
 
 #if defined (LOG_FILE)
   if (log_file)
     {
       if (ferror (log_file))
 
 #if defined (LOG_FILE)
   if (log_file)
     {
       if (ferror (log_file))
-       fprintf (stderr, "Error writing log file.\n");
+       fprintf_unfiltered (gdb_stderr, "Error writing log file.\n");
       if (fclose (log_file) != 0)
       if (fclose (log_file) != 0)
-       fprintf (stderr, "Error closing log file.\n");
+       fprintf_unfiltered (gdb_stderr, "Error closing log file.\n");
     }
 #endif
 }
     }
 #endif
 }
@@ -378,9 +386,10 @@ st2000_wait (ptid_t ptid, struct target_waitstatus *status)
   return inferior_ptid;
 }
 
   return inferior_ptid;
 }
 
-/* Return the name of register number REGNO in the form input and output by
-   STDEBUG.  Currently, REGISTER_NAMES just happens to contain exactly what
-   STDEBUG wants.  Lets take advantage of that just as long as possible! */
+/* Return the name of register number REGNO in the form input and
+   output by STDEBUG.  Currently, REGISTER_NAME just happens return
+   exactly what STDEBUG wants.  Lets take advantage of that just as
+   long as possible! */
 
 static char *
 get_reg_name (int regno)
 
 static char *
 get_reg_name (int regno)
@@ -556,9 +565,8 @@ st2000_read_inferior_memory (CORE_ADDR memaddr, char *myaddr, int len)
 
 static int
 st2000_xfer_inferior_memory (CORE_ADDR memaddr, char *myaddr, int len,
 
 static int
 st2000_xfer_inferior_memory (CORE_ADDR memaddr, char *myaddr, int len,
-                            int write, 
-                            struct mem_attrib *attrib ATTRIBUTE_UNUSED,
-                            struct target_ops *target ATTRIBUTE_UNUSED)
+                            int write, struct mem_attrib *attrib,
+                            struct target_ops *target)
 {
   if (write)
     return st2000_write_inferior_memory (memaddr, myaddr, len);
 {
   if (write)
     return st2000_write_inferior_memory (memaddr, myaddr, len);
@@ -611,7 +619,7 @@ st2000_insert_breakpoint (CORE_ADDR addr, char *shadow)
        return 0;
       }
 
        return 0;
       }
 
-  fprintf (stderr, "Too many breakpoints (> 16) for STDBUG\n");
+  fprintf_unfiltered (gdb_stderr, "Too many breakpoints (> 16) for STDBUG\n");
   return 1;
 }
 
   return 1;
 }
 
@@ -630,7 +638,8 @@ st2000_remove_breakpoint (CORE_ADDR addr, char *shadow)
        return 0;
       }
 
        return 0;
       }
 
-  fprintf (stderr, "Can't find breakpoint associated with 0x%x\n", addr);
+  fprintf_unfiltered (gdb_stderr,
+                     "Can't find breakpoint associated with 0x%x\n", addr);
   return 1;
 }
 
   return 1;
 }
 
@@ -642,10 +651,10 @@ static void
 st2000_command (char *args, int fromtty)
 {
   if (!st2000_desc)
 st2000_command (char *args, int fromtty)
 {
   if (!st2000_desc)
-    error ("st2000 target not open.");
+    error (_("st2000 target not open."));
 
   if (!args)
 
   if (!args)
-    error ("Missing command.");
+    error (_("Missing command."));
 
   printf_stdebug ("%s\r", args);
   expect_prompt (0);
 
   printf_stdebug ("%s\r", args);
   expect_prompt (0);
@@ -660,7 +669,7 @@ static void
 cleanup_tty (void)
 {
   printf ("\r\n[Exiting connect mode]\r\n");
 cleanup_tty (void)
 {
   printf ("\r\n[Exiting connect mode]\r\n");
-/*  SERIAL_RESTORE(0, &ttystate); */
+/*  serial_restore(0, &ttystate); */
 }
 
 #if 0
 }
 
 #if 0
@@ -677,7 +686,7 @@ connect_command (char *args, int fromtty)
   dont_repeat ();
 
   if (st2000_desc < 0)
   dont_repeat ();
 
   if (st2000_desc < 0)
-    error ("st2000 target not open.");
+    error (_("st2000 target not open."));
 
   if (args)
     fprintf ("This command takes no args.  They have been ignored.\n");
 
   if (args)
     fprintf ("This command takes no args.  They have been ignored.\n");
@@ -695,19 +704,19 @@ connect_command (char *args, int fromtty)
       do
        {
          FD_SET (0, &readfds);
       do
        {
          FD_SET (0, &readfds);
-         FD_SET (DEPRECATED_SERIAL_FD (st2000_desc), &readfds);
+         FD_SET (deprecated_serial_fd (st2000_desc), &readfds);
          numfds = select (sizeof (readfds) * 8, &readfds, 0, 0, 0);
        }
       while (numfds == 0);
 
       if (numfds < 0)
          numfds = select (sizeof (readfds) * 8, &readfds, 0, 0, 0);
        }
       while (numfds == 0);
 
       if (numfds < 0)
-       perror_with_name ("select");
+       perror_with_name (("select"));
 
       if (FD_ISSET (0, &readfds))
        {                       /* tty input, send to stdebug */
          c = getchar ();
          if (c < 0)
 
       if (FD_ISSET (0, &readfds))
        {                       /* tty input, send to stdebug */
          c = getchar ();
          if (c < 0)
-           perror_with_name ("connect");
+           perror_with_name (("connect"));
 
          printf_stdebug ("%c", c);
          switch (cur_esc)
 
          printf_stdebug ("%c", c);
          switch (cur_esc)
@@ -730,7 +739,7 @@ connect_command (char *args, int fromtty)
            }
        }
 
            }
        }
 
-      if (FD_ISSET (DEPRECATED_SERIAL_FD (st2000_desc), &readfds))
+      if (FD_ISSET (deprecated_serial_fd (st2000_desc), &readfds))
        {
          while (1)
            {
        {
          while (1)
            {
@@ -760,62 +769,25 @@ Arguments are the name of the device for the serial line,\n\
 the speed to connect at in bits per second.";
   st2000_ops.to_open = st2000_open;
   st2000_ops.to_close = st2000_close;
 the speed to connect at in bits per second.";
   st2000_ops.to_open = st2000_open;
   st2000_ops.to_close = st2000_close;
-  st2000_ops.to_attach = 0;
-  st2000_run_ops.to_post_attach = NULL;
-  st2000_ops.to_require_attach = NULL;
   st2000_ops.to_detach = st2000_detach;
   st2000_ops.to_detach = st2000_detach;
-  st2000_ops.to_require_detach = NULL;
   st2000_ops.to_resume = st2000_resume;
   st2000_ops.to_wait = st2000_wait;
   st2000_ops.to_resume = st2000_resume;
   st2000_ops.to_wait = st2000_wait;
-  st2000_ops.to_post_wait = NULL;
   st2000_ops.to_fetch_registers = st2000_fetch_register;
   st2000_ops.to_store_registers = st2000_store_register;
   st2000_ops.to_prepare_to_store = st2000_prepare_to_store;
   st2000_ops.to_fetch_registers = st2000_fetch_register;
   st2000_ops.to_store_registers = st2000_store_register;
   st2000_ops.to_prepare_to_store = st2000_prepare_to_store;
-  st2000_ops.to_xfer_memory = st2000_xfer_inferior_memory;
+  st2000_ops.deprecated_xfer_memory = st2000_xfer_inferior_memory;
   st2000_ops.to_files_info = st2000_files_info;
   st2000_ops.to_insert_breakpoint = st2000_insert_breakpoint;
   st2000_ops.to_remove_breakpoint = st2000_remove_breakpoint;  /* Breakpoints */
   st2000_ops.to_files_info = st2000_files_info;
   st2000_ops.to_insert_breakpoint = st2000_insert_breakpoint;
   st2000_ops.to_remove_breakpoint = st2000_remove_breakpoint;  /* Breakpoints */
-  st2000_ops.to_terminal_init = 0;
-  st2000_ops.to_terminal_inferior = 0;
-  st2000_ops.to_terminal_ours_for_output = 0;
-  st2000_ops.to_terminal_ours = 0;
-  st2000_ops.to_terminal_info = 0;     /* Terminal handling */
   st2000_ops.to_kill = st2000_kill;
   st2000_ops.to_kill = st2000_kill;
-  st2000_ops.to_load = 0;      /* load */
-  st2000_ops.to_lookup_symbol = 0;     /* lookup_symbol */
   st2000_ops.to_create_inferior = st2000_create_inferior;
   st2000_ops.to_create_inferior = st2000_create_inferior;
-  st2000_ops.to_post_startup_inferior = NULL;
-  st2000_ops.to_acknowledge_created_inferior = NULL;
-  st2000_ops.to_clone_and_follow_inferior = NULL;
-  st2000_ops.to_post_follow_inferior_by_clone = NULL;
-  st2000_run_ops.to_insert_fork_catchpoint = NULL;
-  st2000_run_ops.to_remove_fork_catchpoint = NULL;
-  st2000_run_ops.to_insert_vfork_catchpoint = NULL;
-  st2000_run_ops.to_remove_vfork_catchpoint = NULL;
-  st2000_ops.to_has_forked = NULL;
-  st2000_ops.to_has_vforked = NULL;
-  st2000_run_ops.to_can_follow_vfork_prior_to_exec = NULL;
-  st2000_ops.to_post_follow_vfork = NULL;
-  st2000_run_ops.to_insert_exec_catchpoint = NULL;
-  st2000_run_ops.to_remove_exec_catchpoint = NULL;
-  st2000_run_ops.to_has_execd = NULL;
-  st2000_run_ops.to_reported_exec_events_per_exec_call = NULL;
-  st2000_run_ops.to_has_exited = NULL;
   st2000_ops.to_mourn_inferior = st2000_mourn_inferior;
   st2000_ops.to_mourn_inferior = st2000_mourn_inferior;
-  st2000_ops.to_can_run = 0;   /* can_run */
-  st2000_ops.to_notice_signals = 0;    /* notice_signals */
-  st2000_ops.to_thread_alive = 0;      /* thread alive */
-  st2000_ops.to_stop = 0;      /* to_stop */
-  st2000_ops.to_pid_to_exec_file = NULL;
   st2000_ops.to_stratum = process_stratum;
   st2000_ops.to_stratum = process_stratum;
-  st2000_ops.DONT_USE = 0;     /* next */
   st2000_ops.to_has_all_memory = 1;
   st2000_ops.to_has_memory = 1;
   st2000_ops.to_has_stack = 1;
   st2000_ops.to_has_registers = 1;
   st2000_ops.to_has_execution = 1;     /* all mem, mem, stack, regs, exec */
   st2000_ops.to_has_all_memory = 1;
   st2000_ops.to_has_memory = 1;
   st2000_ops.to_has_stack = 1;
   st2000_ops.to_has_registers = 1;
   st2000_ops.to_has_execution = 1;     /* all mem, mem, stack, regs, exec */
-  st2000_ops.to_sections = 0;
-  st2000_ops.to_sections_end = 0;      /* Section pointers */
   st2000_ops.to_magic = OPS_MAGIC;     /* Always the last thing */
 };
 
   st2000_ops.to_magic = OPS_MAGIC;     /* Always the last thing */
 };
 
@@ -824,9 +796,9 @@ _initialize_remote_st2000 (void)
 {
   init_st2000_ops ();
   add_target (&st2000_ops);
 {
   init_st2000_ops ();
   add_target (&st2000_ops);
-  add_com ("st2000 <command>", class_obscure, st2000_command,
-          "Send a command to the STDBUG monitor.");
-  add_com ("connect", class_obscure, connect_command,
-          "Connect the terminal directly up to the STDBUG command monitor.\n\
-Use <CR>~. or <CR>~^D to break out.");
+  add_com ("st2000", class_obscure, st2000_command,
+          _("Send a command to the STDBUG monitor."));
+  add_com ("connect", class_obscure, connect_command, _("\
+Connect the terminal directly up to the STDBUG command monitor.\n\
+Use <CR>~. or <CR>~^D to break out."));
 }
 }
This page took 0.028832 seconds and 4 git commands to generate.