From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20486 invoked by alias); 30 Mar 2007 11:55:08 -0000 Received: (qmail 20467 invoked by uid 22791); 30 Mar 2007 11:55:07 -0000 X-Spam-Check-By: sourceware.org Received: from dmz.mips-uk.com (HELO dmz.mips-uk.com) (194.74.144.194) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 30 Mar 2007 12:54:59 +0100 Received: from internal-mx1 ([192.168.192.240] helo=ukservices1.mips.com) by dmz.mips-uk.com with esmtp (Exim 3.35 #1 (Debian)) id 1HXFh3-0005EG-00; Fri, 30 Mar 2007 12:54:57 +0100 Received: from perivale.mips.com ([192.168.192.200]) by ukservices1.mips.com with esmtp (Exim 3.36 #1 (Debian)) id 1HXFgw-0005Ot-00; Fri, 30 Mar 2007 12:54:50 +0100 Received: from macro (helo=localhost) by perivale.mips.com with local-esmtp (Exim 4.63) (envelope-from ) id 1HXFgw-0005VX-6f; Fri, 30 Mar 2007 12:54:50 +0100 Date: Fri, 30 Mar 2007 11:55:00 -0000 From: "Maciej W. Rozycki" To: gdb-patches@sourceware.org cc: Chris Dearman , "Maciej W. Rozycki" Subject: ser-unix.c: Add hardware flow control support Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-MIPS-Technologies-UK-MailScanner: Found to be clean X-MIPS-Technologies-UK-MailScanner-From: macro@mips.com Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2007-03/txt/msg00345.txt.bz2 Hello, This is a set of changes to add hardware flow control support to the serial interface. 2007-03-30 Chris Dearman Maciej W. Rozycki * 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