source: trunk/third/openssh/ttymodes.h @ 16801

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