/* Remote target glue for the Hitachi SH-3 ROM monitor.
- Copyright 1995, 1996 Free Software Foundation, Inc.
+ Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001
+ Free Software Foundation, Inc.
This file is part of GDB.
#include "monitor.h"
#include "serial.h"
#include "srec.h"
+#include "arch-utils.h"
+#include "regcache.h"
-static serial_t parallel;
+static struct serial *parallel;
static int parallel_in_use;
-static void sh3_open PARAMS ((char *args, int from_tty));
+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;
break;
case 'S':
if (regname[1] == 'S' && regname[2] == 'R')
- regno = SSR_REGNUM;
+ regno = gdbarch_tdep (current_gdbarch)->SSR_REGNUM;
else if (regname[1] == 'P' && regname[2] == 'C')
- regno = SPC_REGNUM;
+ regno = gdbarch_tdep (current_gdbarch)->SPC_REGNUM;
break;
}
}
}
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)
{
{
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);
}
}
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",
"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",
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++;
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.");
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++;
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.");
}
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;
}
}
void
-_initialize_sh3_rom ()
+_initialize_sh3_rom (void)
{
init_sh3_cmds ();
init_monitor_ops (&sh3_ops);
sh3_ops.to_longname = "Hitachi 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 Hitachi 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;
sh3e_ops.to_longname = "Hitachi SH-3E rom monitor";
sh3e_ops.to_doc =
-#ifdef _WINDOWS
- /* On windows we can talk through the parallel port too. */
+ /* We can download 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"
+ "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;