* gas/cfi/cfi-common-6.s: Do not use |.
[deliverable/binutils-gdb.git] / gdb / sh3-rom.c
index 030452c2a3357d782d736c25e5c99e0c1b3c0d21..6416df00a6bf6c0e0bd4298fc643f3f16a77a8c1 100644 (file)
@@ -1,5 +1,6 @@
-/* Remote target glue for the Hitachi SH-3 ROM monitor.
-   Copyright 1995, 1996, 2000 Free Software Foundation, Inc.
+/* Remote target glue for the Renesas SH-3 ROM monitor.
+   Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001
+   Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -15,8 +16,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
 
 #include "defs.h"
 #include "gdbcore.h"
 #include "serial.h"
 #include "srec.h"
 #include "arch-utils.h"
+#include "regcache.h"
+#include "gdb_string.h"
 
-static serial_t parallel;
+#include "sh-tdep.h"
+
+static struct serial *parallel;
 static int parallel_in_use;
 
 static void sh3_open (char *args, int from_tty);
 
 static void
-sh3_supply_register (regname, regnamelen, val, vallen)
-     char *regname;
-     int regnamelen;
-     char *val;
-     int vallen;
+sh3_supply_register (char *regname, int regnamelen, char *val, int vallen)
 {
   int numregs;
   int regno;
@@ -122,10 +123,7 @@ sh3_supply_register (regname, regnamelen, val, vallen)
 }
 
 static void
-sh3_load (desc, file, hashmark)
-     serial_t desc;
-     char *file;
-     int hashmark;
+sh3_load (struct serial *desc, char *file, int hashmark)
 {
   if (parallel_in_use)
     {
@@ -137,13 +135,13 @@ sh3_load (desc, file, hashmark)
     {
       monitor_printf ("il;s:x\r");
       monitor_expect ("\005", NULL, 0);                /* Look for ENQ */
-      SERIAL_WRITE (desc, "\006", 1);  /* Send ACK */
+      serial_write (desc, "\006", 1);  /* Send ACK */
       monitor_expect ("LO x\r", NULL, 0);      /* Look for filename */
 
       load_srec (desc, file, 0, 80, SREC_ALL, hashmark, NULL);
 
       monitor_expect ("\005", NULL, 0);                /* Look for ENQ */
-      SERIAL_WRITE (desc, "\006", 1);  /* Send ACK */
+      serial_write (desc, "\006", 1);  /* Send ACK */
       monitor_expect_prompt (NULL, 0);
     }
 }
@@ -153,7 +151,7 @@ sh3_load (desc, file, hashmark)
    than does GDB, and don't necessarily support all the registers
    either. So, typing "info reg sp" becomes a "r30".  */
 
-static char *sh3_regnames[NUM_REGS] =
+static char *sh3_regnames[] =
 {
   "R0", "R1", "R2", "R3", "R4", "R5", "R6", "R7",
   "R8", "R9", "R10", "R11", "R12", "R13", "R14", "R15",
@@ -168,7 +166,7 @@ static char *sh3_regnames[NUM_REGS] =
   "R4_BANK1", "R5_BANK1", "R6_BANK1", "R7_BANK1"
 };
 
-static char *sh3e_regnames[NUM_REGS] =
+static char *sh3e_regnames[] =
 {
   "R0", "R1", "R2", "R3", "R4", "R5", "R6", "R7",
   "R8", "R9", "R10", "R11", "R12", "R13", "R14", "R15",
@@ -230,7 +228,7 @@ init_sh3_cmds (void)
   sh3_cmds.getreg.term_cmd = ".\r";    /* getreg.term_cmd */
   sh3_cmds.dump_registers = "r\r";     /* dump_registers */
   sh3_cmds.register_pattern = "\\(\\w+\\)=\\([0-9a-fA-F]+\\( +[0-9a-fA-F]+\\b\\)*\\)";
-  sh3_cmds.supply_register = sh3_supply_register;      /* supply_register */
+  sh3_cmds.supply_register = sh3_supply_register;
   sh3_cmds.load_routine = sh3_load;    /* load_routine */
   sh3_cmds.load = NULL;                /* download command */
   sh3_cmds.loadresp = NULL;    /* Load response */
@@ -249,16 +247,14 @@ init_sh3_cmds (void)
 static struct monitor_ops sh3e_cmds;
 
 static void
-sh3_open (args, from_tty)
-     char *args;
-     int from_tty;
+sh3_open (char *args, int from_tty)
 {
   char *serial_port_name = args;
   char *parallel_port_name = 0;
 
   if (args)
     {
-      char *cursor = serial_port_name = strsave (args);
+      char *cursor = serial_port_name = xstrdup (args);
 
       while (*cursor && *cursor != ' ')
        cursor++;
@@ -277,30 +273,35 @@ sh3_open (args, from_tty)
 
   if (parallel_port_name)
     {
-      parallel = SERIAL_OPEN (parallel_port_name);
+      parallel = serial_open (parallel_port_name);
 
       if (!parallel)
-       perror_with_name ("Unable to open parallel port.");
+       perror_with_name (_("Unable to open parallel port."));
 
       parallel_in_use = 1;
     }
 
+
   /* If we connected successfully, we know the processor is an SH3.  */
-  set_architecture_from_arch_mach (bfd_arch_sh, bfd_mach_sh3);
+  {
+    struct gdbarch_info info;
+    gdbarch_info_init (&info);
+    info.bfd_arch_info = bfd_lookup_arch (bfd_arch_sh, bfd_mach_sh3);
+    if (!gdbarch_update_p (info))
+      error (_("Target is not an SH3"));
+  }
 }
 
 
 static void
-sh3e_open (args, from_tty)
-     char *args;
-     int from_tty;
+sh3e_open (char *args, int from_tty)
 {
   char *serial_port_name = args;
   char *parallel_port_name = 0;
 
   if (args)
     {
-      char *cursor = serial_port_name = strsave (args);
+      char *cursor = serial_port_name = xstrdup (args);
 
       while (*cursor && *cursor != ' ')
        cursor++;
@@ -326,50 +327,52 @@ sh3e_open (args, from_tty)
 
   if (parallel_port_name)
     {
-      parallel = SERIAL_OPEN (parallel_port_name);
+      parallel = serial_open (parallel_port_name);
 
       if (!parallel)
-       perror_with_name ("Unable to open parallel port.");
+       perror_with_name (_("Unable to open parallel port."));
 
       parallel_in_use = 1;
     }
 
   /* If we connected successfully, we know the processor is an SH3E.  */
-  set_architecture_from_arch_mach (bfd_arch_sh, bfd_mach_sh3);
+  {
+    struct gdbarch_info info;
+    gdbarch_info_init (&info);
+    info.bfd_arch_info = bfd_lookup_arch (bfd_arch_sh, bfd_mach_sh3);
+    if (!gdbarch_update_p (info))
+      error (_("Target is not an SH3"));
+  }
 }
 
 static void
-sh3_close (quitting)
-     int quitting;
+sh3_close (int quitting)
 {
   monitor_close (quitting);
   if (parallel_in_use)
     {
-      SERIAL_CLOSE (parallel);
+      serial_close (parallel);
       parallel_in_use = 0;
     }
 }
 
+extern initialize_file_ftype _initialize_sh3_rom; /* -Wmissing-prototypes */
+
 void
-_initialize_sh3_rom ()
+_initialize_sh3_rom (void)
 {
   init_sh3_cmds ();
   init_monitor_ops (&sh3_ops);
 
   sh3_ops.to_shortname = "sh3";
-  sh3_ops.to_longname = "Hitachi SH-3 rom monitor";
+  sh3_ops.to_longname = "Renesas SH-3 rom monitor";
 
   sh3_ops.to_doc =
-#ifdef _WINDOWS
-  /* On windows we can talk through the parallel port too. */
-    "Debug on a Hitachi eval board running the SH-3 rom monitor.\n"
-    "Specify the serial device it is connected to (e.g. com2).\n"
+  /* We can download through the parallel port too. */
+    "Debug on a Renesas eval board running the SH-3E rom monitor.\n"
+    "Specify the serial device it is connected to.\n"
     "If you want to use the parallel port to download to it, specify that\n"
-    "as the second argument. (e.g. lpt1)";
-#else
-    "Debug on a Hitachi eval board running the SH-3 rom monitor.\n\
-Specify the serial device it is connected to (e.g. /dev/ttya).";
-#endif
+    "as an additional second argument.";
 
   sh3_ops.to_open = sh3_open;
   sh3_ops.to_close = sh3_close;
@@ -381,19 +384,14 @@ Specify the serial device it is connected to (e.g. /dev/ttya).";
   init_monitor_ops (&sh3e_ops);
 
   sh3e_ops.to_shortname = "sh3e";
-  sh3e_ops.to_longname = "Hitachi SH-3E rom monitor";
+  sh3e_ops.to_longname = "Renesas SH-3E rom monitor";
 
   sh3e_ops.to_doc =
-#ifdef _WINDOWS
-  /* On windows we can talk through the parallel port too. */
-    "Debug on a Hitachi eval board running the SH-3E rom monitor.\n"
-    "Specify the serial device it is connected to (e.g. com2).\n"
+  /* We can download through the parallel port too. */
+    "Debug on a Renesas eval board running the SH-3E rom monitor.\n"
+    "Specify the serial device it is connected to.\n"
     "If you want to use the parallel port to download to it, specify that\n"
-    "as the second argument. (e.g. lpt1)";
-#else
-    "Debug on a Hitachi eval board running the SH-3E rom monitor.\n\
-Specify the serial device it is connected to (e.g. /dev/ttya).";
-#endif
+    "as an additional second argument.";
 
   sh3e_ops.to_open = sh3e_open;
   sh3e_ops.to_close = sh3_close;
This page took 0.027701 seconds and 4 git commands to generate.