2006-12-31 H.J. Lu <hongjiu.lu@intel.com>
[deliverable/binutils-gdb.git] / gdb / remote-m32r-sdi.c
index 3019aac32fbc5c604604a0494d00481e88385219..b2033166de396e283e8879dafff14442561683cd 100644 (file)
@@ -1,6 +1,6 @@
 /* Remote debugging interface for M32R/SDI.
 
-   Copyright 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 
    Contributed by Renesas Technology Co.
    Written by Kei Sakamoto <sakamoto.kei@renesas.com>.
@@ -19,8 +19,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
 
 #include "defs.h"
 #include "gdbcmd.h"
 #include "gdb_string.h"
 #include <ctype.h>
 #include <signal.h>
+#ifdef __MINGW32__
+#include <winsock.h>
+#else
 #include <netinet/in.h>
+#endif
 #include <sys/types.h>
 #include <sys/time.h>
 #include <signal.h>
@@ -338,7 +342,7 @@ m32r_create_inferior (char *execfile, char *args, char **env, int from_tty)
   /* Install inferior's terminal modes.  */
   target_terminal_inferior ();
 
-  proceed (entry_pt, TARGET_SIGNAL_DEFAULT, 0);
+  write_pc (entry_pt);
 }
 
 /* Open a connection to a remote debugger.
@@ -534,7 +538,7 @@ m32r_resume (ptid_t ptid, int step, enum target_signal sig)
 
       /* Write DBT instruction. */
       buf[0] = SDI_WRITE_MEMORY;
-      store_long_parameter (buf + 1, bp_addr);
+      store_long_parameter (buf + 1, (bp_addr & 0xfffffffc));
       store_long_parameter (buf + 5, 4);
       if ((bp_addr & 2) == 0 && bp_addr != (pc_addr & 0xfffffffc))
        {
@@ -810,7 +814,7 @@ m32r_wait (ptid_t ptid, struct target_waitstatus *status)
        {
          if (!mmu_on)
            bp_addr &= 0x7fffffff;
-         buf[0] = SDI_READ_MEMORY;
+         buf[0] = SDI_WRITE_MEMORY;
          store_long_parameter (buf + 1, bp_addr & 0xfffffffc);
          store_long_parameter (buf + 5, 4);
          buf[9] = bp_data[i][0];
@@ -1141,15 +1145,16 @@ m32r_mourn_inferior (void)
 }
 
 static int
-m32r_insert_breakpoint (CORE_ADDR addr, bfd_byte *shadow)
+m32r_insert_breakpoint (struct bp_target_info *bp_tgt)
 {
+  CORE_ADDR addr = bp_tgt->placed_address;
   int ib_breakpoints;
   unsigned char buf[13];
   int i, c;
 
   if (remote_debug)
-    fprintf_unfiltered (gdb_stdlog, "m32r_insert_breakpoint(%08lx,\"%s\")\n",
-                       addr, shadow);
+    fprintf_unfiltered (gdb_stdlog, "m32r_insert_breakpoint(%08lx,...)\n",
+                       addr);
 
   if (use_ib_breakpoints)
     ib_breakpoints = max_ib_breakpoints;
@@ -1183,13 +1188,14 @@ m32r_insert_breakpoint (CORE_ADDR addr, bfd_byte *shadow)
 }
 
 static int
-m32r_remove_breakpoint (CORE_ADDR addr, bfd_byte *shadow)
+m32r_remove_breakpoint (struct bp_target_info *bp_tgt)
 {
+  CORE_ADDR addr = bp_tgt->placed_address;
   int i;
 
   if (remote_debug)
-    fprintf_unfiltered (gdb_stdlog, "m32r_remove_breakpoint(%08lx,\"%s\")\n",
-                       addr, shadow);
+    fprintf_unfiltered (gdb_stdlog, "m32r_remove_breakpoint(%08lx)\n",
+                       addr);
 
   for (i = 0; i < MAX_BREAKPOINTS; i++)
     {
This page took 0.028023 seconds and 4 git commands to generate.