|
|
1.1 root 1: #ifndef _I386_TERMIOS_H
2: #define _I386_TERMIOS_H
3:
4: /* 0x54 is just a magic number to make these relatively unique ('T') */
5:
6: #define TCGETS 0x5401
7: #define TCSETS 0x5402
8: #define TCSETSW 0x5403
9: #define TCSETSF 0x5404
10: #define TCGETA 0x5405
11: #define TCSETA 0x5406
12: #define TCSETAW 0x5407
13: #define TCSETAF 0x5408
14: #define TCSBRK 0x5409
15: #define TCXONC 0x540A
16: #define TCFLSH 0x540B
17: #define TIOCEXCL 0x540C
18: #define TIOCNXCL 0x540D
19: #define TIOCSCTTY 0x540E
20: #define TIOCGPGRP 0x540F
21: #define TIOCSPGRP 0x5410
22: #define TIOCOUTQ 0x5411
23: #define TIOCSTI 0x5412
24: #define TIOCGWINSZ 0x5413
25: #define TIOCSWINSZ 0x5414
26: #define TIOCMGET 0x5415
27: #define TIOCMBIS 0x5416
28: #define TIOCMBIC 0x5417
29: #define TIOCMSET 0x5418
30: #define TIOCGSOFTCAR 0x5419
31: #define TIOCSSOFTCAR 0x541A
32: #define FIONREAD 0x541B
33: #define TIOCINQ FIONREAD
34: #define TIOCLINUX 0x541C
35: #define TIOCCONS 0x541D
36: #define TIOCGSERIAL 0x541E
37: #define TIOCSSERIAL 0x541F
38: #define TIOCPKT 0x5420
39: #define FIONBIO 0x5421
40: #define TIOCNOTTY 0x5422
41: #define TIOCSETD 0x5423
42: #define TIOCGETD 0x5424
43: #define TCSBRKP 0x5425 /* Needed for POSIX tcsendbreak() */
44: #define TIOCTTYGSTRUCT 0x5426 /* For debugging only */
45: #define FIONCLEX 0x5450 /* these numbers need to be adjusted. */
46: #define FIOCLEX 0x5451
47: #define FIOASYNC 0x5452
48: #define TIOCSERCONFIG 0x5453
49: #define TIOCSERGWILD 0x5454
50: #define TIOCSERSWILD 0x5455
51: #define TIOCGLCKTRMIOS 0x5456
52: #define TIOCSLCKTRMIOS 0x5457
53: #define TIOCSERGSTRUCT 0x5458 /* For debugging only */
54: #define TIOCSERGETLSR 0x5459 /* Get line status register */
55: #define TIOCSERGETMULTI 0x545A /* Get multiport config */
56: #define TIOCSERSETMULTI 0x545B /* Set multiport config */
57:
58: #define TIOCMIWAIT 0x545C /* wait for a change on serial input line(s) */
59: #define TIOCGICOUNT 0x545D /* read serial port inline interrupt counts */
60:
61: /* Used for packet mode */
62: #define TIOCPKT_DATA 0
63: #define TIOCPKT_FLUSHREAD 1
64: #define TIOCPKT_FLUSHWRITE 2
65: #define TIOCPKT_STOP 4
66: #define TIOCPKT_START 8
67: #define TIOCPKT_NOSTOP 16
68: #define TIOCPKT_DOSTOP 32
69:
70: struct winsize {
71: unsigned short ws_row;
72: unsigned short ws_col;
73: unsigned short ws_xpixel;
74: unsigned short ws_ypixel;
75: };
76:
77: #define NCC 8
78: struct termio {
79: unsigned short c_iflag; /* input mode flags */
80: unsigned short c_oflag; /* output mode flags */
81: unsigned short c_cflag; /* control mode flags */
82: unsigned short c_lflag; /* local mode flags */
83: unsigned char c_line; /* line discipline */
84: unsigned char c_cc[NCC]; /* control characters */
85: };
86:
87: #define NCCS 19
88: struct termios {
89: tcflag_t c_iflag; /* input mode flags */
90: tcflag_t c_oflag; /* output mode flags */
91: tcflag_t c_cflag; /* control mode flags */
92: tcflag_t c_lflag; /* local mode flags */
93: cc_t c_line; /* line discipline */
94: cc_t c_cc[NCCS]; /* control characters */
95: };
96:
97: /* c_cc characters */
98: #define VINTR 0
99: #define VQUIT 1
100: #define VERASE 2
101: #define VKILL 3
102: #define VEOF 4
103: #define VTIME 5
104: #define VMIN 6
105: #define VSWTC 7
106: #define VSTART 8
107: #define VSTOP 9
108: #define VSUSP 10
109: #define VEOL 11
110: #define VREPRINT 12
111: #define VDISCARD 13
112: #define VWERASE 14
113: #define VLNEXT 15
114: #define VEOL2 16
115:
116: #ifdef __KERNEL__
117: /* intr=^C quit=^| erase=del kill=^U
118: eof=^D vtime=\0 vmin=\1 sxtc=\0
119: start=^Q stop=^S susp=^Z eol=\0
120: reprint=^R discard=^U werase=^W lnext=^V
121: eol2=\0
122: */
123: #define INIT_C_CC "\003\034\177\025\004\0\1\0\021\023\032\0\022\017\027\026\0"
124: #endif
125:
126: /* c_iflag bits */
127: #define IGNBRK 0000001
128: #define BRKINT 0000002
129: #define IGNPAR 0000004
130: #define PARMRK 0000010
131: #define INPCK 0000020
132: #define ISTRIP 0000040
133: #define INLCR 0000100
134: #define IGNCR 0000200
135: #define ICRNL 0000400
136: #define IUCLC 0001000
137: #define IXON 0002000
138: #define IXANY 0004000
139: #define IXOFF 0010000
140: #define IMAXBEL 0020000
141:
142: /* c_oflag bits */
143: #define OPOST 0000001
144: #define OLCUC 0000002
145: #define ONLCR 0000004
146: #define OCRNL 0000010
147: #define ONOCR 0000020
148: #define ONLRET 0000040
149: #define OFILL 0000100
150: #define OFDEL 0000200
151: #define NLDLY 0000400
152: #define NL0 0000000
153: #define NL1 0000400
154: #define CRDLY 0003000
155: #define CR0 0000000
156: #define CR1 0001000
157: #define CR2 0002000
158: #define CR3 0003000
159: #define TABDLY 0014000
160: #define TAB0 0000000
161: #define TAB1 0004000
162: #define TAB2 0010000
163: #define TAB3 0014000
164: #define XTABS 0014000
165: #define BSDLY 0020000
166: #define BS0 0000000
167: #define BS1 0020000
168: #define VTDLY 0040000
169: #define VT0 0000000
170: #define VT1 0040000
171: #define FFDLY 0100000
172: #define FF0 0000000
173: #define FF1 0100000
174:
175: /* c_cflag bit meaning */
176: #define CBAUD 0010017
177: #define B0 0000000 /* hang up */
178: #define B50 0000001
179: #define B75 0000002
180: #define B110 0000003
181: #define B134 0000004
182: #define B150 0000005
183: #define B200 0000006
184: #define B300 0000007
185: #define B600 0000010
186: #define B1200 0000011
187: #define B1800 0000012
188: #define B2400 0000013
189: #define B4800 0000014
190: #define B9600 0000015
191: #define B19200 0000016
192: #define B38400 0000017
193: #define EXTA B19200
194: #define EXTB B38400
195: #define CSIZE 0000060
196: #define CS5 0000000
197: #define CS6 0000020
198: #define CS7 0000040
199: #define CS8 0000060
200: #define CSTOPB 0000100
201: #define CREAD 0000200
202: #define PARENB 0000400
203: #define PARODD 0001000
204: #define HUPCL 0002000
205: #define CLOCAL 0004000
206: #define CBAUDEX 0010000
207: #define B57600 0010001
208: #define B115200 0010002
209: #define B230400 0010003
210: #define CIBAUD 002003600000 /* input baud rate (not used) */
211: #define CRTSCTS 020000000000 /* flow control */
212:
213: /* c_lflag bits */
214: #define ISIG 0000001
215: #define ICANON 0000002
216: #define XCASE 0000004
217: #define ECHO 0000010
218: #define ECHOE 0000020
219: #define ECHOK 0000040
220: #define ECHONL 0000100
221: #define NOFLSH 0000200
222: #define TOSTOP 0000400
223: #define ECHOCTL 0001000
224: #define ECHOPRT 0002000
225: #define ECHOKE 0004000
226: #define FLUSHO 0010000
227: #define PENDIN 0040000
228: #define IEXTEN 0100000
229:
230: /* modem lines */
231: #define TIOCM_LE 0x001
232: #define TIOCM_DTR 0x002
233: #define TIOCM_RTS 0x004
234: #define TIOCM_ST 0x008
235: #define TIOCM_SR 0x010
236: #define TIOCM_CTS 0x020
237: #define TIOCM_CAR 0x040
238: #define TIOCM_RNG 0x080
239: #define TIOCM_DSR 0x100
240: #define TIOCM_CD TIOCM_CAR
241: #define TIOCM_RI TIOCM_RNG
242:
243: /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
244: #define TIOCSER_TEMT 0x01 /* Transmitter physically empty */
245:
246:
247: /* tcflow() and TCXONC use these */
248: #define TCOOFF 0
249: #define TCOON 1
250: #define TCIOFF 2
251: #define TCION 3
252:
253: /* tcflush() and TCFLSH use these */
254: #define TCIFLUSH 0
255: #define TCOFLUSH 1
256: #define TCIOFLUSH 2
257:
258: /* tcsetattr uses these */
259: #define TCSANOW 0
260: #define TCSADRAIN 1
261: #define TCSAFLUSH 2
262:
263: /* line disciplines */
264: #define N_TTY 0
265: #define N_SLIP 1
266: #define N_MOUSE 2
267: #define N_PPP 3
268:
269: #ifdef __KERNEL__
270:
271: #include <linux/string.h>
272:
273: /*
274: * Translate a "termio" structure into a "termios". Ugh.
275: */
276: extern inline void trans_from_termio(struct termio * termio,
277: struct termios * termios)
278: {
279: #define SET_LOW_BITS(x,y) ((x) = (0xffff0000 & (x)) | (y))
280: SET_LOW_BITS(termios->c_iflag, termio->c_iflag);
281: SET_LOW_BITS(termios->c_oflag, termio->c_oflag);
282: SET_LOW_BITS(termios->c_cflag, termio->c_cflag);
283: SET_LOW_BITS(termios->c_lflag, termio->c_lflag);
284: #undef SET_LOW_BITS
285: memcpy(termios->c_cc, termio->c_cc, NCC);
286: }
287:
288: /*
289: * Translate a "termios" structure into a "termio". Ugh.
290: */
291: extern inline void trans_to_termio(struct termios * termios,
292: struct termio * termio)
293: {
294: termio->c_iflag = termios->c_iflag;
295: termio->c_oflag = termios->c_oflag;
296: termio->c_cflag = termios->c_cflag;
297: termio->c_lflag = termios->c_lflag;
298: termio->c_line = termios->c_line;
299: memcpy(termio->c_cc, termios->c_cc, NCC);
300: }
301:
302: #endif /* __KERNEL__ */
303:
304: #endif /* _I386_TERMIOS_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.