X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fremote-m32r-sdi.c;h=02a812a769b1744ad14ea24e8ce28c06ae939943;hb=2117c711ae07700adb57ea5b5ca61e4c32d7e3d2;hp=f0c7cba2a7efdac6a43fa9c86cb8d1d1aadde116;hpb=520b0001c16bc59223bec1369d056787c1883f10;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/remote-m32r-sdi.c b/gdb/remote-m32r-sdi.c index f0c7cba2a7..02a812a769 100644 --- a/gdb/remote-m32r-sdi.c +++ b/gdb/remote-m32r-sdi.c @@ -1,6 +1,6 @@ /* Remote debugging interface for M32R/SDI. - Copyright (C) 2003-2012 Free Software Foundation, Inc. + Copyright (C) 2003-2014 Free Software Foundation, Inc. Contributed by Renesas Technology Co. Written by Kei Sakamoto . @@ -26,7 +26,7 @@ #include "inferior.h" #include "target.h" #include "regcache.h" -#include "gdb_string.h" +#include #include "gdbthread.h" #include #include @@ -37,10 +37,9 @@ #endif #include #include -#include #include #include "gdb_bfd.h" - +#include "cli/cli-utils.h" #include "serial.h" @@ -376,14 +375,14 @@ m32r_open (char *args, int from_tty) push_target (&m32r_ops); if (args == NULL) - sprintf (hostname, "localhost:%d", SDIPORT); + xsnprintf (hostname, sizeof (hostname), "localhost:%d", SDIPORT); else { port_str = strchr (args, ':'); if (port_str == NULL) - sprintf (hostname, "%s:%d", args, SDIPORT); + xsnprintf (hostname, sizeof (hostname), "%s:%d", args, SDIPORT); else - strcpy (hostname, args); + xsnprintf (hostname, sizeof (hostname), "%s", args); } sdi_desc = serial_open (hostname); @@ -430,10 +429,10 @@ m32r_open (char *args, int from_tty) /* Close out all files and local state before this target loses control. */ static void -m32r_close (int quitting) +m32r_close (struct target_ops *self) { if (remote_debug) - fprintf_unfiltered (gdb_stdlog, "m32r_close(%d)\n", quitting); + fprintf_unfiltered (gdb_stdlog, "m32r_close()\n"); if (sdi_desc) { @@ -487,7 +486,7 @@ m32r_resume (struct target_ops *ops, else { buf[0] = SDI_WRITE_MEMORY; - if (gdbarch_byte_order (target_gdbarch) == BFD_ENDIAN_BIG) + if (gdbarch_byte_order (target_gdbarch ()) == BFD_ENDIAN_BIG) store_long_parameter (buf + 1, pc_addr); else store_long_parameter (buf + 1, pc_addr - 1); @@ -527,7 +526,7 @@ m32r_resume (struct target_ops *ops, continue; /* Set PBP. */ - if (gdbarch_byte_order (target_gdbarch) == BFD_ENDIAN_BIG) + if (gdbarch_byte_order (target_gdbarch ()) == BFD_ENDIAN_BIG) send_three_arg_cmd (SDI_WRITE_MEMORY, 0xffff8000 + 4 * i, 4, 0x00000006); else @@ -554,7 +553,7 @@ m32r_resume (struct target_ops *ops, store_long_parameter (buf + 5, 4); if ((bp_addr & 2) == 0 && bp_addr != (pc_addr & 0xfffffffc)) { - if (gdbarch_byte_order (target_gdbarch) == BFD_ENDIAN_BIG) + if (gdbarch_byte_order (target_gdbarch ()) == BFD_ENDIAN_BIG) { buf[9] = dbt_bp_entry[0]; buf[10] = dbt_bp_entry[1]; @@ -571,7 +570,7 @@ m32r_resume (struct target_ops *ops, } else { - if (gdbarch_byte_order (target_gdbarch) == BFD_ENDIAN_BIG) + if (gdbarch_byte_order (target_gdbarch ()) == BFD_ENDIAN_BIG) { if ((bp_addr & 2) == 0) { @@ -618,7 +617,7 @@ m32r_resume (struct target_ops *ops, continue; /* DBC register. */ - if (gdbarch_byte_order (target_gdbarch) == BFD_ENDIAN_BIG) + if (gdbarch_byte_order (target_gdbarch ()) == BFD_ENDIAN_BIG) { switch (ab_type[i]) { @@ -760,7 +759,7 @@ m32r_wait (struct target_ops *ops, if (last_pc_addr != 0xffffffff) { buf[0] = SDI_WRITE_MEMORY; - if (gdbarch_byte_order (target_gdbarch) == BFD_ENDIAN_BIG) + if (gdbarch_byte_order (target_gdbarch ()) == BFD_ENDIAN_BIG) store_long_parameter (buf + 1, last_pc_addr); else store_long_parameter (buf + 1, last_pc_addr - 1); @@ -789,7 +788,7 @@ m32r_wait (struct target_ops *ops, address, we have to take care of it later. */ if ((pc_addr & 0x2) != 0) { - if (gdbarch_byte_order (target_gdbarch) == BFD_ENDIAN_BIG) + if (gdbarch_byte_order (target_gdbarch ()) == BFD_ENDIAN_BIG) { if ((bp_data[i][2] & 0x80) != 0) { @@ -851,7 +850,7 @@ m32r_wait (struct target_ops *ops, c = serial_readchar (sdi_desc, SDI_TIMEOUT); if (c != '-' && recv_data (buf, 4) != -1) { - if (gdbarch_byte_order (target_gdbarch) == BFD_ENDIAN_BIG) + if (gdbarch_byte_order (target_gdbarch ()) == BFD_ENDIAN_BIG) { if ((buf[3] & 0x1) == 0x1) hit_watchpoint_addr = ab_address[i]; @@ -878,7 +877,7 @@ m32r_wait (struct target_ops *ops, Use this when you want to detach and do something else with your gdb. */ static void -m32r_detach (struct target_ops *ops, char *args, int from_tty) +m32r_detach (struct target_ops *ops, const char *args, int from_tty) { if (remote_debug) fprintf_unfiltered (gdb_stdlog, "m32r_detach(%d)\n", from_tty); @@ -886,7 +885,7 @@ m32r_detach (struct target_ops *ops, char *args, int from_tty) m32r_resume (ops, inferior_ptid, 0, GDB_SIGNAL_0); /* Calls m32r_close to do the real work. */ - pop_target (); + unpush_target (ops); if (from_tty) fprintf_unfiltered (gdb_stdlog, "Ending remote %s debugging\n", target_shortname); @@ -933,7 +932,7 @@ m32r_fetch_register (struct target_ops *ops, } else { - char buffer[MAX_REGISTER_SIZE]; + gdb_byte buffer[MAX_REGISTER_SIZE]; regid = get_reg_id (regno); send_one_arg_cmd (SDI_READ_CPU_REG, regid); @@ -1013,7 +1012,7 @@ m32r_store_register (struct target_ops *ops, debugged. */ static void -m32r_prepare_to_store (struct regcache *regcache) +m32r_prepare_to_store (struct target_ops *self, struct regcache *regcache) { /* Do nothing, since we can store individual regs. */ if (remote_debug) @@ -1055,10 +1054,10 @@ m32r_xfer_memory (CORE_ADDR memaddr, gdb_byte *myaddr, int len, { if (write) fprintf_unfiltered (gdb_stdlog, "m32r_xfer_memory(%s,%d,write)\n", - paddress (target_gdbarch, memaddr), len); + paddress (target_gdbarch (), memaddr), len); else fprintf_unfiltered (gdb_stdlog, "m32r_xfer_memory(%s,%d,read)\n", - paddress (target_gdbarch, memaddr), len); + paddress (target_gdbarch (), memaddr), len); } if (write) @@ -1145,7 +1144,8 @@ m32r_mourn_inferior (struct target_ops *ops) } static int -m32r_insert_breakpoint (struct gdbarch *gdbarch, +m32r_insert_breakpoint (struct target_ops *ops, + struct gdbarch *gdbarch, struct bp_target_info *bp_tgt) { CORE_ADDR addr = bp_tgt->placed_address; @@ -1189,7 +1189,8 @@ m32r_insert_breakpoint (struct gdbarch *gdbarch, } static int -m32r_remove_breakpoint (struct gdbarch *gdbarch, +m32r_remove_breakpoint (struct target_ops *ops, + struct gdbarch *gdbarch, struct bp_target_info *bp_tgt) { CORE_ADDR addr = bp_tgt->placed_address; @@ -1212,7 +1213,7 @@ m32r_remove_breakpoint (struct gdbarch *gdbarch, } static void -m32r_load (char *args, int from_tty) +m32r_load (struct target_ops *self, char *args, int from_tty) { struct cleanup *old_chain; asection *section; @@ -1234,8 +1235,7 @@ m32r_load (char *args, int from_tty) { char *arg; - while (isspace (*args)) - args++; + args = skip_spaces (args); arg = args; @@ -1258,8 +1258,7 @@ m32r_load (char *args, int from_tty) if (!filename) filename = get_exec_file (1); - pbfd = bfd_openr (filename, gnutarget); - gdb_bfd_ref (pbfd); + pbfd = gdb_bfd_open (filename, gnutarget, -1); if (pbfd == NULL) { perror_with_name (filename); @@ -1392,7 +1391,7 @@ m32r_load (char *args, int from_tty) } static void -m32r_stop (ptid_t ptid) +m32r_stop (struct target_ops *self, ptid_t ptid) { if (remote_debug) fprintf_unfiltered (gdb_stdlog, "m32r_stop()\n"); @@ -1408,7 +1407,8 @@ m32r_stop (ptid_t ptid) implements the target_can_use_hardware_watchpoint macro. */ static int -m32r_can_use_hw_watchpoint (int type, int cnt, int othertype) +m32r_can_use_hw_watchpoint (struct target_ops *self, + int type, int cnt, int othertype) { return sdi_desc != NULL && cnt < max_access_breaks; } @@ -1418,14 +1418,15 @@ m32r_can_use_hw_watchpoint (int type, int cnt, int othertype) watchpoint. */ static int -m32r_insert_watchpoint (CORE_ADDR addr, int len, int type, +m32r_insert_watchpoint (struct target_ops *self, + CORE_ADDR addr, int len, int type, struct expression *cond) { int i; if (remote_debug) fprintf_unfiltered (gdb_stdlog, "m32r_insert_watchpoint(%s,%d,%d)\n", - paddress (target_gdbarch, addr), len, type); + paddress (target_gdbarch (), addr), len, type); for (i = 0; i < MAX_ACCESS_BREAKS; i++) { @@ -1443,14 +1444,15 @@ m32r_insert_watchpoint (CORE_ADDR addr, int len, int type, } static int -m32r_remove_watchpoint (CORE_ADDR addr, int len, int type, +m32r_remove_watchpoint (struct target_ops *self, + CORE_ADDR addr, int len, int type, struct expression *cond) { int i; if (remote_debug) fprintf_unfiltered (gdb_stdlog, "m32r_remove_watchpoint(%s,%d,%d)\n", - paddress (target_gdbarch, addr), len, type); + paddress (target_gdbarch (), addr), len, type); for (i = 0; i < MAX_ACCESS_BREAKS; i++) { @@ -1478,7 +1480,7 @@ m32r_stopped_data_address (struct target_ops *target, CORE_ADDR *addr_p) } static int -m32r_stopped_by_watchpoint (void) +m32r_stopped_by_watchpoint (struct target_ops *ops) { CORE_ADDR addr;