xref: /plan9/sys/src/ape/9src/tty.h (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
1*219b2ee8SDavid du Colombier /* input modes */
2*219b2ee8SDavid du Colombier #define BRKINT	0x001
3*219b2ee8SDavid du Colombier #define ICRNL	0x002
4*219b2ee8SDavid du Colombier #define IGNBRK	0x004
5*219b2ee8SDavid du Colombier #define IGNCR	0x008
6*219b2ee8SDavid du Colombier #define IGNPAR	0x010
7*219b2ee8SDavid du Colombier #define INLCR	0x020
8*219b2ee8SDavid du Colombier #define INPCK	0x040
9*219b2ee8SDavid du Colombier #define ISTRIP	0x080
10*219b2ee8SDavid du Colombier #define IXOFF	0x100
11*219b2ee8SDavid du Colombier #define IXON	0x200
12*219b2ee8SDavid du Colombier #define PARMRK	0x400
13*219b2ee8SDavid du Colombier 
14*219b2ee8SDavid du Colombier /* output modes */
15*219b2ee8SDavid du Colombier #define	OPOST	0000001
16*219b2ee8SDavid du Colombier #define	OLCUC	0000002
17*219b2ee8SDavid du Colombier #define	ONLCR	0000004
18*219b2ee8SDavid du Colombier #define	OCRNL	0000010
19*219b2ee8SDavid du Colombier #define	ONOCR	0000020
20*219b2ee8SDavid du Colombier #define	ONLRET	0000040
21*219b2ee8SDavid du Colombier #define	OFILL	0000100
22*219b2ee8SDavid du Colombier #define	OFDEL	0000200
23*219b2ee8SDavid du Colombier #define	NLDLY	0000400
24*219b2ee8SDavid du Colombier #define	NL0	0
25*219b2ee8SDavid du Colombier #define	NL1	0000400
26*219b2ee8SDavid du Colombier #define	CRDLY	0003000
27*219b2ee8SDavid du Colombier #define	CR0	0
28*219b2ee8SDavid du Colombier #define	CR1	0001000
29*219b2ee8SDavid du Colombier #define	CR2	0002000
30*219b2ee8SDavid du Colombier #define	CR3	0003000
31*219b2ee8SDavid du Colombier #define	TABDLY	0014000
32*219b2ee8SDavid du Colombier #define	TAB0	0
33*219b2ee8SDavid du Colombier #define	TAB1	0004000
34*219b2ee8SDavid du Colombier #define	TAB2	0010000
35*219b2ee8SDavid du Colombier #define	TAB3	0014000
36*219b2ee8SDavid du Colombier #define	BSDLY	0020000
37*219b2ee8SDavid du Colombier #define	BS0	0
38*219b2ee8SDavid du Colombier #define	BS1	0020000
39*219b2ee8SDavid du Colombier #define	VTDLY	0040000
40*219b2ee8SDavid du Colombier #define	VT0	0
41*219b2ee8SDavid du Colombier #define	VT1	0040000
42*219b2ee8SDavid du Colombier #define	FFDLY	0100000
43*219b2ee8SDavid du Colombier #define	FF0	0
44*219b2ee8SDavid du Colombier #define	FF1	0100000
45*219b2ee8SDavid du Colombier 
46*219b2ee8SDavid du Colombier /* control modes */
47*219b2ee8SDavid du Colombier #define CLOCAL	0x001
48*219b2ee8SDavid du Colombier #define CREAD	0x002
49*219b2ee8SDavid du Colombier #define CSIZE	0x01C
50*219b2ee8SDavid du Colombier #define CS5	0x004
51*219b2ee8SDavid du Colombier #define CS6	0x008
52*219b2ee8SDavid du Colombier #define CS7	0x00C
53*219b2ee8SDavid du Colombier #define CS8	0x010
54*219b2ee8SDavid du Colombier #define CSTOPB	0x020
55*219b2ee8SDavid du Colombier #define HUPCL	0x040
56*219b2ee8SDavid du Colombier #define PARENB	0x080
57*219b2ee8SDavid du Colombier #define PARODD	0x100
58*219b2ee8SDavid du Colombier 
59*219b2ee8SDavid du Colombier /* local modes */
60*219b2ee8SDavid du Colombier #define ECHO	0x001
61*219b2ee8SDavid du Colombier #define ECHOE	0x002
62*219b2ee8SDavid du Colombier #define ECHOK	0x004
63*219b2ee8SDavid du Colombier #define ECHONL	0x008
64*219b2ee8SDavid du Colombier #define ICANON	0x010
65*219b2ee8SDavid du Colombier #define IEXTEN	0x020
66*219b2ee8SDavid du Colombier #define ISIG	0x040
67*219b2ee8SDavid du Colombier #define NOFLSH	0x080
68*219b2ee8SDavid du Colombier #define TOSTOP	0x100
69*219b2ee8SDavid du Colombier 
70*219b2ee8SDavid du Colombier /* control characters */
71*219b2ee8SDavid du Colombier #define VEOF	0
72*219b2ee8SDavid du Colombier #define VEOL	1
73*219b2ee8SDavid du Colombier #define VERASE	2
74*219b2ee8SDavid du Colombier #define VINTR	3
75*219b2ee8SDavid du Colombier #define VKILL	4
76*219b2ee8SDavid du Colombier #define VMIN	5
77*219b2ee8SDavid du Colombier #define VQUIT	6
78*219b2ee8SDavid du Colombier #define VSUSP	7
79*219b2ee8SDavid du Colombier #define VTIME	8
80*219b2ee8SDavid du Colombier #define VSTART	9
81*219b2ee8SDavid du Colombier #define VSTOP	10
82*219b2ee8SDavid du Colombier #define NCCS	11
83*219b2ee8SDavid du Colombier 
84*219b2ee8SDavid du Colombier /* baud rates */
85*219b2ee8SDavid du Colombier #define B0	0
86*219b2ee8SDavid du Colombier #define B50	1
87*219b2ee8SDavid du Colombier #define B75	2
88*219b2ee8SDavid du Colombier #define B110	3
89*219b2ee8SDavid du Colombier #define B134	4
90*219b2ee8SDavid du Colombier #define B150	5
91*219b2ee8SDavid du Colombier #define B200	6
92*219b2ee8SDavid du Colombier #define B300	7
93*219b2ee8SDavid du Colombier #define B600	8
94*219b2ee8SDavid du Colombier #define B1200	9
95*219b2ee8SDavid du Colombier #define B1800	10
96*219b2ee8SDavid du Colombier #define B2400	11
97*219b2ee8SDavid du Colombier #define B4800	12
98*219b2ee8SDavid du Colombier #define B9600	13
99*219b2ee8SDavid du Colombier #define B19200	14
100*219b2ee8SDavid du Colombier #define B38400	15
101*219b2ee8SDavid du Colombier 
102*219b2ee8SDavid du Colombier #define	CESC	'\\'
103*219b2ee8SDavid du Colombier #define	CINTR	0177	/* DEL */
104*219b2ee8SDavid du Colombier #define	CQUIT	034	/* FS, cntl | */
105*219b2ee8SDavid du Colombier #define	CERASE	010	/* BS */
106*219b2ee8SDavid du Colombier #define	CKILL	025	/* cntl u */
107*219b2ee8SDavid du Colombier #define	CEOF	04	/* cntl d */
108*219b2ee8SDavid du Colombier #define	CSTART	021	/* cntl q */
109*219b2ee8SDavid du Colombier #define	CSTOP	023	/* cntl s */
110*219b2ee8SDavid du Colombier #define	CSWTCH	032	/* cntl z */
111*219b2ee8SDavid du Colombier #define CEOL	000
112*219b2ee8SDavid du Colombier #define	CNSWTCH	0
113*219b2ee8SDavid du Colombier 
114*219b2ee8SDavid du Colombier /* optional actions for tcsetattr */
115*219b2ee8SDavid du Colombier #define TCSANOW	  1
116*219b2ee8SDavid du Colombier #define TCSADRAIN 2
117*219b2ee8SDavid du Colombier #define TCSAFLUSH 3
118*219b2ee8SDavid du Colombier 
119*219b2ee8SDavid du Colombier typedef struct Termios Termios;
120*219b2ee8SDavid du Colombier struct Termios
121*219b2ee8SDavid du Colombier {
122*219b2ee8SDavid du Colombier 	int	iflag;		/* input modes */
123*219b2ee8SDavid du Colombier 	int	oflag;		/* output modes */
124*219b2ee8SDavid du Colombier 	int	cflag;		/* control modes */
125*219b2ee8SDavid du Colombier 	int	lflag;		/* local modes */
126*219b2ee8SDavid du Colombier 	uchar	cc[NCCS];	/* control characters */
127*219b2ee8SDavid du Colombier };
128