Added self to write-after-approval.
[deliverable/binutils-gdb.git] / gdb / remote-st.c
index 049eaec644271445b568deea882573e9a778a43f..eba847fde743a4e35e0278670ac2bf50a34c99e0 100644 (file)
@@ -1,5 +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, 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.
@@ -60,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. */
 
@@ -75,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
@@ -87,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);
@@ -218,14 +222,15 @@ 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;
 
 {
   int entry_pt;
 
@@ -279,14 +284,18 @@ 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);
 
 
   push_target (&st2000_ops);
 
@@ -311,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
 }
@@ -338,7 +347,7 @@ st2000_detach (int from_tty)
 /* Tell the remote machine to resume.  */
 
 static void
 /* Tell the remote machine to resume.  */
 
 static void
-st2000_resume (int pid, int step, enum target_signal sig)
+st2000_resume (ptid_t ptid, int step, enum target_signal sig)
 {
   if (step)
     {
 {
   if (step)
     {
@@ -357,8 +366,8 @@ st2000_resume (int pid, int step, enum target_signal sig)
 /* Wait until the remote machine stops, then return,
    storing status in STATUS just as `wait' would.  */
 
 /* Wait until the remote machine stops, then return,
    storing status in STATUS just as `wait' would.  */
 
-static int
-st2000_wait (struct target_waitstatus *status)
+static ptid_t
+st2000_wait (ptid_t ptid, struct target_waitstatus *status)
 {
   int old_timeout = timeout;
 
 {
   int old_timeout = timeout;
 
@@ -374,12 +383,13 @@ st2000_wait (struct target_waitstatus *status)
 
   timeout = old_timeout;
 
 
   timeout = old_timeout;
 
-  return 0;
+  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)
@@ -555,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);
@@ -610,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;
 }
 
@@ -629,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;
 }
 
@@ -659,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
@@ -694,7 +704,7 @@ 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);
          numfds = select (sizeof (readfds) * 8, &readfds, 0, 0, 0);
        }
       while (numfds == 0);
@@ -729,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)
            {
@@ -759,14 +769,9 @@ 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;
@@ -774,48 +779,15 @@ the speed to connect at in bits per second.";
   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_run_ops.to_core_file_to_sym_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 */
 };
 
This page took 0.02737 seconds and 4 git commands to generate.