Use the one remaining free termios control character slot for a tty
authorMatthew Dillon <dillon@dragonflybsd.org>
Mon, 13 Oct 2003 21:08:50 +0000 (21:08 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Mon, 13 Oct 2003 21:08:50 +0000 (21:08 +0000)
checkpoint capability, which defaults to ^E and sends the SIGCKPT signal.

sys/emulation/ibcs2/i386/ibcs2_ioctl.c
sys/kern/tty.c
sys/sys/termios.h
sys/sys/ttydefaults.h

index d3ade26..62376f3 100644 (file)
@@ -26,7 +26,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/i386/ibcs2/ibcs2_ioctl.c,v 1.13.2.1 2001/07/31 20:14:21 jon Exp $
- * $DragonFly: src/sys/emulation/ibcs2/i386/Attic/ibcs2_ioctl.c,v 1.7 2003/08/27 06:30:03 rob Exp $
+ * $DragonFly: src/sys/emulation/ibcs2/i386/Attic/ibcs2_ioctl.c,v 1.8 2003/10/13 21:08:46 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -218,6 +218,7 @@ stios2btios(st, bt)
        bt->c_cc[VWERASE]  = _POSIX_VDISABLE;
        bt->c_cc[VLNEXT]   = _POSIX_VDISABLE;
        bt->c_cc[VSTATUS]  = _POSIX_VDISABLE;
+       bt->c_cc[VCHECKPT]  = _POSIX_VDISABLE;
 }
 
 static void
index f61a080..084e14a 100644 (file)
@@ -37,7 +37,7 @@
  *
  *     @(#)tty.c       8.8 (Berkeley) 1/21/94
  * $FreeBSD: src/sys/kern/tty.c,v 1.129.2.5 2002/03/11 01:32:31 dd Exp $
- * $DragonFly: src/sys/kern/tty.c,v 1.7 2003/08/26 21:09:02 rob Exp $
+ * $DragonFly: src/sys/kern/tty.c,v 1.8 2003/10/13 21:08:48 dillon Exp $
  */
 
 /*-
@@ -531,6 +531,11 @@ parmrk:
                                ttyinfo(tp);
                        goto endcase;
                }
+               if (CCEQ(cc[VCHECKPT], c) && ISSET(lflag, IEXTEN)) {
+                       if (ISSET(lflag, ISIG))
+                               pgsignal(tp->t_pgrp, SIGCKPT, 1);
+                       goto endcase;
+               }
        }
        /*
         * Check for input buffer overflow
index 538640f..3043566 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)termios.h   8.3 (Berkeley) 3/28/94
  * $FreeBSD: src/sys/sys/termios.h,v 1.13.2.1 2001/03/06 06:31:44 jhb Exp $
- * $DragonFly: src/sys/sys/termios.h,v 1.3 2003/08/20 07:31:21 rob Exp $
+ * $DragonFly: src/sys/sys/termios.h,v 1.4 2003/10/13 21:08:50 dillon Exp $
  */
 
 #ifndef _SYS_TERMIOS_H_
@@ -59,7 +59,6 @@
 #define        VREPRINT        6       /* ICANON together with IEXTEN */
 #define VERASE2        7       /* ICANON */
 #endif
-/*                     7          ex-spare 1 */
 #define VINTR          8       /* ISIG */
 #define VQUIT          9       /* ISIG */
 #define VSUSP          10      /* ISIG */
@@ -76,7 +75,7 @@
 #define VTIME          17      /* !ICANON */
 #ifndef _POSIX_SOURCE
 #define VSTATUS                18      /* ICANON together with IEXTEN */
-/*                     19         spare 2 */
+#define VCHECKPT       19      /* ICANON together with IEXTEN */
 #endif
 #define        NCCS            20
 
index 7d16fd9..e14cf77 100644 (file)
@@ -37,7 +37,7 @@
  *
  *     @(#)ttydefaults.h       8.4 (Berkeley) 1/21/94
  * $FreeBSD: src/sys/sys/ttydefaults.h,v 1.13.2.1 2001/03/06 03:37:08 jkh Exp $
- * $DragonFly: src/sys/sys/ttydefaults.h,v 1.2 2003/06/17 04:28:59 dillon Exp $
+ * $DragonFly: src/sys/sys/ttydefaults.h,v 1.3 2003/10/13 21:08:50 dillon Exp $
  */
 
 /*
@@ -59,6 +59,7 @@
  * Control Character Defaults
  */
 #define CTRL(x)        (x&037)
+#define CCHECKPT       CTRL('e')
 #define        CEOF            CTRL('d')
 #define        CEOL            0xff            /* XXX avoid _POSIX_VDISABLE */
 #define        CERASE          0177