[BACK]Return to ttymodes.h CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Annotation of src/usr.bin/ssh/ttymodes.h, Revision 1.12.8.1

1.12.8.1! brad        1: /*     $OpenBSD: ttymodes.h,v 1.13 2004/07/11 17:48:47 deraadt Exp $   */
1.12      stevesk     2:
1.1       deraadt     3: /*
1.5       deraadt     4:  * Author: Tatu Ylonen <ylo@cs.hut.fi>
                      5:  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
                      6:  *                    All rights reserved
1.7       markus      7:  *
1.9       deraadt     8:  * As far as I am concerned, the code I have written for this software
                      9:  * can be used freely for any purpose.  Any derived versions of this
                     10:  * software must be clearly marked as such, and if the derived work is
                     11:  * incompatible with the protocol description in the RFC file, it must be
                     12:  * called by a name other than "ssh" or "Secure Shell".
1.5       deraadt    13:  */
1.1       deraadt    14:
1.11      stevesk    15: /*
                     16:  * SSH2 tty modes support by Kevin Steves.
                     17:  * Copyright (c) 2001 Kevin Steves.  All rights reserved.
                     18:  *
                     19:  * Redistribution and use in source and binary forms, with or without
                     20:  * modification, are permitted provided that the following conditions
                     21:  * are met:
                     22:  * 1. Redistributions of source code must retain the above copyright
                     23:  *    notice, this list of conditions and the following disclaimer.
                     24:  * 2. Redistributions in binary form must reproduce the above copyright
                     25:  *    notice, this list of conditions and the following disclaimer in the
                     26:  *    documentation and/or other materials provided with the distribution.
                     27:  *
                     28:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
                     29:  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
                     30:  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
                     31:  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
                     32:  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
                     33:  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
                     34:  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
                     35:  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
                     36:  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
                     37:  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
                     38:  */
1.1       deraadt    39:
1.11      stevesk    40: /*
                     41:  * SSH1:
                     42:  * The tty mode description is a stream of bytes.  The stream consists of
1.5       deraadt    43:  * opcode-arguments pairs.  It is terminated by opcode TTY_OP_END (0).
                     44:  * Opcodes 1-127 have one-byte arguments.  Opcodes 128-159 have integer
                     45:  * arguments.  Opcodes 160-255 are not yet defined, and cause parsing to
                     46:  * stop (they should only be used after any other data).
1.11      stevesk    47:  *
                     48:  * SSH2:
                     49:  * Differences between SSH1 and SSH2 terminal mode encoding include:
                     50:  * 1. Encoded terminal modes are represented as a string, and a stream
                     51:  *    of bytes within that string.
                     52:  * 2. Opcode arguments are uint32 (1-159); 160-255 remain undefined.
                     53:  * 3. The values for TTY_OP_ISPEED and TTY_OP_OSPEED are different;
                     54:  *    128 and 129 vs. 192 and 193 respectively.
1.5       deraadt    55:  *
                     56:  * The client puts in the stream any modes it knows about, and the
                     57:  * server ignores any modes it does not know about.  This allows some degree
                     58:  * of machine-independence, at least between systems that use a posix-like
                     59:  * tty interface.  The protocol can support other systems as well, but might
                     60:  * require reimplementing as mode names would likely be different.
                     61:  */
                     62:
                     63: /*
                     64:  * Some constants and prototypes are defined in packet.h; this file
1.6       markus     65:  * is only intended for including from ttymodes.c.
1.5       deraadt    66:  */
1.1       deraadt    67:
1.10      stevesk    68: /* termios macro */
1.1       deraadt    69: /* name, op */
1.10      stevesk    70: TTYCHAR(VINTR, 1)
                     71: TTYCHAR(VQUIT, 2)
                     72: TTYCHAR(VERASE, 3)
1.4       deraadt    73: #if defined(VKILL)
1.10      stevesk    74: TTYCHAR(VKILL, 4)
1.6       markus     75: #endif /* VKILL */
1.10      stevesk    76: TTYCHAR(VEOF, 5)
1.4       deraadt    77: #if defined(VEOL)
1.10      stevesk    78: TTYCHAR(VEOL, 6)
1.6       markus     79: #endif /* VEOL */
1.10      stevesk    80: #ifdef VEOL2
1.1       deraadt    81: TTYCHAR(VEOL2, 7)
1.6       markus     82: #endif /* VEOL2 */
1.10      stevesk    83: TTYCHAR(VSTART, 8)
                     84: TTYCHAR(VSTOP, 9)
1.4       deraadt    85: #if defined(VSUSP)
1.10      stevesk    86: TTYCHAR(VSUSP, 10)
1.6       markus     87: #endif /* VSUSP */
1.4       deraadt    88: #if defined(VDSUSP)
1.10      stevesk    89: TTYCHAR(VDSUSP, 11)
1.6       markus     90: #endif /* VDSUSP */
1.4       deraadt    91: #if defined(VREPRINT)
1.10      stevesk    92: TTYCHAR(VREPRINT, 12)
1.6       markus     93: #endif /* VREPRINT */
1.4       deraadt    94: #if defined(VWERASE)
1.10      stevesk    95: TTYCHAR(VWERASE, 13)
1.6       markus     96: #endif /* VWERASE */
1.4       deraadt    97: #if defined(VLNEXT)
1.10      stevesk    98: TTYCHAR(VLNEXT, 14)
1.6       markus     99: #endif /* VLNEXT */
1.4       deraadt   100: #if defined(VFLUSH)
1.10      stevesk   101: TTYCHAR(VFLUSH, 15)
1.6       markus    102: #endif /* VFLUSH */
1.1       deraadt   103: #ifdef VSWTCH
1.10      stevesk   104: TTYCHAR(VSWTCH, 16)
1.6       markus    105: #endif /* VSWTCH */
1.4       deraadt   106: #if defined(VSTATUS)
1.10      stevesk   107: TTYCHAR(VSTATUS, 17)
1.6       markus    108: #endif /* VSTATUS */
1.4       deraadt   109: #ifdef VDISCARD
1.10      stevesk   110: TTYCHAR(VDISCARD, 18)
1.6       markus    111: #endif /* VDISCARD */
1.1       deraadt   112:
                    113: /* name, field, op */
1.10      stevesk   114: TTYMODE(IGNPAR,        c_iflag, 30)
                    115: TTYMODE(PARMRK,        c_iflag, 31)
1.12.8.1! brad      116: TTYMODE(INPCK, c_iflag, 32)
1.10      stevesk   117: TTYMODE(ISTRIP,        c_iflag, 33)
1.12.8.1! brad      118: TTYMODE(INLCR, c_iflag, 34)
        !           119: TTYMODE(IGNCR, c_iflag, 35)
        !           120: TTYMODE(ICRNL, c_iflag, 36)
1.4       deraadt   121: #if defined(IUCLC)
1.12.8.1! brad      122: TTYMODE(IUCLC, c_iflag, 37)
1.4       deraadt   123: #endif
1.12.8.1! brad      124: TTYMODE(IXON,  c_iflag, 38)
        !           125: TTYMODE(IXANY, c_iflag, 39)
        !           126: TTYMODE(IXOFF, c_iflag, 40)
1.4       deraadt   127: #ifdef IMAXBEL
1.10      stevesk   128: TTYMODE(IMAXBEL,c_iflag, 41)
1.6       markus    129: #endif /* IMAXBEL */
1.1       deraadt   130:
1.10      stevesk   131: TTYMODE(ISIG,  c_lflag, 50)
                    132: TTYMODE(ICANON,        c_lflag, 51)
1.4       deraadt   133: #ifdef XCASE
1.10      stevesk   134: TTYMODE(XCASE, c_lflag, 52)
1.4       deraadt   135: #endif
1.10      stevesk   136: TTYMODE(ECHO,  c_lflag, 53)
                    137: TTYMODE(ECHOE, c_lflag, 54)
                    138: TTYMODE(ECHOK, c_lflag, 55)
                    139: TTYMODE(ECHONL,        c_lflag, 56)
                    140: TTYMODE(NOFLSH,        c_lflag, 57)
                    141: TTYMODE(TOSTOP,        c_lflag, 58)
1.4       deraadt   142: #ifdef IEXTEN
1.10      stevesk   143: TTYMODE(IEXTEN, c_lflag, 59)
1.6       markus    144: #endif /* IEXTEN */
1.4       deraadt   145: #if defined(ECHOCTL)
1.10      stevesk   146: TTYMODE(ECHOCTL,c_lflag, 60)
1.6       markus    147: #endif /* ECHOCTL */
1.4       deraadt   148: #ifdef ECHOKE
1.10      stevesk   149: TTYMODE(ECHOKE,        c_lflag, 61)
1.6       markus    150: #endif /* ECHOKE */
1.4       deraadt   151: #if defined(PENDIN)
1.10      stevesk   152: TTYMODE(PENDIN,        c_lflag, 62)
1.6       markus    153: #endif /* PENDIN */
1.1       deraadt   154:
1.10      stevesk   155: TTYMODE(OPOST, c_oflag, 70)
1.4       deraadt   156: #if defined(OLCUC)
1.10      stevesk   157: TTYMODE(OLCUC, c_oflag, 71)
1.4       deraadt   158: #endif
1.10      stevesk   159: TTYMODE(ONLCR, c_oflag, 72)
1.4       deraadt   160: #ifdef OCRNL
1.10      stevesk   161: TTYMODE(OCRNL, c_oflag, 73)
1.4       deraadt   162: #endif
                    163: #ifdef ONOCR
1.10      stevesk   164: TTYMODE(ONOCR, c_oflag, 74)
1.4       deraadt   165: #endif
                    166: #ifdef ONLRET
1.10      stevesk   167: TTYMODE(ONLRET,        c_oflag, 75)
1.4       deraadt   168: #endif
1.1       deraadt   169:
1.10      stevesk   170: TTYMODE(CS7,   c_cflag, 90)
                    171: TTYMODE(CS8,   c_cflag, 91)
                    172: TTYMODE(PARENB,        c_cflag, 92)
                    173: TTYMODE(PARODD,        c_cflag, 93)