X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fsh3-rom.c;h=7d07fa53c801d4b5d9fad518afcdb791fbe5e2a7;hb=e11c53d2ed9beadb12c0aeb8b91f763ea3fe5dab;hp=3fd1e68bb07484e1bead295804c9b5f96ce595dc;hpb=dc9e099fc0eced486ae2b49455c9da113c11f4ff;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/sh3-rom.c b/gdb/sh3-rom.c index 3fd1e68bb0..7d07fa53c8 100644 --- a/gdb/sh3-rom.c +++ b/gdb/sh3-rom.c @@ -1,5 +1,6 @@ /* 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. @@ -24,18 +25,19 @@ #include "monitor.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 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; @@ -75,9 +77,9 @@ sh3_supply_register (regname, regnamelen, val, vallen) 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; } } @@ -121,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) { @@ -136,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); } } @@ -152,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", @@ -167,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", @@ -248,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++; @@ -276,7 +273,7 @@ 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."); @@ -290,16 +287,14 @@ sh3_open (args, from_tty) 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++; @@ -325,7 +320,7 @@ 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."); @@ -338,19 +333,18 @@ sh3e_open (args, from_tty) } 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); @@ -359,16 +353,11 @@ _initialize_sh3_rom () 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; @@ -383,16 +372,11 @@ Specify the serial device it is connected to (e.g. /dev/ttya)."; 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;