* 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/:
* gdb.texinfo (Remote Configuration): Document "set/show
remoteflow".
+2007-05-22  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.
+
 2007-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * config/i386/tm-linux.h (sys_quotactl): Do not define.
 
 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)
 sh64-tdep.o: sh64-tdep.c $(defs_h) $(frame_h) $(frame_base_h) \
 
 
 * 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
 
+2007-05-22  Maciej W. Rozycki  <macro@mips.com>
+
+       * gdb.texinfo (Remote Configuration): Document "set/show
+       remoteflow".
+
 2007-05-16  Daniel Jacobowitz  <dan@codesourcery.com>
 
        * gdb.texinfo (MIPS): Remove documentation for set mips saved-gpreg-size,
 
 Show whether @value{GDBN} sends @code{BREAK} or @samp{Ctrl-C} to
 interrupt the remote program.
 
+@item set remoteflow on
+@itemx set remoteflow off
+@kindex set remoteflow
+Enable or disable hardware flow control (@code{RTS}/@code{CTS})
+on the serial port used to communicate to the remote target.
+
+@item show remoteflow
+@kindex 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:
 
 
 #include "gdb_select.h"
 #include "gdb_string.h"
+#include "gdbcmd.h"
 
 #ifdef HAVE_TERMIOS
 
   {
     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
   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
   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