X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fremote-rdp.c;h=0aecc3826ef7b9eb700d2cc2a3a34a465e9e4c28;hb=824670030be8c11c14f5d701eb2da19bd177f87f;hp=9b6584d874a178227791880e2948cf0e9c644c52;hpb=30727aa6d12fb866494020c0b62ab265a2bdcdfe;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/remote-rdp.c b/gdb/remote-rdp.c index 9b6584d874..0aecc3826e 100644 --- a/gdb/remote-rdp.c +++ b/gdb/remote-rdp.c @@ -1,5 +1,5 @@ /* Remote debugging for the ARM RDP interface. - Copyright 1994, 1995 Free Software Foundation, Inc. + Copyright 1994, 1995, 2001 Free Software Foundation, Inc. This file is part of GDB. @@ -38,25 +38,19 @@ #include "defs.h" #include "inferior.h" -#include "wait.h" #include "value.h" #include "callback.h" #include "command.h" -#ifdef ANSI_PROTOTYPES -#include -#else -#include -#endif #include #include #include "symfile.h" #include "remote-utils.h" #include "gdb_string.h" -#ifdef HAVE_UNISTD_H -#include -#endif #include "gdbcore.h" +#ifdef HAVE_TIME_H +#include +#endif extern struct target_ops remote_rdp_ops; static serial_t io; @@ -172,17 +166,16 @@ static int timeout = 2; static char *commandline = NULL; static int -remote_rdp_xfer_inferior_memory PARAMS ((CORE_ADDR memaddr, - char *myaddr, - int len, - int write, - struct target_ops * target)); +remote_rdp_xfer_inferior_memory (CORE_ADDR memaddr, char *myaddr, int len, + int write, + struct mem_attrib *attrib, + struct target_ops *target); /* Stuff for talking to the serial layer. */ static unsigned char -get_byte () +get_byte (void) { int c = SERIAL_READCHAR (io, timeout); @@ -203,7 +196,7 @@ get_byte () /* Note that the target always speaks little-endian to us, even if it's a big endian machine. */ static unsigned int -get_word () +get_word (void) { unsigned int val = 0; unsigned int c; @@ -217,8 +210,7 @@ get_word () } static void -put_byte (val) - char val; +put_byte (char val) { if (remote_debug) fprintf_unfiltered (gdb_stdlog, "(%02x)\n", val); @@ -226,8 +218,7 @@ put_byte (val) } static void -put_word (val) - int val; +put_word (int val) { /* We always send in little endian */ unsigned char b[4]; @@ -255,9 +246,7 @@ put_word (val) */ static void -rdp_init (cold, tty) - int cold; - int tty; +rdp_init (int cold, int tty) { int sync = 0; int type = cold ? RDP_OPEN_TYPE_COLD : RDP_OPEN_TYPE_WARM; @@ -379,23 +368,13 @@ rdp_init (cold, tty) } -#ifdef ANSI_PROTOTYPES void send_rdp (char *template,...) -#else -void -send_rdp (char *template, va_alist) - va_dcl -#endif { char buf[200]; char *dst = buf; va_list alist; -#ifdef ANSI_PROTOTYPES va_start (alist, template); -#else - va_start (alist); -#endif while (*template) { @@ -495,7 +474,7 @@ send_rdp (char *template, va_alist) abort (); } } - va_end (args); + va_end (alist); if (dst != buf) abort (); @@ -503,10 +482,7 @@ send_rdp (char *template, va_alist) static int -rdp_write (memaddr, buf, len) - CORE_ADDR memaddr; - char *buf; - int len; +rdp_write (CORE_ADDR memaddr, char *buf, int len) { int res; int val; @@ -522,10 +498,7 @@ rdp_write (memaddr, buf, len) static int -rdp_read (memaddr, buf, len) - CORE_ADDR memaddr; - char *buf; - int len; +rdp_read (CORE_ADDR memaddr, char *buf, int len) { int res; int val; @@ -541,9 +514,7 @@ rdp_read (memaddr, buf, len) } static void -rdp_fetch_one_register (mask, buf) - int mask; - char *buf; +rdp_fetch_one_register (int mask, char *buf) { int val; send_rdp ("bbw-SWZ", RDP_CPU_READ, RDP_CPU_READWRITE_MODE_CURRENT, mask, &val); @@ -551,9 +522,7 @@ rdp_fetch_one_register (mask, buf) } static void -rdp_fetch_one_fpu_register (mask, buf) - int mask; - char *buf; +rdp_fetch_one_fpu_register (int mask, char *buf) { #if 0 /* !!! Since the PIE board doesn't work as documented, @@ -580,9 +549,7 @@ rdp_fetch_one_fpu_register (mask, buf) static void -rdp_store_one_register (mask, buf) - int mask; - char *buf; +rdp_store_one_register (int mask, char *buf) { int val = extract_unsigned_integer (buf, 4); @@ -592,9 +559,7 @@ rdp_store_one_register (mask, buf) static void -rdp_store_one_fpu_register (mask, buf) - int mask; - char *buf; +rdp_store_one_fpu_register (int mask, char *buf) { #if 0 /* See comment in fetch_one_fpu_register */ @@ -632,8 +597,7 @@ rdp_store_one_fpu_register (mask, buf) /* Convert between GDB requests and the RDP layer. */ static void -remote_rdp_fetch_register (regno) - int regno; +remote_rdp_fetch_register (int regno) { if (regno == -1) { @@ -663,8 +627,7 @@ remote_rdp_fetch_register (regno) static void -remote_rdp_store_register (regno) - int regno; +remote_rdp_store_register (int regno) { if (regno == -1) { @@ -691,14 +654,14 @@ remote_rdp_store_register (regno) } static void -remote_rdp_kill () +remote_rdp_kill (void) { callback->shutdown (callback); } static void -rdp_info () +rdp_info (void) { send_rdp ("bw-S-W-Z", RDP_INFO, RDP_INFO_ABOUT_STEP, &ds.step_info); @@ -715,7 +678,7 @@ rdp_info () static void -rdp_execute_start () +rdp_execute_start (void) { /* Start it off, but don't wait for it */ send_rdp ("bb-", RDP_EXEC, RDP_EXEC_TYPE_SYNC); @@ -723,9 +686,7 @@ rdp_execute_start () static void -rdp_set_command_line (command, args) - char *command; - char *args; +rdp_set_command_line (char *command, char *args) { /* ** We could use RDP_INFO_SET_CMDLINE to send this, but EmbeddedICE systems @@ -734,7 +695,7 @@ rdp_set_command_line (command, args) */ if (commandline != NULL) - free (commandline); + xfree (commandline); commandline = malloc (strlen (command) + strlen (args) + 2); if (commandline != NULL) @@ -746,7 +707,7 @@ rdp_set_command_line (command, args) } static void -rdp_catch_vectors () +rdp_catch_vectors (void) { /* ** We want the target monitor to intercept the abort vectors @@ -833,9 +794,7 @@ static int translate_open_mode[] = }; static int -exec_swi (swi, args) - int swi; - argsin *args; +exec_swi (int swi, argsin *args) { int i; char c; @@ -913,7 +872,7 @@ exec_swi (swi, args) char *copy = alloca (args[2].n); int done = callback->read (callback, args[0].n, copy, args[2].n); if (done > 0) - remote_rdp_xfer_inferior_memory (args[1].n, copy, done, 1, 0); + remote_rdp_xfer_inferior_memory (args[1].n, copy, done, 1, 0, 0); args->n = args[2].n - done; return 1; } @@ -945,10 +904,10 @@ exec_swi (swi, args) commandline[255] = '\0'; } remote_rdp_xfer_inferior_memory (args[0].n, - commandline, len + 1, 1, 0); + commandline, len + 1, 1, 0, 0); } else - remote_rdp_xfer_inferior_memory (args[0].n, "", 1, 1, 0); + remote_rdp_xfer_inferior_memory (args[0].n, "", 1, 1, 0, 0); return 1; default: @@ -958,7 +917,7 @@ exec_swi (swi, args) static void -handle_swi () +handle_swi (void) { argsin args[3]; char *buf; @@ -995,6 +954,7 @@ handle_swi () buf, len, 0, + 0, 0); } else @@ -1010,7 +970,7 @@ handle_swi () break; default: - error ("Unimplented SWI argument"); + error ("Unimplemented SWI argument"); } type = type >> 2; @@ -1031,7 +991,7 @@ handle_swi () } static void -rdp_execute_finish () +rdp_execute_finish (void) { int running = 1; @@ -1068,16 +1028,14 @@ rdp_execute_finish () static void -rdp_execute () +rdp_execute (void) { rdp_execute_start (); rdp_execute_finish (); } static int -remote_rdp_insert_breakpoint (addr, save) - CORE_ADDR addr; - char *save; +remote_rdp_insert_breakpoint (CORE_ADDR addr, char *save) { int res; if (ds.rdi_level > 0) @@ -1101,9 +1059,7 @@ remote_rdp_insert_breakpoint (addr, save) } static int -remote_rdp_remove_breakpoint (addr, save) - CORE_ADDR addr; - char *save; +remote_rdp_remove_breakpoint (CORE_ADDR addr, char *save) { int res; if (ds.rdi_level > 0) @@ -1124,7 +1080,7 @@ remote_rdp_remove_breakpoint (addr, save) } static void -rdp_step () +rdp_step (void) { if (ds.can_step && 0) { @@ -1140,16 +1096,14 @@ rdp_step () char handle[4]; CORE_ADDR pc = read_register (PC_REGNUM); pc = arm_get_next_pc (pc); - remote_rdp_insert_breakpoint (pc, &handle); + remote_rdp_insert_breakpoint (pc, handle); rdp_execute (); - remote_rdp_remove_breakpoint (pc, &handle); + remote_rdp_remove_breakpoint (pc, handle); } } static void -remote_rdp_open (args, from_tty) - char *args; - int from_tty; +remote_rdp_open (char *args, int from_tty) { int not_icebreaker; @@ -1219,8 +1173,7 @@ remote_rdp_open (args, from_tty) /* Close out all files and local state before this target loses control. */ static void -remote_rdp_close (quitting) - int quitting; +remote_rdp_close (int quitting) { callback->shutdown (callback); if (io) @@ -1234,9 +1187,7 @@ remote_rdp_close (quitting) to the target, or zero for no signal. */ static void -remote_rdp_resume (pid, step, siggnal) - int pid, step; - enum target_signal siggnal; +remote_rdp_resume (int pid, int step, enum target_signal siggnal) { if (step) rdp_step (); @@ -1249,9 +1200,7 @@ remote_rdp_resume (pid, step, siggnal) just as `wait' would. */ static int -remote_rdp_wait (pid, status) - int pid; - struct target_waitstatus *status; +remote_rdp_wait (int pid, struct target_waitstatus *status) { switch (ds.rdi_stopped_status) { @@ -1287,18 +1236,22 @@ remote_rdp_wait (pid, status) debugged. */ static void -remote_rdp_prepare_to_store () +remote_rdp_prepare_to_store (void) { /* Do nothing, since we can store individual regs */ } +/* 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 -remote_rdp_xfer_inferior_memory (memaddr, myaddr, len, write, target) - CORE_ADDR memaddr; - char *myaddr; - int len; - int write; - struct target_ops *target; /* ignored */ +remote_rdp_xfer_inferior_memory (CORE_ADDR memaddr, char *myaddr, int len, + int write, + struct mem_attrib *attrib ATTRIBUTE_UNUSED, + struct target_ops *target ATTRIBUTE_UNUSED) { /* I infer from D Taylor's code that there's a limit on the amount we can transfer in one chunk.. */ @@ -1363,9 +1316,7 @@ static struct yn breakinfo[] = static void -dump_bits (t, info) - struct yn *t; - int info; +dump_bits (struct yn *t, int info) { while (t->name) { @@ -1375,8 +1326,7 @@ dump_bits (t, info) } static void -remote_rdp_files_info (target) - struct target_ops *target; +remote_rdp_files_info (struct target_ops *target) { printf_filtered ("Target capabilities:\n"); dump_bits (stepinfo, ds.step_info); @@ -1386,10 +1336,7 @@ remote_rdp_files_info (target) static void -remote_rdp_create_inferior (exec_file, allargs, env) - char *exec_file; - char *allargs; - char **env; +remote_rdp_create_inferior (char *exec_file, char *allargs, char **env) { CORE_ADDR entry_point; @@ -1419,16 +1366,14 @@ remote_rdp_create_inferior (exec_file, allargs, env) /* Accept any stray run/attach commands */ static int -remote_rdp_can_run () +remote_rdp_can_run (void) { return 1; } /* Attach doesn't need to do anything */ static void -remote_rdp_attach (args, from_tty) - char *args; - int from_tty; +remote_rdp_attach (char *args, int from_tty) { return; } @@ -1506,7 +1451,7 @@ init_remote_rdp_ops (void) } void -_initialize_remote_rdp () +_initialize_remote_rdp (void) { init_remote_rdp_ops (); add_target (&remote_rdp_ops);