xref: /dflybsd-src/crypto/openssh/ttymodes.h (revision ce74baca94b6dd2a80af6a625aba2cf14ab7fec8)
1ce74bacaSMatthew Dillon /* $OpenBSD: ttymodes.h,v 1.16 2017/04/30 23:26:54 djm Exp $ */
218de8d7fSPeter Avalos 
318de8d7fSPeter Avalos /*
418de8d7fSPeter Avalos  * Author: Tatu Ylonen <ylo@cs.hut.fi>
518de8d7fSPeter Avalos  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
618de8d7fSPeter Avalos  *                    All rights reserved
718de8d7fSPeter Avalos  *
818de8d7fSPeter Avalos  * As far as I am concerned, the code I have written for this software
918de8d7fSPeter Avalos  * can be used freely for any purpose.  Any derived versions of this
1018de8d7fSPeter Avalos  * software must be clearly marked as such, and if the derived work is
1118de8d7fSPeter Avalos  * incompatible with the protocol description in the RFC file, it must be
1218de8d7fSPeter Avalos  * called by a name other than "ssh" or "Secure Shell".
1318de8d7fSPeter Avalos  */
1418de8d7fSPeter Avalos 
1518de8d7fSPeter Avalos /*
1618de8d7fSPeter Avalos  * SSH2 tty modes support by Kevin Steves.
1718de8d7fSPeter Avalos  * Copyright (c) 2001 Kevin Steves.  All rights reserved.
1818de8d7fSPeter Avalos  *
1918de8d7fSPeter Avalos  * Redistribution and use in source and binary forms, with or without
2018de8d7fSPeter Avalos  * modification, are permitted provided that the following conditions
2118de8d7fSPeter Avalos  * are met:
2218de8d7fSPeter Avalos  * 1. Redistributions of source code must retain the above copyright
2318de8d7fSPeter Avalos  *    notice, this list of conditions and the following disclaimer.
2418de8d7fSPeter Avalos  * 2. Redistributions in binary form must reproduce the above copyright
2518de8d7fSPeter Avalos  *    notice, this list of conditions and the following disclaimer in the
2618de8d7fSPeter Avalos  *    documentation and/or other materials provided with the distribution.
2718de8d7fSPeter Avalos  *
2818de8d7fSPeter Avalos  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
2918de8d7fSPeter Avalos  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
3018de8d7fSPeter Avalos  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
3118de8d7fSPeter Avalos  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
3218de8d7fSPeter Avalos  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
3318de8d7fSPeter Avalos  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
3418de8d7fSPeter Avalos  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
3518de8d7fSPeter Avalos  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
3618de8d7fSPeter Avalos  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
3718de8d7fSPeter Avalos  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3818de8d7fSPeter Avalos  */
3918de8d7fSPeter Avalos 
4018de8d7fSPeter Avalos /*
41ce74bacaSMatthew Dillon  * The tty mode description is a string, consisting of
4218de8d7fSPeter Avalos  * opcode-arguments pairs.  It is terminated by opcode TTY_OP_END (0).
43ce74bacaSMatthew Dillon  * Opcodes 1-159 have uint32 arguments.
44ce74bacaSMatthew Dillon  * Opcodes 160-255 are not yet defined and cause parsing to stop (they
45ce74bacaSMatthew Dillon  * should only be used after any other data).
4618de8d7fSPeter Avalos  *
47ce74bacaSMatthew Dillon  * The client puts in the string any modes it knows about, and the
4818de8d7fSPeter Avalos  * server ignores any modes it does not know about.  This allows some degree
4918de8d7fSPeter Avalos  * of machine-independence, at least between systems that use a posix-like
5018de8d7fSPeter Avalos  * tty interface.  The protocol can support other systems as well, but might
5118de8d7fSPeter Avalos  * require reimplementing as mode names would likely be different.
5218de8d7fSPeter Avalos  */
5318de8d7fSPeter Avalos 
5418de8d7fSPeter Avalos /*
5518de8d7fSPeter Avalos  * Some constants and prototypes are defined in packet.h; this file
5618de8d7fSPeter Avalos  * is only intended for including from ttymodes.c.
5718de8d7fSPeter Avalos  */
5818de8d7fSPeter Avalos 
5918de8d7fSPeter Avalos /* termios macro */
6018de8d7fSPeter Avalos /* name, op */
6118de8d7fSPeter Avalos TTYCHAR(VINTR, 1)
6218de8d7fSPeter Avalos TTYCHAR(VQUIT, 2)
6318de8d7fSPeter Avalos TTYCHAR(VERASE, 3)
6418de8d7fSPeter Avalos #if defined(VKILL)
6518de8d7fSPeter Avalos TTYCHAR(VKILL, 4)
6618de8d7fSPeter Avalos #endif /* VKILL */
6718de8d7fSPeter Avalos TTYCHAR(VEOF, 5)
6818de8d7fSPeter Avalos #if defined(VEOL)
6918de8d7fSPeter Avalos TTYCHAR(VEOL, 6)
7018de8d7fSPeter Avalos #endif /* VEOL */
7118de8d7fSPeter Avalos #ifdef VEOL2
7218de8d7fSPeter Avalos TTYCHAR(VEOL2, 7)
7318de8d7fSPeter Avalos #endif /* VEOL2 */
7418de8d7fSPeter Avalos TTYCHAR(VSTART, 8)
7518de8d7fSPeter Avalos TTYCHAR(VSTOP, 9)
7618de8d7fSPeter Avalos #if defined(VSUSP)
7718de8d7fSPeter Avalos TTYCHAR(VSUSP, 10)
7818de8d7fSPeter Avalos #endif /* VSUSP */
7918de8d7fSPeter Avalos #if defined(VDSUSP)
8018de8d7fSPeter Avalos TTYCHAR(VDSUSP, 11)
8118de8d7fSPeter Avalos #endif /* VDSUSP */
8218de8d7fSPeter Avalos #if defined(VREPRINT)
8318de8d7fSPeter Avalos TTYCHAR(VREPRINT, 12)
8418de8d7fSPeter Avalos #endif /* VREPRINT */
8518de8d7fSPeter Avalos #if defined(VWERASE)
8618de8d7fSPeter Avalos TTYCHAR(VWERASE, 13)
8718de8d7fSPeter Avalos #endif /* VWERASE */
8818de8d7fSPeter Avalos #if defined(VLNEXT)
8918de8d7fSPeter Avalos TTYCHAR(VLNEXT, 14)
9018de8d7fSPeter Avalos #endif /* VLNEXT */
9118de8d7fSPeter Avalos #if defined(VFLUSH)
9218de8d7fSPeter Avalos TTYCHAR(VFLUSH, 15)
9318de8d7fSPeter Avalos #endif /* VFLUSH */
9418de8d7fSPeter Avalos #ifdef VSWTCH
9518de8d7fSPeter Avalos TTYCHAR(VSWTCH, 16)
9618de8d7fSPeter Avalos #endif /* VSWTCH */
9718de8d7fSPeter Avalos #if defined(VSTATUS)
9818de8d7fSPeter Avalos TTYCHAR(VSTATUS, 17)
9918de8d7fSPeter Avalos #endif /* VSTATUS */
10018de8d7fSPeter Avalos #ifdef VDISCARD
10118de8d7fSPeter Avalos TTYCHAR(VDISCARD, 18)
10218de8d7fSPeter Avalos #endif /* VDISCARD */
10318de8d7fSPeter Avalos 
10418de8d7fSPeter Avalos /* name, field, op */
10518de8d7fSPeter Avalos TTYMODE(IGNPAR,	c_iflag, 30)
10618de8d7fSPeter Avalos TTYMODE(PARMRK,	c_iflag, 31)
10718de8d7fSPeter Avalos TTYMODE(INPCK,	c_iflag, 32)
10818de8d7fSPeter Avalos TTYMODE(ISTRIP,	c_iflag, 33)
10918de8d7fSPeter Avalos TTYMODE(INLCR,	c_iflag, 34)
11018de8d7fSPeter Avalos TTYMODE(IGNCR,	c_iflag, 35)
11118de8d7fSPeter Avalos TTYMODE(ICRNL,	c_iflag, 36)
11218de8d7fSPeter Avalos #if defined(IUCLC)
11318de8d7fSPeter Avalos TTYMODE(IUCLC,	c_iflag, 37)
11418de8d7fSPeter Avalos #endif
11518de8d7fSPeter Avalos TTYMODE(IXON,	c_iflag, 38)
11618de8d7fSPeter Avalos TTYMODE(IXANY,	c_iflag, 39)
11718de8d7fSPeter Avalos TTYMODE(IXOFF,	c_iflag, 40)
11818de8d7fSPeter Avalos #ifdef IMAXBEL
11918de8d7fSPeter Avalos TTYMODE(IMAXBEL,c_iflag, 41)
12018de8d7fSPeter Avalos #endif /* IMAXBEL */
121*e9778795SPeter Avalos #ifdef IUTF8
122*e9778795SPeter Avalos TTYMODE(IUTF8,  c_iflag, 42)
123*e9778795SPeter Avalos #endif /* IUTF8 */
12418de8d7fSPeter Avalos 
12518de8d7fSPeter Avalos TTYMODE(ISIG,	c_lflag, 50)
12618de8d7fSPeter Avalos TTYMODE(ICANON,	c_lflag, 51)
12718de8d7fSPeter Avalos #ifdef XCASE
12818de8d7fSPeter Avalos TTYMODE(XCASE,	c_lflag, 52)
12918de8d7fSPeter Avalos #endif
13018de8d7fSPeter Avalos TTYMODE(ECHO,	c_lflag, 53)
13118de8d7fSPeter Avalos TTYMODE(ECHOE,	c_lflag, 54)
13218de8d7fSPeter Avalos TTYMODE(ECHOK,	c_lflag, 55)
13318de8d7fSPeter Avalos TTYMODE(ECHONL,	c_lflag, 56)
13418de8d7fSPeter Avalos TTYMODE(NOFLSH,	c_lflag, 57)
13518de8d7fSPeter Avalos TTYMODE(TOSTOP,	c_lflag, 58)
13618de8d7fSPeter Avalos #ifdef IEXTEN
13718de8d7fSPeter Avalos TTYMODE(IEXTEN, c_lflag, 59)
13818de8d7fSPeter Avalos #endif /* IEXTEN */
13918de8d7fSPeter Avalos #if defined(ECHOCTL)
14018de8d7fSPeter Avalos TTYMODE(ECHOCTL,c_lflag, 60)
14118de8d7fSPeter Avalos #endif /* ECHOCTL */
14218de8d7fSPeter Avalos #ifdef ECHOKE
14318de8d7fSPeter Avalos TTYMODE(ECHOKE,	c_lflag, 61)
14418de8d7fSPeter Avalos #endif /* ECHOKE */
14518de8d7fSPeter Avalos #if defined(PENDIN)
14618de8d7fSPeter Avalos TTYMODE(PENDIN,	c_lflag, 62)
14718de8d7fSPeter Avalos #endif /* PENDIN */
14818de8d7fSPeter Avalos 
14918de8d7fSPeter Avalos TTYMODE(OPOST,	c_oflag, 70)
15018de8d7fSPeter Avalos #if defined(OLCUC)
15118de8d7fSPeter Avalos TTYMODE(OLCUC,	c_oflag, 71)
15218de8d7fSPeter Avalos #endif
15318de8d7fSPeter Avalos #ifdef ONLCR
15418de8d7fSPeter Avalos TTYMODE(ONLCR,	c_oflag, 72)
15518de8d7fSPeter Avalos #endif
15618de8d7fSPeter Avalos #ifdef OCRNL
15718de8d7fSPeter Avalos TTYMODE(OCRNL,	c_oflag, 73)
15818de8d7fSPeter Avalos #endif
15918de8d7fSPeter Avalos #ifdef ONOCR
16018de8d7fSPeter Avalos TTYMODE(ONOCR,	c_oflag, 74)
16118de8d7fSPeter Avalos #endif
16218de8d7fSPeter Avalos #ifdef ONLRET
16318de8d7fSPeter Avalos TTYMODE(ONLRET,	c_oflag, 75)
16418de8d7fSPeter Avalos #endif
16518de8d7fSPeter Avalos 
16618de8d7fSPeter Avalos TTYMODE(CS7,	c_cflag, 90)
16718de8d7fSPeter Avalos TTYMODE(CS8,	c_cflag, 91)
16818de8d7fSPeter Avalos TTYMODE(PARENB,	c_cflag, 92)
16918de8d7fSPeter Avalos TTYMODE(PARODD,	c_cflag, 93)
170