xref: /original-bsd/sys/hp/hpux/hpux_termio.h (revision 37b2dff4)
1 /*
2  * Copyright (c) 1988 University of Utah.
3  * Copyright (c) 1990, 1993
4  *	The Regents of the University of California.  All rights reserved.
5  *
6  * This code is derived from software contributed to Berkeley by
7  * the Systems Programming Group of the University of Utah Computer
8  * Science Department.
9  *
10  * %sccs.include.redist.c%
11  *
12  * from: Utah $Hdr: hpux_termio.h 1.1 90/07/09$
13  *
14  *	@(#)hpux_termio.h	8.1 (Berkeley) 06/10/93
15  */
16 
17 /* HP-UX termio stuff */
18 
19 #define	HPUXNCC	8
20 
21 /* control characters */
22 #define	HPUXVINTR	0
23 #define	HPUXVQUIT	1
24 #define	HPUXVERASE	2
25 #define	HPUXVKILL	3
26 #define	HPUXVEOF	4
27 #define	HPUXVEOL	5
28 #define	HPUXVMIN	4
29 #define	HPUXVTIME	5
30 #define HPUXVEOL2	6
31 #define HPUXVSWTCH	7
32 
33 /* input modes */
34 #define	TIO_IGNBRK	0x00000001	/* 0000001 */
35 #define	TIO_BRKINT	0x00000002	/* 0000002 */
36 #define	TIO_IGNPAR	0x00000004	/* 0000004 */
37 #define	TIO_PARMRK	0x00000008	/* 0000010 */
38 #define	TIO_INPCK	0x00000010	/* 0000020 */
39 #define	TIO_ISTRIP	0x00000020	/* 0000040 */
40 #define	TIO_INLCR	0x00000040	/* 0000100 */
41 #define	TIO_IGNCR	0x00000080	/* 0000200 */
42 #define	TIO_ICRNL	0x00000100	/* 0000400 */
43 #define	TIO_IUCLC	0x00000200	/* 0001000 */
44 #define	TIO_IXON	0x00000400	/* 0002000 */
45 #define	TIO_IXANY	0x00000800	/* 0004000 */
46 #define	TIO_IXOFF	0x00001000	/* 0010000 */
47 #define	TIO_IENQAK	0x00002000	/* 0020000 */
48 
49 /* output modes */
50 #define	TIO_OPOST	0x00000001	/* 0000001 */
51 #define	TIO_OLCUC	0x00000002	/* 0000002 */
52 #define	TIO_ONLCR	0x00000004	/* 0000004 */
53 #define	TIO_OCRNL	0x00000008	/* 0000010 */
54 #define	TIO_ONOCR	0x00000010	/* 0000020 */
55 #define	TIO_ONLRET	0x00000020	/* 0000040 */
56 #define	TIO_OFILL	0x00000040	/* 0000100 */
57 #define	TIO_OFDEL	0x00000080	/* 0000200 */
58 #define	TIO_NLDLY	0x00000100	/* 0000400 */
59 #define	TIO_NL0		0
60 #define	TIO_NL1		0x00000100	/* 0000400 */
61 #define	TIO_CRDLY	0x00000600	/* 0003000 */
62 #define	TIO_CR0		0
63 #define	TIO_CR1		0x00000200	/* 0001000 */
64 #define	TIO_CR2		0x00000400	/* 0002000 */
65 #define	TIO_CR3		0x00000600	/* 0003000 */
66 #define	TIO_TABDLY	0x00001800	/* 0014000 */
67 #define	TIO_TAB0	0
68 #define	TIO_TAB1	0x00000800	/* 0004000 */
69 #define	TIO_TAB2	0x00001000	/* 0010000 */
70 #define	TIO_TAB3	0x00001800	/* 0014000 */
71 #define	TIO_BSDLY	0x00002000	/* 0020000 */
72 #define	TIO_BS0		0
73 #define	TIO_BS1		0x00002000	/* 0020000 */
74 #define	TIO_VTDLY	0x00004000	/* 0040000 */
75 #define	TIO_VT0		0
76 #define	TIO_VT1		0x00004000	/* 0040000 */
77 #define	TIO_FFDLY	0x00008000	/* 0100000 */
78 #define	TIO_FF0		0
79 #define	TIO_FF1		0x00008000	/* 0100000 */
80 
81 /* control modes */
82 #define	TIO_CBAUD	0x0000001f	/* 0000037 */
83 #define	TIO_B0		0
84 #define	TIO_B50		0x00000001	/* 0000001 */
85 #define	TIO_B75		0x00000002	/* 0000002 */
86 #define	TIO_B110	0x00000003	/* 0000003 */
87 #define	TIO_B134	0x00000004	/* 0000004 */
88 #define	TIO_B150	0x00000005	/* 0000005 */
89 #define	TIO_B200	0x00000006	/* 0000006 */
90 #define	TIO_B300	0x00000007	/* 0000007 */
91 #define	TIO_B600	0x00000008	/* 0000010 */
92 #define	TIO_B900	0x00000009	/* 0000011 */
93 #define	TIO_B1200	0x0000000a	/* 0000012 */
94 #define	TIO_B1800	0x0000000b	/* 0000013 */
95 #define	TIO_B2400	0x0000000c	/* 0000014 */
96 #define	TIO_B3600	0x0000000d	/* 0000015 */
97 #define	TIO_B4800	0x0000000e	/* 0000016 */
98 #define	TIO_B7200	0x0000000f	/* 0000017 */
99 #define	TIO_B9600	0x00000010	/* 0000020 */
100 #define	TIO_B19200	0x00000011	/* 0000021 */
101 #define	TIO_B38400	0x00000012	/* 0000022 */
102 #define	TIO_EXTA	0x0000001e	/* 0000036 */
103 #define	TIO_EXTB	0x0000001f	/* 0000037 */
104 #define	TIO_CSIZE	0x00000060	/* 0000140 */
105 #define	TIO_CS5		0
106 #define	TIO_CS6		0x00000020	/* 0000040 */
107 #define	TIO_CS7		0x00000040	/* 0000100 */
108 #define	TIO_CS8		0x00000060	/* 0000140 */
109 #define	TIO_CSTOPB	0x00000080	/* 0000200 */
110 #define	TIO_CREAD	0x00000100	/* 0000400 */
111 #define	TIO_PARENB	0x00000200	/* 0001000 */
112 #define	TIO_PARODD	0x00000400	/* 0002000 */
113 #define	TIO_HUPCL	0x00000800	/* 0004000 */
114 #define	TIO_CLOCAL	0x00001000	/* 0010000 */
115 #define TIO_CRTS   	0x00002000	/* 0020000 */ /* Obsolete */
116 
117 /* line discipline 0 modes */
118 #define	TIO_ISIG	0x00000001	/* 0000001 */
119 #define	TIO_ICANON	0x00000002	/* 0000002 */
120 #define	TIO_XCASE	0x00000004	/* 0000004 */
121 #define	TIO_ECHO	0x00000008	/* 0000010 */
122 #define	TIO_ECHOE	0x00000010	/* 0000020 */
123 #define	TIO_ECHOK	0x00000020	/* 0000040 */
124 #define	TIO_ECHONL	0x00000040	/* 0000100 */
125 #define	TIO_NOFLSH	0x00000080	/* 0000200 */
126 
127 struct hpuxtermio {
128 	u_short	c_iflag;	/* input modes */
129 	u_short	c_oflag;	/* output modes */
130 	u_short	c_cflag;	/* control modes */
131 	u_short	c_lflag;	/* line discipline modes */
132 	char    c_line;		/* line discipline */
133 	u_char	c_cc[HPUXNCC];	/* control chars */
134 };
135 
136 #define	HPUXTCGETA	_IOR('T', 1, struct hpuxtermio)
137 #define	HPUXTCSETA	_IOW('T', 2, struct hpuxtermio)
138 #define	HPUXTCSETAW	_IOW('T', 3, struct hpuxtermio)
139 #define	HPUXTCSETAF	_IOW('T', 4, struct hpuxtermio)
140 
141 /* HP-UX termios stuff */
142 
143 #define	HPUXNCCS	16
144 
145 /* control characters */
146 #define	HPUXVMINS	11	/* different than termio */
147 #define	HPUXVTIMES	12	/* different than termio */
148 #define	HPUXVSUSP	13
149 #define	HPUXVSTART	14
150 #define	HPUXVSTOP	15
151 
152 struct hpuxtermios {
153 	u_int	c_iflag;	/* input modes */
154 	u_int	c_oflag;	/* output modes */
155 	u_int	c_cflag;	/* control modes */
156 	u_int	c_lflag;	/* line discipline modes */
157 	u_int	c_reserved;	/* future use */
158 	u_char	c_cc[HPUXNCCS];	/* control chars */
159 };
160 
161 #define	HPUXTCGETATTR	_IOR('T', 16, struct hpuxtermios)
162 #define	HPUXTCSETATTR	_IOW('T', 17, struct hpuxtermios)
163 #define	HPUXTCSETATTRD	_IOW('T', 18, struct hpuxtermios)
164 #define	HPUXTCSETATTRF	_IOW('T', 19, struct hpuxtermios)
165