|
|
1.1 root 1: /*++
2:
3: Copyright (c) 1991 Microsoft Corporation
4:
5: Module Name:
6:
7: termios.h
8:
9: Abstract:
10:
11: This module contains the primitive system data types described in section
12: 7.1.2.1 of IEEE P1003.1-1990
13:
14: Author:
15:
16: Ellen Aycock-Wright 06-Aug-1991
17:
18: Revision History:
19:
20: --*/
21:
22: #ifndef _TERMIOS_
23: #define _TERMIOS_
24:
25: #include <sys/types.h>
26:
27: typedef unsigned long cc_t;
28: typedef unsigned long speed_t;
29: typedef unsigned long tcflag_t;
30:
31: #define NCCS 9
32:
33: struct termios {
34: tcflag_t c_iflag; /* input modes */
35: tcflag_t c_oflag; /* output modes */
36: tcflag_t c_cflag; /* control modes */
37: tcflag_t c_lflag; /* local modes */
38: cc_t c_cc[NCCS]; /* control characters */
39: };
40:
41: /*
42: * Input modes, for c_iflag member
43: */
44:
45: #define BRKINT 0x00000001 /* signal interrupt on break */
46: #define ICRNL 0x00000002 /* map CR to NL on input */
47: #define IGNBRK 0x00000004 /* ignore break condition */
48: #define IGNCR 0x00000008 /* ignore CR */
49: #define IGNPAR 0x00000010 /* ignore characters with parity errors */
50: #define INLCR 0x00000020 /* map NL to CR on input */
51: #define INPCK 0x00000040 /* Enable input parity check */
52: #define ISTRIP 0x00000080 /* strip character */
53: #define IXOFF 0x00000100 /* enable start/stop input control */
54: #define IXON 0x00000200 /* enable start/stop output control */
55: #define PARMRK 0x00000400 /* mark parity errors */
56:
57: /*
58: * Output modes, for c_oflag member
59: */
60:
61: #define OPOST 0x00000001 /* perform output processing */
62:
63: /*
64: * Control modes, for c_cflag member
65: */
66:
67: #define CLOCAL 0x00000001 /* ignore modem status lines */
68: #define CREAD 0x00000002 /* enable receiver */
69: #define CSIZE 0x000000F0 /* number of bits per byte */
70: #define CS5 0x00000010 /* 5 bits */
71: #define CS6 0x00000020 /* 6 bits */
72: #define CS7 0x00000040 /* 7 bits */
73: #define CS8 0x00000080 /* 8 bits */
74: #define CSTOPB 0x00000100 /* send two stop bits, else one */
75: #define HUPCL 0x00000200 /* hang up on last close */
76: #define PARENB 0x00000400 /* parity enable */
77: #define PARODD 0x00000800 /* odd parity, else even */
78:
79: /*
80: * Local modes, for c_lflag member
81: */
82:
83: #define ECHO 0x00000001 /* enable echo */
84: #define ECHOE 0x00000002 /* echo ERASE as an error-correcting backspace */
85: #define ECHOK 0x00000004 /* echo KILL */
86: #define ECHONL 0x00000008 /* echo '\n' */
87: #define ICANON 0x00000010 /* canonical input (erase and kill processing) */
88: #define IEXTEN 0x00000020 /* enable extended functions */
89: #define ISIG 0x00000040 /* enable signals */
90: #define NOFLSH 0x00000080 /* disable flush after intr, quit, or suspend */
91: #define TOSTOP 0x00000100 /* send SIGTTOU for background output */
92:
93: /*
94: * Indices into c_cc array
95: */
96:
97: #define VEOF 0 /* EOF character */
98: #define VEOL 1 /* EOL character */
99: #define VERASE 2 /* ERASE character */
100: #define VINTR 3 /* INTR character */
101: #define VKILL 4 /* KILL character */
102: #define VMIN VEOF /* MIN value */
103: #define VQUIT 5 /* QUIT character */
104: #define VSUSP 6 /* SUSP character */
105: #define VTIME VEOL /* TIME value */
106: #define VSTART 7 /* START character */
107: #define VSTOP 8 /* STOP character */
108:
109: /*
110: * Values for speed_t's
111: */
112:
113: #define B0 0
114: #define B50 1
115: #define B75 2
116: #define B110 3
117: #define B134 4
118: #define B150 5
119: #define B200 6
120: #define B300 7
121: #define B600 8
122: #define B1200 9
123: #define B1800 10
124: #define B2400 11
125: #define B4800 12
126: #define B9600 13
127: #define B19200 14
128: #define B38400 15
129:
130: /*
131: * Optional actions for tcsetattr()
132: */
133: #define TCSANOW 1
134: #define TCSADRAIN 2
135: #define TCSAFLUSH 3
136:
137: /*
138: * Queue selectors for tcflush()
139: */
140:
141: #define TCIFLUSH 0
142: #define TCOFLUSH 1
143: #define TCIOFLUSH 2
144:
145: /*
146: * Actions for tcflow()
147: */
148:
149: #define TCOOFF 0
150: #define TCOON 1
151: #define TCIOFF 2
152: #define TCION 3
153:
154:
155: int _CRTAPI1 tcgetattr(int, struct termios *);
156: int _CRTAPI1 tcsetattr(int, int, const struct termios *);
157: int _CRTAPI1 tcsendbreak(int, int);
158: int _CRTAPI1 tcdrain(int);
159: int _CRTAPI1 tcflush(int, int);
160: int _CRTAPI1 tcflow(int, int);
161:
162: pid_t _CRTAPI1 tcgetpgrp(int);
163: int _CRTAPI1 tcsetpgrp(int, pid_t);
164:
165: speed_t _CRTAPI1 cfgetospeed(const struct termios *);
166: int _CRTAPI1 cfsetospeed(struct termios *, speed_t);
167: speed_t _CRTAPI1 cfgetispeed(const struct termios *);
168: int _CRTAPI1 cfsetispeed(struct termios *, speed_t);
169:
170: #endif /* _TERMIOS_ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.