*/
static void
-bug_load (args, fromtty)
- char *args;
- int fromtty;
+bug_load (char *args, int fromtty)
{
bfd *abfd;
asection *s;
sr_check_open ();
- dcache_flush (gr_get_dcache ());
inferior_pid = 0;
abfd = bfd_openr (args, 0);
if (!abfd)
gdb_flush (gdb_stdout);
}
printf_filtered ("\n");
- free (buffer);
+ xfree (buffer);
}
s = s->next;
}
#if 0
static char *
-get_word (p)
- char **p;
+get_word (char **p)
{
char *s = *p;
char *word;
static struct gr_settings bug_settings =
{
- NULL, /* dcache */
"Bug>", /* prompt */
&bug_ops, /* ops */
bug_clear_breakpoints, /* clear_all_breakpoints */
- bug_read_memory, /* readfunc */
- bug_write_memory, /* writefunc */
gr_generic_checkin, /* checkin */
};
};
static void
-bug_open (args, from_tty)
- char *args;
- int from_tty;
+bug_open (char *args, int from_tty)
{
if (args == NULL)
args = "";
/* Tell the remote machine to resume. */
void
-bug_resume (pid, step, sig)
- int pid, step;
- enum target_signal sig;
+bug_resume (int pid, int step, enum target_signal sig)
{
- dcache_flush (gr_get_dcache ());
-
if (step)
{
sr_write_cr ("t");
};
int
-bug_wait (pid, status)
- int pid;
- struct target_waitstatus *status;
+bug_wait (int pid, struct target_waitstatus *status)
{
int old_timeout = sr_get_timeout ();
int old_immediate_quit = immediate_quit;
Returns a pointer to a static buffer containing the answer. */
static char *
-get_reg_name (regno)
- int regno;
+get_reg_name (int regno)
{
static char *rn[] =
{
success, -1 on failure. */
static int
-bug_scan (s)
- char *s;
+bug_scan (char *s)
{
int c;
#endif /* never */
static int
-bug_srec_write_cr (s)
- char *s;
+bug_srec_write_cr (char *s)
{
char *p = s;
/* Store register REGNO, or all if REGNO == -1. */
static void
-bug_fetch_register (regno)
- int regno;
+bug_fetch_register (int regno)
{
sr_check_open ();
/* Store register REGNO, or all if REGNO == -1. */
static void
-bug_store_register (regno)
- int regno;
+bug_store_register (int regno)
{
char buffer[1024];
sr_check_open ();
return;
}
+/* 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. */
+
int
-bug_xfer_memory (memaddr, myaddr, len, write, target)
- CORE_ADDR memaddr;
- char *myaddr;
- int len;
- int write;
- struct target_ops *target; /* ignored */
+bug_xfer_memory (CORE_ADDR memaddr, char *myaddr, int len, int write,
+ struct target_ops *target)
{
+ int res;
+
if (len <= 0)
return 0;
- return dcache_xfer_memory (gr_get_dcache (), memaddr, myaddr, len, write);
+ if (write)
+ res = bug_write_memory (memaddr, myaddr, len);
+ else
+ res = bug_read_memory (memaddr, myaddr, len);
+
+ return res;
}
static void
-start_load ()
+start_load (void)
{
char *command;
};
static int
-bug_write_memory (memaddr, myaddr, len)
- CORE_ADDR memaddr;
- unsigned char *myaddr;
- int len;
+bug_write_memory (CORE_ADDR memaddr, unsigned char *myaddr, int len)
{
int done;
int checksum;
/* Read LEN bytes from inferior memory at MEMADDR. Put the result
at debugger address MYADDR. Returns errno value. */
static int
-bug_read_memory (memaddr, myaddr, len)
- CORE_ADDR memaddr;
- unsigned char *myaddr;
- int len;
+bug_read_memory (CORE_ADDR memaddr, unsigned char *myaddr, int len)
{
char request[100];
char *buffer;
#define MAX_BREAKS 16
static int num_brkpts = 0;
+
+/* Insert a breakpoint at ADDR. SAVE is normally the address of the
+ pattern buffer where the instruction that the breakpoint overwrites
+ is saved. It is unused here since the bug is responsible for
+ saving/restoring the original instruction. */
+
static int
-bug_insert_breakpoint (addr, save)
- CORE_ADDR addr;
- char *save; /* Throw away, let bug save instructions */
+bug_insert_breakpoint (CORE_ADDR addr, char *save)
{
sr_check_open ();
}
}
+
+/* Remove a breakpoint at ADDR. SAVE is normally the previously
+ saved pattern, but is unused here since the bug is responsible
+ for saving/restoring instructions. */
+
static int
-bug_remove_breakpoint (addr, save)
- CORE_ADDR addr;
- char *save; /* Throw away, let bug save instructions */
+bug_remove_breakpoint (CORE_ADDR addr, char *save)
{
if (num_brkpts > 0)
{
/* Clear the bugs notion of what the break points are */
static int
-bug_clear_breakpoints ()
+bug_clear_breakpoints (void)
{
if (sr_is_open ())
} /* init_bug_ops */
void
-_initialize_remote_bug ()
+_initialize_remote_bug (void)
{
init_bug_ops ();
add_target (&bug_ops);