This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[m32c sim] fix raw console logic


Fixed raw console logic.  Applied.

2008-06-16  DJ Delorie  <dj@redhat.com>

	* m32c.opc (BRK, GDBBRK): Remove debug logic.
	* main.c (main): Add option to set raw console.
	* mem.h (m32c_use_raw_console): Declare.
	* mem.c (m32c_sim_restore_console): Only restore console if it's
	been previously set.
	(m32c_use_raw_console): Define.
	(mem_get_byte): Set raw console if m32c_use_raw_console is set.

Index: m32c.opc
===================================================================
RCS file: /cvs/src/src/sim/m32c/m32c.opc,v
retrieving revision 1.5
retrieving revision 1.6
diff -p -U3 -r1.5 -r1.6
--- m32c.opc	6 Jun 2008 19:18:14 -0000	1.5
+++ m32c.opc	17 Jun 2008 00:34:37 -0000	1.6
@@ -680,7 +680,7 @@ next_opcode:
   /* We report the break to our caller with the PC still pointing at the 
      breakpoint instruction.  */
   put_reg (pc, m32c_opcode_pc);
-  if (verbose || 1)
+  if (verbose)
     printf("[break]\n");
   if (in_gdb || (regs.r_intbl == 0 && regs.r_intbh == 0))
     return M32C_MAKE_HIT_BREAK ();
@@ -700,7 +700,7 @@ next_opcode:
   /* We report the break to our caller with the PC still pointing at the 
      breakpoint instruction.  */
   put_reg (pc, m32c_opcode_pc);
-  if (verbose || 1)
+  if (verbose)
     printf("[gdb break]\n");
   return M32C_MAKE_HIT_BREAK ();
 
Index: main.c
===================================================================
RCS file: /cvs/src/src/sim/m32c/main.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -p -U3 -r1.5 -r1.6
--- main.c	6 Jun 2008 19:18:15 -0000	1.5
+++ main.c	17 Jun 2008 00:34:37 -0000	1.6
@@ -122,7 +122,7 @@ main (int argc, char **argv)
 
   in_gdb = 0;
 
-  while ((o = getopt (argc, argv, "tc:vdm:")) != -1)
+  while ((o = getopt (argc, argv, "tc:vdm:C")) != -1)
     switch (o)
       {
       case 't':
@@ -131,6 +131,9 @@ main (int argc, char **argv)
       case 'c':
 	console_port_s = optarg;
 	break;
+      case 'C':
+	m32c_use_raw_console = 1;
+	break;
       case 'v':
 	verbose++;
 	break;
@@ -151,7 +154,7 @@ main (int argc, char **argv)
 	break;
       case '?':
 	fprintf (stderr,
-		 "usage: run [-v] [-t] [-d] [-m r8c|m16c|m32cm|m32c]"
+		 "usage: run [-v] [-C] [-c port] [-t] [-d] [-m r8c|m16c|m32cm|m32c]"
 		 " program\n");
 	exit (1);
       }
Index: mem.c
===================================================================
RCS file: /cvs/src/src/sim/m32c/mem.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -p -U3 -r1.7 -r1.8
--- mem.c	6 Jun 2008 19:26:10 -0000	1.7
+++ mem.c	17 Jun 2008 00:34:37 -0000	1.8
@@ -50,6 +50,7 @@ static unsigned char **pt[L1_LEN];
 
 int m32c_console_ifd = 0;
 int m32c_console_ofd = 1;
+int m32c_use_raw_console = 0;
 
 #ifdef TIMER_A
 Timer_A timer_a;
@@ -394,7 +395,8 @@ stdin_ready ()
 void
 m32c_sim_restore_console ()
 {
-  tcsetattr (m32c_console_ifd, TCSANOW, &oattr);
+  if (console_raw)
+    tcsetattr (m32c_console_ifd, TCSANOW, &oattr);
   console_raw = 0;
 }
 
@@ -409,9 +411,9 @@ mem_get_byte (int address)
     case 0x2ed:		/* m32c uart1c1 */
     case 0x3ad:		/* m16c uart1c1 */
 
-#if 0
-      if (!console_raw)
+      if (!console_raw && m32c_use_raw_console)
 	{
+	  struct termios attr;
 	  tcgetattr (m32c_console_ifd, &attr);
 	  tcgetattr (m32c_console_ifd, &oattr);
 	  /* We want each key to be sent as the user presses them.  */
@@ -420,7 +422,6 @@ mem_get_byte (int address)
 	  console_raw = 1;
 	  atexit (m32c_sim_restore_console);
 	}
-#endif
 
       if (stdin_ready ())
 	return 0x02;		/* tx empty and rx full */
Index: mem.h
===================================================================
RCS file: /cvs/src/src/sim/m32c/mem.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -p -U3 -r1.5 -r1.6
--- mem.h	6 Jun 2008 19:26:10 -0000	1.5
+++ mem.h	17 Jun 2008 00:34:37 -0000	1.6
@@ -41,3 +41,5 @@ void mem_get_blk (int address, void *buf
 int sign_ext (int v, int bits);
 
 void m32c_sim_restore_console ();
+
+extern int m32c_use_raw_console;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]