Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* ser-unix.c: Add hardware flow control support
@ 2007-03-30 11:55 Maciej W. Rozycki
  2007-03-30 12:08 ` Daniel Jacobowitz
  2007-03-30 12:26 ` Eli Zaretskii
  0 siblings, 2 replies; 8+ messages in thread
From: Maciej W. Rozycki @ 2007-03-30 11:55 UTC (permalink / raw)
  To: gdb-patches; +Cc: Chris Dearman, Maciej W. Rozycki

Hello,

 This is a set of changes to add hardware flow control support to the 
serial interface.

2007-03-30  Chris Dearman  <chris@mips.com>
            Maciej W. Rozycki  <macro@mips.com>

	* ser-unix.c (show_serial_hwflow): New function.
	(hardwire_raw): Add hardware flow control support.
	(_initialize_ser_hardwire): Add set/show remoteflow.

 OK to apply?

  Maciej

12226-0.diff
Index: binutils-quilt/src/gdb/ser-unix.c
===================================================================
--- binutils-quilt.orig/src/gdb/ser-unix.c	2007-03-30 12:36:15.000000000 +0100
+++ binutils-quilt/src/gdb/ser-unix.c	2007-03-30 12:42:31.000000000 +0100
@@ -33,6 +33,7 @@
 
 #include "gdb_select.h"
 #include "gdb_string.h"
+#include "gdbcmd.h"
 
 #ifdef HAVE_TERMIOS
 
@@ -40,6 +41,18 @@
   {
     struct termios termios;
   };
+
+#ifdef CRTSCTS
+/* Boolean to explicitly enable or disable h/w flow control.  */
+static int serial_hwflow;
+static void
+show_serial_hwflow (struct ui_file *file, int from_tty,
+		    struct cmd_list_element *c, const char *value)
+{
+  fprintf_filtered (file, _("Hardware flow control is %s.\n"), value);
+}
+#endif
+
 #endif /* termios */
 
 #ifdef HAVE_TERMIO
@@ -387,6 +400,19 @@
   state.termios.c_lflag = 0;
   state.termios.c_cflag &= ~(CSIZE | PARENB);
   state.termios.c_cflag |= CLOCAL | CS8;
+#ifdef CRTSCTS
+  /* h/w flow control.  */
+  if (serial_hwflow)
+    state.termios.c_cflag |= CRTSCTS;
+  else
+    state.termios.c_cflag &= ~CRTSCTS;
+#ifdef CRTS_IFLOW
+  if (serial_hwflow)
+    state.termios.c_cflag |= CRTS_IFLOW;
+  else
+    state.termios.c_cflag &= ~CRTS_IFLOW;
+#endif
+#endif
   state.termios.c_cc[VMIN] = 0;
   state.termios.c_cc[VTIME] = 0;
 #endif
@@ -892,6 +918,20 @@
   ops->read_prim = ser_unix_read_prim;
   ops->write_prim = ser_unix_write_prim;
   serial_add_interface (ops);
+
+#ifdef HAVE_TERMIOS
+#ifdef CRTSCTS
+  add_setshow_boolean_cmd ("remoteflow", no_class,
+			   &serial_hwflow, _("\
+Set use of hardware flow control for remote serial I/O."), _("\
+Show use of hardware flow control for remote serial I/O."), _("\
+This value is used to enable or disable hardware flow control (RTS/CTS) on\n\
+the serial port when debugging using remote targets."),
+			   NULL,
+			   show_serial_hwflow,
+			   &setlist, &showlist);
+#endif
+#endif
 }
 
 int


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ser-unix.c: Add hardware flow control support
  2007-03-30 11:55 ser-unix.c: Add hardware flow control support Maciej W. Rozycki
@ 2007-03-30 12:08 ` Daniel Jacobowitz
  2007-05-02 14:11   ` Maciej W. Rozycki
  2007-03-30 12:26 ` Eli Zaretskii
  1 sibling, 1 reply; 8+ messages in thread
From: Daniel Jacobowitz @ 2007-03-30 12:08 UTC (permalink / raw)
  To: Maciej W. Rozycki; +Cc: gdb-patches, Chris Dearman, Maciej W. Rozycki

On Fri, Mar 30, 2007 at 12:54:50PM +0100, Maciej W. Rozycki wrote:
> Hello,
> 
>  This is a set of changes to add hardware flow control support to the 
> serial interface.
> 
> 2007-03-30  Chris Dearman  <chris@mips.com>
>             Maciej W. Rozycki  <macro@mips.com>
> 
> 	* ser-unix.c (show_serial_hwflow): New function.
> 	(hardwire_raw): Add hardware flow control support.
> 	(_initialize_ser_hardwire): Add set/show remoteflow.
> 
>  OK to apply?

At a minimum this will require documentation for the new command line
option; I would also recomend a NEWS entry.  Oh, and you added a
#include, so you need a Makefile update too.

I noticed while looking for the right place to put the option that we
have an empty "set serial".  Perhaps it should go under that instead.
No strong preference.

-- 
Daniel Jacobowitz
CodeSourcery


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ser-unix.c: Add hardware flow control support
  2007-03-30 11:55 ser-unix.c: Add hardware flow control support Maciej W. Rozycki
  2007-03-30 12:08 ` Daniel Jacobowitz
@ 2007-03-30 12:26 ` Eli Zaretskii
  1 sibling, 0 replies; 8+ messages in thread
From: Eli Zaretskii @ 2007-03-30 12:26 UTC (permalink / raw)
  To: Maciej W. Rozycki; +Cc: gdb-patches, chris, macro

> Date: Fri, 30 Mar 2007 12:54:50 +0100 (BST)
> From: "Maciej W. Rozycki" <macro@mips.com>
> cc: Chris Dearman <chris@mips.com>, "Maciej W. Rozycki" <macro@linux-mips.org>
> 
> 2007-03-30  Chris Dearman  <chris@mips.com>
>             Maciej W. Rozycki  <macro@mips.com>
> 
> 	* ser-unix.c (show_serial_hwflow): New function.
> 	(hardwire_raw): Add hardware flow control support.
> 	(_initialize_ser_hardwire): Add set/show remoteflow.
> 
>  OK to apply?

Not without a corresponding change to the manual that describes this
new command.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ser-unix.c: Add hardware flow control support
  2007-03-30 12:08 ` Daniel Jacobowitz
@ 2007-05-02 14:11   ` Maciej W. Rozycki
  2007-05-21 12:22     ` Maciej W. Rozycki
  0 siblings, 1 reply; 8+ messages in thread
From: Maciej W. Rozycki @ 2007-05-02 14:11 UTC (permalink / raw)
  To: Daniel Jacobowitz; +Cc: gdb-patches, Chris Dearman, Maciej W. Rozycki

On Fri, 30 Mar 2007, Daniel Jacobowitz wrote:

> I noticed while looking for the right place to put the option that we
> have an empty "set serial".  Perhaps it should go under that instead.
> No strong preference.

 Well, we have "set remotebaud", which is at the top-level as well.  And 
which actually raises a question as to whether "set remoteflow" should not 
be handled through "struct serial_ops" too?  This way other serial 
interfaces would have a chance to handle the option as well if somebody 
cared.

 Any opinions?

  Maciej


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ser-unix.c: Add hardware flow control support
  2007-05-02 14:11   ` Maciej W. Rozycki
@ 2007-05-21 12:22     ` Maciej W. Rozycki
  2007-05-21 12:50       ` Daniel Jacobowitz
  2007-05-21 20:08       ` Eli Zaretskii
  0 siblings, 2 replies; 8+ messages in thread
From: Maciej W. Rozycki @ 2007-05-21 12:22 UTC (permalink / raw)
  To: Daniel Jacobowitz; +Cc: gdb-patches, Chris Dearman, Maciej W. Rozycki

On Wed, 2 May 2007, Maciej W. Rozycki wrote:

> > I noticed while looking for the right place to put the option that we
> > have an empty "set serial".  Perhaps it should go under that instead.
> > No strong preference.
> 
>  Well, we have "set remotebaud", which is at the top-level as well.  And 
> which actually raises a question as to whether "set remoteflow" should not 
> be handled through "struct serial_ops" too?  This way other serial 
> interfaces would have a chance to handle the option as well if somebody 
> cared.
> 
>  Any opinions?

 OK, I gather there is no potential interest in platform-independent 
approach at the moment, so I guess it may be implemented based on 
ser-unix.c if a need arises.  Here is my current version of the patch.

gdb/:
2007-05-21  Chris Dearman  <chris@mips.com>
            Maciej W. Rozycki  <macro@mips.com>

	* ser-unix.c (show_serial_hwflow): New function.
	(hardwire_raw): Add hardware flow control support.
	(_initialize_ser_hardwire): Add "set/show remoteflow".
	* Makefile.in (ser-unix.o): Depend on $(gdbcmd_h).
	* NEWS: Document the new command.

gdb/doc/:
2007-05-21  Maciej W. Rozycki  <macro@mips.com>

	* gdb.texinfo (Remote Configuration): Document "set/show 
	remoteflow".

 OK to apply?

  Maciej

12226-0.diff
Index: binutils-quilt/src/gdb/ser-unix.c
===================================================================
--- binutils-quilt.orig/src/gdb/ser-unix.c	2007-04-03 16:38:07.000000000 +0100
+++ binutils-quilt/src/gdb/ser-unix.c	2007-04-03 16:49:52.000000000 +0100
@@ -33,6 +33,7 @@
 
 #include "gdb_select.h"
 #include "gdb_string.h"
+#include "gdbcmd.h"
 
 #ifdef HAVE_TERMIOS
 
@@ -40,6 +41,18 @@
   {
     struct termios termios;
   };
+
+#ifdef CRTSCTS
+/* Boolean to explicitly enable or disable h/w flow control.  */
+static int serial_hwflow;
+static void
+show_serial_hwflow (struct ui_file *file, int from_tty,
+		    struct cmd_list_element *c, const char *value)
+{
+  fprintf_filtered (file, _("Hardware flow control is %s.\n"), value);
+}
+#endif
+
 #endif /* termios */
 
 #ifdef HAVE_TERMIO
@@ -387,6 +400,19 @@
   state.termios.c_lflag = 0;
   state.termios.c_cflag &= ~(CSIZE | PARENB);
   state.termios.c_cflag |= CLOCAL | CS8;
+#ifdef CRTSCTS
+  /* h/w flow control.  */
+  if (serial_hwflow)
+    state.termios.c_cflag |= CRTSCTS;
+  else
+    state.termios.c_cflag &= ~CRTSCTS;
+#ifdef CRTS_IFLOW
+  if (serial_hwflow)
+    state.termios.c_cflag |= CRTS_IFLOW;
+  else
+    state.termios.c_cflag &= ~CRTS_IFLOW;
+#endif
+#endif
   state.termios.c_cc[VMIN] = 0;
   state.termios.c_cc[VTIME] = 0;
 #endif
@@ -892,6 +918,20 @@
   ops->read_prim = ser_unix_read_prim;
   ops->write_prim = ser_unix_write_prim;
   serial_add_interface (ops);
+
+#ifdef HAVE_TERMIOS
+#ifdef CRTSCTS
+  add_setshow_boolean_cmd ("remoteflow", no_class,
+			   &serial_hwflow, _("\
+Set use of hardware flow control for remote serial I/O."), _("\
+Show use of hardware flow control for remote serial I/O."), _("\
+Enable or disable hardware flow control (RTS/CTS) on the serial port\n\
+when debugging using remote targets."),
+			   NULL,
+			   show_serial_hwflow,
+			   &setlist, &showlist);
+#endif
+#endif
 }
 
 int
Index: binutils-quilt/src/gdb/Makefile.in
===================================================================
--- binutils-quilt.orig/src/gdb/Makefile.in	2007-04-03 16:38:53.000000000 +0100
+++ binutils-quilt/src/gdb/Makefile.in	2007-04-03 16:38:53.000000000 +0100
@@ -2595,7 +2595,7 @@
 ser-tcp.o: ser-tcp.c $(defs_h) $(serial_h) $(ser_base_h) $(ser_tcp_h) \
 	$(gdb_string_h)
 ser-unix.o: ser-unix.c $(defs_h) $(serial_h) $(ser_base_h) $(ser_unix_h) \
-	$(terminal_h) $(gdb_select_h) $(gdb_string_h)
+	$(terminal_h) $(gdb_select_h) $(gdb_string_h) $(gdbcmd_h)
 ser-mingw.o: ser-mingw.c $(defs_h) $(serial_h) $(ser_base_h) \
 	$(ser_tcp_h) $(gdb_assert_h) $(gdb_string_h)
 sh3-rom.o: sh3-rom.c $(defs_h) $(gdbcore_h) $(target_h) $(monitor_h) \
Index: binutils-quilt/src/gdb/NEWS
===================================================================
--- binutils-quilt.orig/src/gdb/NEWS	2007-04-02 13:25:25.000000000 +0100
+++ binutils-quilt/src/gdb/NEWS	2007-04-03 16:49:20.000000000 +0100
@@ -31,6 +31,11 @@
 
 * New commands
 
+set remoteflow
+show remoteflow
+  Enable or disable hardware flow control (RTS/CTS) on the serial port
+  when debugging using remote targets.
+
 set mem inaccessible-by-default
 show mem inaccessible-by-default
   If the target supplies a memory map, for instance via the remote
Index: binutils-quilt/src/gdb/doc/gdb.texinfo
===================================================================
--- binutils-quilt.orig/src/gdb/doc/gdb.texinfo	2007-04-03 16:38:05.000000000 +0100
+++ binutils-quilt/src/gdb/doc/gdb.texinfo	2007-04-03 17:05:24.000000000 +0100
@@ -12820,6 +12820,14 @@
 @item show remotedevice
 Show the current name of the serial port.
 
+@item set remoteflow on
+@itemx set remoteflow off
+Enable or disable hardware flow control (@code{RTS}/@code{CTS})
+on the serial port used to communicate to the remote target.
+
+@item show remoteflow
+Show the current setting of hardware flow control.
+
 @item set remotelogbase @var{base}
 Set the base (a.k.a.@: radix) of logging serial protocol
 communications to @var{base}.  Supported values of @var{base} are:


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ser-unix.c: Add hardware flow control support
  2007-05-21 12:22     ` Maciej W. Rozycki
@ 2007-05-21 12:50       ` Daniel Jacobowitz
  2007-05-21 20:08       ` Eli Zaretskii
  1 sibling, 0 replies; 8+ messages in thread
From: Daniel Jacobowitz @ 2007-05-21 12:50 UTC (permalink / raw)
  To: Maciej W. Rozycki, Eli Zaretskii
  Cc: gdb-patches, Chris Dearman, Maciej W. Rozycki

On Mon, May 21, 2007 at 01:21:51PM +0100, Maciej W. Rozycki wrote:
> On Wed, 2 May 2007, Maciej W. Rozycki wrote:
> 
> > > I noticed while looking for the right place to put the option that we
> > > have an empty "set serial".  Perhaps it should go under that instead.
> > > No strong preference.
> > 
> >  Well, we have "set remotebaud", which is at the top-level as well.  And 
> > which actually raises a question as to whether "set remoteflow" should not 
> > be handled through "struct serial_ops" too?  This way other serial 
> > interfaces would have a chance to handle the option as well if somebody 
> > cared.
> > 
> >  Any opinions?
> 
>  OK, I gather there is no potential interest in platform-independent 
> approach at the moment, so I guess it may be implemented based on 
> ser-unix.c if a need arises.  Here is my current version of the patch.

This is fine with me; Eli, are the documentation changes OK?

-- 
Daniel Jacobowitz
CodeSourcery


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ser-unix.c: Add hardware flow control support
  2007-05-21 12:22     ` Maciej W. Rozycki
  2007-05-21 12:50       ` Daniel Jacobowitz
@ 2007-05-21 20:08       ` Eli Zaretskii
  2007-05-22 10:57         ` Maciej W. Rozycki
  1 sibling, 1 reply; 8+ messages in thread
From: Eli Zaretskii @ 2007-05-21 20:08 UTC (permalink / raw)
  To: Maciej W. Rozycki; +Cc: drow, gdb-patches, chris, macro

> Date: Mon, 21 May 2007 13:21:51 +0100 (BST)
> From: "Maciej W. Rozycki" <macro@mips.com>
> cc: gdb-patches@sourceware.org, Chris Dearman <chris@mips.com>,      "Maciej W. Rozycki" <macro@linux-mips.org>
> 
> gdb/doc/:
> 2007-05-21  Maciej W. Rozycki  <macro@mips.com>
> 
> 	* gdb.texinfo (Remote Configuration): Document "set/show 
> 	remoteflow".

This part is fine, but please add a @kindex index entry for the new
command, as we do in general for every other.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: ser-unix.c: Add hardware flow control support
  2007-05-21 20:08       ` Eli Zaretskii
@ 2007-05-22 10:57         ` Maciej W. Rozycki
  0 siblings, 0 replies; 8+ messages in thread
From: Maciej W. Rozycki @ 2007-05-22 10:57 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: drow, gdb-patches, chris, macro

On Mon, 21 May 2007, Eli Zaretskii wrote:

> This part is fine, but please add a @kindex index entry for the new
> command, as we do in general for every other.

 OK, and this one happens to hit this rule?  Applied now with your 
suggested changes.

  Maciej


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2007-05-22 10:57 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-03-30 11:55 ser-unix.c: Add hardware flow control support Maciej W. Rozycki
2007-03-30 12:08 ` Daniel Jacobowitz
2007-05-02 14:11   ` Maciej W. Rozycki
2007-05-21 12:22     ` Maciej W. Rozycki
2007-05-21 12:50       ` Daniel Jacobowitz
2007-05-21 20:08       ` Eli Zaretskii
2007-05-22 10:57         ` Maciej W. Rozycki
2007-03-30 12:26 ` Eli Zaretskii

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox