Initial import from FreeBSD RELENG_4:
[dragonfly.git] / sys / emulation / svr4 / svr4_termios.h
1 /*
2  * Copyright (c) 1998 Mark Newton
3  * Copyright (c) 1994 Christos Zoulas
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  * 1. Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in the
13  *    documentation and/or other materials provided with the distribution.
14  * 3. The name of the author may not be used to endorse or promote products
15  *    derived from this software without specific prior written permission
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  * 
28  * $FreeBSD: src/sys/svr4/svr4_termios.h,v 1.3 1999/08/28 00:51:25 peter Exp $
29  */
30
31 #ifndef _SVR4_TERMIOS_H_
32 #define _SVR4_TERMIOS_H_
33
34 #define SVR4_POSIX_VDISABLE     0
35 #define SVR4_NCC                8
36 #define SVR4_NCCS               19
37
38 typedef u_long  svr4_tcflag_t;
39 typedef u_char  svr4_cc_t;
40 typedef u_long  svr4_speed_t;
41
42 struct svr4_termios {
43         svr4_tcflag_t   c_iflag;
44         svr4_tcflag_t   c_oflag;
45         svr4_tcflag_t   c_cflag;
46         svr4_tcflag_t   c_lflag;
47         svr4_cc_t       c_cc[SVR4_NCCS];
48 };
49
50 struct svr4_termio {
51         u_short         c_iflag;
52         u_short         c_oflag;
53         u_short         c_cflag;
54         u_short         c_lflag;
55         char            c_line; 
56         u_char          c_cc[SVR4_NCC];
57 };
58
59 /* control characters */
60 #define SVR4_VINTR      0
61 #define SVR4_VQUIT      1
62 #define SVR4_VERASE     2
63 #define SVR4_VKILL      3
64 #define SVR4_VEOF       4
65 #define SVR4_VEOL       5
66 #define SVR4_VEOL2      6
67 #define SVR4_VMIN       4
68 #define SVR4_VTIME      5
69 #define SVR4_VSWTCH     7
70 #define SVR4_VSTART     8
71 #define SVR4_VSTOP      9
72 #define SVR4_VSUSP      10
73 #define SVR4_VDSUSP     11
74 #define SVR4_VREPRINT   12
75 #define SVR4_VDISCARD   13
76 #define SVR4_VWERASE    14
77 #define SVR4_VLNEXT     15
78
79 /* Input modes */
80 #define SVR4_IGNBRK     00000001
81 #define SVR4_BRKINT     00000002
82 #define SVR4_IGNPAR     00000004
83 #define SVR4_PARMRK     00000010
84 #define SVR4_INPCK      00000020
85 #define SVR4_ISTRIP     00000040
86 #define SVR4_INLCR      00000100
87 #define SVR4_IGNCR      00000200
88 #define SVR4_ICRNL      00000400
89 #define SVR4_IUCLC      00001000
90 #define SVR4_IXON       00002000
91 #define SVR4_IXANY      00004000
92 #define SVR4_IXOFF      00010000
93 #define SVR4_IMAXBEL    00020000
94 #define SVR4_DOSMODE    00100000
95
96 /* Output modes */
97 #define SVR4_OPOST      00000001
98 #define SVR4_OLCUC      00000002
99 #define SVR4_ONLCR      00000004
100 #define SVR4_OCRNL      00000010
101 #define SVR4_ONOCR      00000020
102 #define SVR4_ONLRET     00000040
103 #define SVR4_OFILL      00000100
104 #define SVR4_OFDEL      00000200
105 #define SVR4_NLDLY      00000400
106 #define SVR4_NL0        00000000
107 #define SVR4_NL1        00000400
108 #define SVR4_CRDLY      00003000
109 #define SVR4_CR0        00000000
110 #define SVR4_CR1        00001000
111 #define SVR4_CR2        00002000
112 #define SVR4_CR3        00003000
113 #define SVR4_TABDLY     00014000
114 #define SVR4_TAB0       00000000
115 #define SVR4_TAB1       00004000
116 #define SVR4_TAB2       00010000
117 #define SVR4_TAB3       00014000
118 #define SVR4_XTABS      00014000
119 #define SVR4_BSDLY      00020000
120 #define SVR4_BS0        00000000
121 #define SVR4_BS1        00020000
122 #define SVR4_VTDLY      00040000
123 #define SVR4_VT0        00000000
124 #define SVR4_VT1        00040000
125 #define SVR4_FFDLY      00100000
126 #define SVR4_FF0        00000000
127 #define SVR4_FF1        00100000
128 #define SVR4_PAGEOUT    00200000
129 #define SVR4_WRAP       00400000
130
131 /* Control modes */
132 #define SVR4_CBAUD      00000017
133 #define SVR4_CSIZE      00000060
134 #define SVR4_CS5        00000000
135 #define SVR4_CS6        00000200
136 #define SVR4_CS7        00000040
137 #define SVR4_CS8        00000006
138 #define SVR4_CSTOPB     00000100
139 #define SVR4_CREAD      00000200
140 #define SVR4_PARENB     00000400
141 #define SVR4_PARODD     00001000
142 #define SVR4_HUPCL      00002000
143 #define SVR4_CLOCAL     00004000
144 #define SVR4_RCV1EN     00010000
145 #define SVR4_XMT1EN     00020000
146 #define SVR4_LOBLK      00040000
147 #define SVR4_XCLUDE     00100000
148 #define SVR4_CIBAUD     03600000
149 #define SVR4_PAREXT     04000000
150
151 /* line discipline modes */
152 #define SVR4_ISIG       00000001
153 #define SVR4_ICANON     00000002
154 #define SVR4_XCASE      00000004
155 #define SVR4_ECHO       00000010
156 #define SVR4_ECHOE      00000020
157 #define SVR4_ECHOK      00000040
158 #define SVR4_ECHONL     00000100
159 #define SVR4_NOFLSH     00000200
160 #define SVR4_TOSTOP     00000400
161 #define SVR4_ECHOCTL    00001000
162 #define SVR4_ECHOPRT    00002000
163 #define SVR4_ECHOKE     00004000
164 #define SVR4_DEFECHO    00010000
165 #define SVR4_FLUSHO     00020000
166 #define SVR4_PENDIN     00040000
167 #define SVR4_IEXTEN     00100000
168
169 #define SVR4_TIOC       ('T' << 8)
170
171 #define SVR4_TCGETA     (SVR4_TIOC| 1)
172 #define SVR4_TCSETA     (SVR4_TIOC| 2)
173 #define SVR4_TCSETAW    (SVR4_TIOC| 3)
174 #define SVR4_TCSETAF    (SVR4_TIOC| 4)
175 #define SVR4_TCSBRK     (SVR4_TIOC| 5)
176 #define SVR4_TCXONC     (SVR4_TIOC| 6)
177 #define SVR4_TCFLSH     (SVR4_TIOC| 7)
178 #define SVR4_TIOCKBON   (SVR4_TIOC| 8)
179 #define SVR4_TIOCKBOF   (SVR4_TIOC| 9)
180 #define SVR4_KBENABLED  (SVR4_TIOC|10)
181 #define SVR4_TCGETS     (SVR4_TIOC|13)
182 #define SVR4_TCSETS     (SVR4_TIOC|14)
183 #define SVR4_TCSETSW    (SVR4_TIOC|15)
184 #define SVR4_TCSETSF    (SVR4_TIOC|16)
185 #define SVR4_TCDSET     (SVR4_TIOC|32)
186 #define SVR4_RTS_TOG    (SVR4_TIOC|33)
187 #define SVR4_TCGETSC    (SVR4_TIOC|34)
188 #define SVR4_TCSETSC    (SVR4_TIOC|35)
189 #define SVR4_TCMOUSE    (SVR4_TIOC|36)
190 #define SVR4_TIOCGWINSZ (SVR4_TIOC|104)
191 #define SVR4_TIOCSWINSZ (SVR4_TIOC|103)
192
193 struct svr4_winsize {
194         u_short ws_row;
195         u_short ws_col;
196         u_short ws_xpixel;
197         u_short ws_ypixel;
198 };
199
200 #define SVR4_B0         0
201 #define SVR4_B50        1
202 #define SVR4_B75        2
203 #define SVR4_B110       3
204 #define SVR4_B134       4
205 #define SVR4_B150       5
206 #define SVR4_B200       6
207 #define SVR4_B300       7
208 #define SVR4_B600       8
209 #define SVR4_B1200      9
210 #define SVR4_B1800      10
211 #define SVR4_B2400      11
212 #define SVR4_B4800      12
213 #define SVR4_B9600      13
214 #define SVR4_B19200     14
215 #define SVR4_B38400     15
216 #define SVR4_B57600     16
217 #define SVR4_B76800     17
218 #define SVR4_B115200    18
219 #define SVR4_B153600    19
220 #define SVR4_B230400    20
221 #define SVR4_B307200    21
222 #define SVR4_B460800    22
223
224 #endif /* !_SVR4_TERMIOS_H_ */