Hi!

This implementation is compatible with Linux, BSD and most unixes I know
of.

This ioctl is necessary for devices connected to serial ports that need
the break condition on TxD line to be set permanently on.  This includes
popular electronics hobbyist devices like PIC microcontroller programmer
http://www.iki.fi/hyvatti/pic/picprog.html .

Index: winsup/cygwin/ChangeLog
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/ChangeLog,v
retrieving revision 1.2338
diff -u -r1.2338 ChangeLog
--- winsup/cygwin/ChangeLog     2 Mar 2004 13:07:47 -0000       1.2338
+++ winsup/cygwin/ChangeLog     3 Mar 2004 10:52:02 -0000
@@ -1,3 +1,8 @@
+2004-03-03  Jaakko Hyvatti  <[EMAIL PROTECTED]>
+
+       * fhandler_serial.cc (fhandler_serial::ioctl): Implement TIOCSBRK
+       and TIOCCBRK which set and clear break condition on serial TxD.
+
 2004-03-02  Corinna Vinschen  <[EMAIL PROTECTED]>

        * fhandler_raw.cc (fhandler_dev_raw::raw_read): When reading with
Index: winsup/cygwin/fhandler_serial.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/fhandler_serial.cc,v
retrieving revision 1.50
diff -u -r1.50 fhandler_serial.cc
--- winsup/cygwin/fhandler_serial.cc    9 Feb 2004 04:04:23 -0000       1.50
+++ winsup/cygwin/fhandler_serial.cc    3 Mar 2004 10:52:02 -0000
@@ -476,6 +476,20 @@
            res = -1;
          }
        break;
+      case TIOCCBRK:
+       if (ClearCommBreak (get_handle ()) == 0)
+         {
+           __seterrno ();
+           res = -1;
+         }
+       break;
+      case TIOCSBRK:
+       if (SetCommBreak (get_handle ()) == 0)
+         {
+           __seterrno ();
+           res = -1;
+         }
+       break;
      case TIOCINQ:
        if (ev & CE_FRAME || ev & CE_IOE || ev & CE_OVERRUN || ev & CE_RXOVER
           || ev & CE_RXPARITY)
Index: winsup/cygwin/include/sys/termios.h
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/include/sys/termios.h,v
retrieving revision 1.8
diff -u -r1.8 termios.h
--- winsup/cygwin/include/sys/termios.h 27 Sep 2003 02:36:50 -0000      1.8
+++ winsup/cygwin/include/sys/termios.h 3 Mar 2004 10:52:02 -0000
@@ -23,6 +23,8 @@
 effects of their work one can achive by standard
 POSIX commands */

+#define TIOCSBRK       0x5427
+#define TIOCCBRK       0x5428

 #define        TIOCM_DTR       0x002
 #define        TIOCM_RTS       0x004


-- 
[EMAIL PROTECTED]         http://www.iki.fi/hyvatti/        +358 40 5011222
echo 'movl $36,%eax;int $128;movl $0,%ebx;movl $1,%eax;int $128'|as -o/bin/sync
-- 
Foreca Ltd                                           [EMAIL PROTECTED]
Pursimiehenkatu 29-31 B, FIN-00150 Helsinki, Finland     http://www.foreca.com

Reply via email to