]>
Commit | Line | Data |
---|---|---|
8efc0c15 | 1 | /* |
6ae2364d | 2 | * |
5260325f | 3 | * ttymodes.h |
6ae2364d | 4 | * |
5260325f | 5 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
6 | * SGTTY stuff contributed by Janne Snabb <snabb@niksula.hut.fi> | |
6ae2364d | 7 | * |
5260325f | 8 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
9 | * All rights reserved | |
6ae2364d | 10 | * |
5260325f | 11 | * Created: Tue Mar 21 15:42:09 1995 ylo |
6ae2364d | 12 | * |
5260325f | 13 | */ |
8efc0c15 | 14 | |
74fc9186 | 15 | /* RCSID("$OpenBSD: ttymodes.h,v 1.8 2000/06/20 01:39:45 markus Exp $"); */ |
8efc0c15 | 16 | |
17 | /* The tty mode description is a stream of bytes. The stream consists of | |
5260325f | 18 | * opcode-arguments pairs. It is terminated by opcode TTY_OP_END (0). |
19 | * Opcodes 1-127 have one-byte arguments. Opcodes 128-159 have integer | |
20 | * arguments. Opcodes 160-255 are not yet defined, and cause parsing to | |
21 | * stop (they should only be used after any other data). | |
22 | * | |
23 | * The client puts in the stream any modes it knows about, and the | |
24 | * server ignores any modes it does not know about. This allows some degree | |
25 | * of machine-independence, at least between systems that use a posix-like | |
26 | * tty interface. The protocol can support other systems as well, but might | |
27 | * require reimplementing as mode names would likely be different. | |
28 | */ | |
8efc0c15 | 29 | |
5260325f | 30 | /* |
31 | * Some constants and prototypes are defined in packet.h; this file | |
aa3378df | 32 | * is only intended for including from ttymodes.c. |
5260325f | 33 | */ |
8efc0c15 | 34 | |
aa3378df | 35 | /* termios macro */ /* sgtty macro */ |
8efc0c15 | 36 | /* name, op */ |
aa3378df | 37 | TTYCHAR(VINTR, 1) SGTTYCHAR(tiotc.t_intrc, 1) |
38 | TTYCHAR(VQUIT, 2) SGTTYCHAR(tiotc.t_quitc, 2) | |
39 | TTYCHAR(VERASE, 3) SGTTYCHAR(tio.sg_erase, 3) | |
8efc0c15 | 40 | #if defined(VKILL) |
aa3378df | 41 | TTYCHAR(VKILL, 4) SGTTYCHAR(tio.sg_kill, 4) |
42 | #endif /* VKILL */ | |
43 | TTYCHAR(VEOF, 5) SGTTYCHAR(tiotc.t_eofc, 5) | |
8efc0c15 | 44 | #if defined(VEOL) |
aa3378df | 45 | TTYCHAR(VEOL, 6) SGTTYCHAR(tiotc.t_brkc, 6) |
46 | #endif /* VEOL */ | |
8efc0c15 | 47 | #ifdef VEOL2 /* n/a */ |
48 | TTYCHAR(VEOL2, 7) | |
aa3378df | 49 | #endif /* VEOL2 */ |
50 | TTYCHAR(VSTART, 8) SGTTYCHAR(tiotc.t_startc, 8) | |
51 | TTYCHAR(VSTOP, 9) SGTTYCHAR(tiotc.t_stopc, 9) | |
8efc0c15 | 52 | #if defined(VSUSP) |
aa3378df | 53 | TTYCHAR(VSUSP, 10) SGTTYCHAR(tioltc.t_suspc, 10) |
54 | #endif /* VSUSP */ | |
8efc0c15 | 55 | #if defined(VDSUSP) |
aa3378df | 56 | TTYCHAR(VDSUSP, 11) SGTTYCHAR(tioltc.t_dsuspc, 11) |
57 | #endif /* VDSUSP */ | |
8efc0c15 | 58 | #if defined(VREPRINT) |
aa3378df | 59 | TTYCHAR(VREPRINT, 12) SGTTYCHAR(tioltc.t_rprntc, 12) |
60 | #endif /* VREPRINT */ | |
8efc0c15 | 61 | #if defined(VWERASE) |
aa3378df | 62 | TTYCHAR(VWERASE, 13) SGTTYCHAR(tioltc.t_werasc, 13) |
63 | #endif /* VWERASE */ | |
8efc0c15 | 64 | #if defined(VLNEXT) |
aa3378df | 65 | TTYCHAR(VLNEXT, 14) SGTTYCHAR(tioltc.t_lnextc, 14) |
66 | #endif /* VLNEXT */ | |
8efc0c15 | 67 | #if defined(VFLUSH) |
aa3378df | 68 | TTYCHAR(VFLUSH, 15) SGTTYCHAR(tioltc.t_flushc, 15) |
69 | #endif /* VFLUSH */ | |
8efc0c15 | 70 | #ifdef VSWTCH |
71 | TTYCHAR(VSWTCH, 16) /* n/a */ | |
aa3378df | 72 | #endif /* VSWTCH */ |
8efc0c15 | 73 | #if defined(VSTATUS) |
aa3378df | 74 | TTYCHAR(VSTATUS, 17) SGTTYCHAR(tiots.tc_statusc, 17) |
75 | #endif /* VSTATUS */ | |
8efc0c15 | 76 | #ifdef VDISCARD |
77 | TTYCHAR(VDISCARD, 18) /* n/a */ | |
aa3378df | 78 | #endif /* VDISCARD */ |
8efc0c15 | 79 | |
80 | /* name, field, op */ | |
aa3378df | 81 | TTYMODE(IGNPAR, c_iflag, 30) /* n/a */ |
82 | TTYMODE(PARMRK, c_iflag, 31) /* n/a */ | |
83 | TTYMODE(INPCK, c_iflag, 32) SGTTYMODEN(ANYP, tio.sg_flags, 32) | |
84 | TTYMODE(ISTRIP, c_iflag, 33) SGTTYMODEN(LPASS8, tiolm, 33) | |
85 | TTYMODE(INLCR, c_iflag, 34) /* n/a */ | |
86 | TTYMODE(IGNCR, c_iflag, 35) /* n/a */ | |
87 | TTYMODE(ICRNL, c_iflag, 36) SGTTYMODE(CRMOD, tio.sg_flags, 36) | |
8efc0c15 | 88 | #if defined(IUCLC) |
aa3378df | 89 | TTYMODE(IUCLC, c_iflag, 37) SGTTYMODE(LCASE, tio.sg_flags, 37) |
8efc0c15 | 90 | #endif |
aa3378df | 91 | TTYMODE(IXON, c_iflag, 38) /* n/a */ |
92 | TTYMODE(IXANY, c_iflag, 39) SGTTYMODEN(LDECCTQ, tiolm, 39) | |
93 | TTYMODE(IXOFF, c_iflag, 40) SGTTYMODE(TANDEM, tio.sg_flags, 40) | |
8efc0c15 | 94 | #ifdef IMAXBEL |
aa3378df | 95 | TTYMODE(IMAXBEL,c_iflag, 41) /* n/a */ |
96 | #endif /* IMAXBEL */ | |
8efc0c15 | 97 | |
aa3378df | 98 | TTYMODE(ISIG, c_lflag, 50) /* n/a */ |
99 | TTYMODE(ICANON, c_lflag, 51) SGTTYMODEN(CBREAK, tio.sg_flags, 51) | |
8efc0c15 | 100 | #ifdef XCASE |
aa3378df | 101 | TTYMODE(XCASE, c_lflag, 52) /* n/a */ |
8efc0c15 | 102 | #endif |
aa3378df | 103 | TTYMODE(ECHO, c_lflag, 53) SGTTYMODE(ECHO, tio.sg_flags, 53) |
104 | TTYMODE(ECHOE, c_lflag, 54) SGTTYMODE(LCRTERA, tiolm, 54) | |
105 | TTYMODE(ECHOK, c_lflag, 55) SGTTYMODE(LCRTKIL, tiolm, 55) | |
106 | TTYMODE(ECHONL, c_lflag, 56) /* n/a */ | |
107 | TTYMODE(NOFLSH, c_lflag, 57) SGTTYMODE(LNOFLSH, tiolm, 57) | |
108 | TTYMODE(TOSTOP, c_lflag, 58) SGTTYMODE(LTOSTOP, tiolm, 58) | |
8efc0c15 | 109 | #ifdef IEXTEN |
110 | TTYMODE(IEXTEN, c_lflag, 59) /* n/a */ | |
aa3378df | 111 | #endif /* IEXTEN */ |
8efc0c15 | 112 | #if defined(ECHOCTL) |
aa3378df | 113 | TTYMODE(ECHOCTL,c_lflag, 60) SGTTYMODE(LCTLECH, tiolm, 60) |
114 | #endif /* ECHOCTL */ | |
8efc0c15 | 115 | #ifdef ECHOKE |
aa3378df | 116 | TTYMODE(ECHOKE, c_lflag, 61) /* n/a */ |
117 | #endif /* ECHOKE */ | |
8efc0c15 | 118 | #if defined(PENDIN) |
aa3378df | 119 | TTYMODE(PENDIN, c_lflag, 62) SGTTYMODE(LPENDIN, tiolm, 62) |
120 | #endif /* PENDIN */ | |
8efc0c15 | 121 | |
aa3378df | 122 | TTYMODE(OPOST, c_oflag, 70) /* n/a */ |
8efc0c15 | 123 | #if defined(OLCUC) |
aa3378df | 124 | TTYMODE(OLCUC, c_oflag, 71) SGTTYMODE(LCASE, tio.sg_flags, 71) |
8efc0c15 | 125 | #endif |
aa3378df | 126 | TTYMODE(ONLCR, c_oflag, 72) SGTTYMODE(CRMOD, tio.sg_flags, 72) |
8efc0c15 | 127 | #ifdef OCRNL |
aa3378df | 128 | TTYMODE(OCRNL, c_oflag, 73) /* n/a */ |
8efc0c15 | 129 | #endif |
130 | #ifdef ONOCR | |
aa3378df | 131 | TTYMODE(ONOCR, c_oflag, 74) /* n/a */ |
8efc0c15 | 132 | #endif |
133 | #ifdef ONLRET | |
aa3378df | 134 | TTYMODE(ONLRET, c_oflag, 75) /* n/a */ |
8efc0c15 | 135 | #endif |
136 | ||
aa3378df | 137 | TTYMODE(CS7, c_cflag, 90) /* n/a */ |
138 | TTYMODE(CS8, c_cflag, 91) SGTTYMODE(LPASS8, tiolm, 91) | |
139 | TTYMODE(PARENB, c_cflag, 92) /* n/a */ | |
140 | TTYMODE(PARODD, c_cflag, 93) SGTTYMODE(ODDP, tio.sg_flags, 93) | |
141 |