/* Remote debugging interface for Hitachi E7000 ICE, for GDB
- Copyright 1993, 1994, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
+ Copyright 1993, 1994, 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
Contributed by Cygnus Support.
Written by Steve Chamberlain for Cygnus Support.
#include "gdbarch.h"
#include "inferior.h"
#include "target.h"
-#include "gdb_wait.h"
#include "value.h"
#include "command.h"
-#include <signal.h>
#include "gdb_string.h"
#include "gdbcmd.h"
#include <sys/types.h>
/* Stub for catch_errors. */
static int
-e7000_start_remote (char *dummy)
+e7000_start_remote (void *dummy)
{
int loop;
int sync;
int try;
int quit_trying;
- immediate_quit = 1; /* Allow user to interrupt it */
+ immediate_quit++; /* Allow user to interrupt it */
/* Hello? Are you there? */
sync = 0;
if (!sync)
{
fprintf_unfiltered (gdb_stderr, "Giving up after %d tries...\n", try);
- error ("Unable to syncronize with target.\n");
+ error ("Unable to synchronize with target.\n");
}
puts_e7000debug ("\r");
puts_e7000debug ("b -\r"); /* Clear breakpoints */
expect_prompt ();
- immediate_quit = 0;
+ immediate_quit--;
/* This is really the job of start_remote however, that makes an assumption
that the target is about to print out a status message of some sort. That
when you want to detach and do something else with your gdb. */
static void
-e7000_detach (int from_tty)
+e7000_detach (char *arg, int from_tty)
{
pop_target (); /* calls e7000_close to do the real work */
if (from_tty)
/* Tell the remote machine to resume. */
static void
-e7000_resume (int pid, int step, int sig)
+e7000_resume (int pid, int step, enum target_signal sigal)
{
if (step)
puts_e7000debug ("S\r");
}
void
-fetch_regs_from_dump (nextchar, want)
- int (*nextchar) ();
- char *want;
+fetch_regs_from_dump (int (*nextchar) (), char *want)
{
int regno;
char buf[MAX_REGISTER_RAW_SIZE];
}
else
- abort ();
+ internal_error (__FILE__, __LINE__, "failed internal consistency check");
}
store_signed_integer (buf,
REGISTER_RAW_SIZE (regno),
- (LONGEST) get_hex (&thischar, nextchar));
+ (LONGEST) get_hex (&thischar));
supply_register (regno, buf);
break;
}
}
static void
-e7000_files_info (void)
+e7000_files_info (struct target_ops *ops)
{
printf_unfiltered ("\tAttached to %s at %d baud.\n", dev_name, baudrate);
}
#endif
+/* Transfer LEN bytes between GDB address MYADDR and target address
+ MEMADDR. If WRITE is non-zero, transfer them to the target,
+ otherwise transfer them from the target. TARGET is unused.
+
+ Returns the number of bytes transferred. */
+
static int
-e7000_xfer_inferior_memory (memaddr, myaddr, len, write, target)
- CORE_ADDR memaddr;
- unsigned char *myaddr;
- int len;
- int write;
- struct target_ops *target; /* ignored */
+e7000_xfer_inferior_memory (CORE_ADDR memaddr, char *myaddr,
+ int len, int write,
+ struct mem_attrib *attrib ATTRIBUTE_UNUSED,
+ struct target_ops *target ATTRIBUTE_UNUSED)
{
if (write)
return e7000_write_inferior_memory (memaddr, myaddr, len);
}
static void
-e7000_kill (char *args, int from_tty)
+e7000_kill (void)
{
}
{0};
static int
-e7000_insert_breakpoint (CORE_ADDR addr, unsigned char *shadow)
+e7000_insert_breakpoint (CORE_ADDR addr, char *shadow)
{
int i;
char buf[200];
}
static int
-e7000_remove_breakpoint (CORE_ADDR addr, unsigned char *shadow)
+e7000_remove_breakpoint (CORE_ADDR addr, char *shadow)
{
int i;
char buf[200];
break;
default:
/* Get the user's attention - this should never happen. */
- abort ();
+ internal_error (__FILE__, __LINE__, "failed internal consistency check");
}
return 0;