From: "Maciej W. Rozycki" <macro@mips.com>
To: Daniel Jacobowitz <drow@false.org>
Cc: gdb-patches@sourceware.org, Chris Dearman <chris@mips.com>,
"Maciej W. Rozycki" <macro@linux-mips.org>
Subject: Re: ser-unix.c: Add hardware flow control support
Date: Mon, 21 May 2007 12:22:00 -0000 [thread overview]
Message-ID: <Pine.LNX.4.61.0705211303420.27238@perivale.mips.com> (raw)
In-Reply-To: <Pine.LNX.4.61.0705021502290.28428@perivale.mips.com>
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:
next prev parent reply other threads:[~2007-05-21 12:22 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-30 11:55 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 [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Pine.LNX.4.61.0705211303420.27238@perivale.mips.com \
--to=macro@mips.com \
--cc=chris@mips.com \
--cc=drow@false.org \
--cc=gdb-patches@sourceware.org \
--cc=macro@linux-mips.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox