xref: /csrg-svn/sys/hp/hpux/hpux_termio.h (revision 63148)
141486Smckusick /*
241486Smckusick  * Copyright (c) 1988 University of Utah.
3*63148Sbostic  * Copyright (c) 1990, 1993
4*63148Sbostic  *	The Regents of the University of California.  All rights reserved.
541486Smckusick  *
641486Smckusick  * This code is derived from software contributed to Berkeley by
741486Smckusick  * the Systems Programming Group of the University of Utah Computer
841486Smckusick  * Science Department.
941486Smckusick  *
1041486Smckusick  * %sccs.include.redist.c%
1141486Smckusick  *
1245422Smckusick  * from: Utah $Hdr: hpux_termio.h 1.1 90/07/09$
1341486Smckusick  *
14*63148Sbostic  *	@(#)hpux_termio.h	8.1 (Berkeley) 06/10/93
1541486Smckusick  */
1641486Smckusick 
1741486Smckusick /* HP-UX termio stuff */
1841486Smckusick 
1941486Smckusick #define	HPUXNCC	8
2041486Smckusick 
2141486Smckusick /* control characters */
2241486Smckusick #define	HPUXVINTR	0
2341486Smckusick #define	HPUXVQUIT	1
2441486Smckusick #define	HPUXVERASE	2
2541486Smckusick #define	HPUXVKILL	3
2641486Smckusick #define	HPUXVEOF	4
2741486Smckusick #define	HPUXVEOL	5
2841486Smckusick #define	HPUXVMIN	4
2941486Smckusick #define	HPUXVTIME	5
3055829Shibler #define HPUXVEOL2	6
3155829Shibler #define HPUXVSWTCH	7
3241486Smckusick 
3341486Smckusick /* input modes */
3444343Shibler #define	TIO_IGNBRK	0x00000001	/* 0000001 */
3544343Shibler #define	TIO_BRKINT	0x00000002	/* 0000002 */
3644343Shibler #define	TIO_IGNPAR	0x00000004	/* 0000004 */
3744343Shibler #define	TIO_PARMRK	0x00000008	/* 0000010 */
3844343Shibler #define	TIO_INPCK	0x00000010	/* 0000020 */
3944343Shibler #define	TIO_ISTRIP	0x00000020	/* 0000040 */
4044343Shibler #define	TIO_INLCR	0x00000040	/* 0000100 */
4144343Shibler #define	TIO_IGNCR	0x00000080	/* 0000200 */
4244343Shibler #define	TIO_ICRNL	0x00000100	/* 0000400 */
4344343Shibler #define	TIO_IUCLC	0x00000200	/* 0001000 */
4444343Shibler #define	TIO_IXON	0x00000400	/* 0002000 */
4544343Shibler #define	TIO_IXANY	0x00000800	/* 0004000 */
4644343Shibler #define	TIO_IXOFF	0x00001000	/* 0010000 */
4744343Shibler #define	TIO_IENQAK	0x00002000	/* 0020000 */
4841486Smckusick 
4941486Smckusick /* output modes */
5044343Shibler #define	TIO_OPOST	0x00000001	/* 0000001 */
5144343Shibler #define	TIO_OLCUC	0x00000002	/* 0000002 */
5244343Shibler #define	TIO_ONLCR	0x00000004	/* 0000004 */
5344343Shibler #define	TIO_OCRNL	0x00000008	/* 0000010 */
5444343Shibler #define	TIO_ONOCR	0x00000010	/* 0000020 */
5544343Shibler #define	TIO_ONLRET	0x00000020	/* 0000040 */
5644343Shibler #define	TIO_OFILL	0x00000040	/* 0000100 */
5744343Shibler #define	TIO_OFDEL	0x00000080	/* 0000200 */
5844343Shibler #define	TIO_NLDLY	0x00000100	/* 0000400 */
5941486Smckusick #define	TIO_NL0		0
6044343Shibler #define	TIO_NL1		0x00000100	/* 0000400 */
6144343Shibler #define	TIO_CRDLY	0x00000600	/* 0003000 */
6241486Smckusick #define	TIO_CR0		0
6344343Shibler #define	TIO_CR1		0x00000200	/* 0001000 */
6444343Shibler #define	TIO_CR2		0x00000400	/* 0002000 */
6544343Shibler #define	TIO_CR3		0x00000600	/* 0003000 */
6644343Shibler #define	TIO_TABDLY	0x00001800	/* 0014000 */
6741486Smckusick #define	TIO_TAB0	0
6844343Shibler #define	TIO_TAB1	0x00000800	/* 0004000 */
6944343Shibler #define	TIO_TAB2	0x00001000	/* 0010000 */
7044343Shibler #define	TIO_TAB3	0x00001800	/* 0014000 */
7144343Shibler #define	TIO_BSDLY	0x00002000	/* 0020000 */
7241486Smckusick #define	TIO_BS0		0
7344343Shibler #define	TIO_BS1		0x00002000	/* 0020000 */
7444343Shibler #define	TIO_VTDLY	0x00004000	/* 0040000 */
7541486Smckusick #define	TIO_VT0		0
7644343Shibler #define	TIO_VT1		0x00004000	/* 0040000 */
7744343Shibler #define	TIO_FFDLY	0x00008000	/* 0100000 */
7841486Smckusick #define	TIO_FF0		0
7944343Shibler #define	TIO_FF1		0x00008000	/* 0100000 */
8041486Smckusick 
8141486Smckusick /* control modes */
8244343Shibler #define	TIO_CBAUD	0x0000001f	/* 0000037 */
8341486Smckusick #define	TIO_B0		0
8444343Shibler #define	TIO_B50		0x00000001	/* 0000001 */
8544343Shibler #define	TIO_B75		0x00000002	/* 0000002 */
8644343Shibler #define	TIO_B110	0x00000003	/* 0000003 */
8744343Shibler #define	TIO_B134	0x00000004	/* 0000004 */
8844343Shibler #define	TIO_B150	0x00000005	/* 0000005 */
8944343Shibler #define	TIO_B200	0x00000006	/* 0000006 */
9044343Shibler #define	TIO_B300	0x00000007	/* 0000007 */
9144343Shibler #define	TIO_B600	0x00000008	/* 0000010 */
9244343Shibler #define	TIO_B900	0x00000009	/* 0000011 */
9344343Shibler #define	TIO_B1200	0x0000000a	/* 0000012 */
9444343Shibler #define	TIO_B1800	0x0000000b	/* 0000013 */
9544343Shibler #define	TIO_B2400	0x0000000c	/* 0000014 */
9644343Shibler #define	TIO_B3600	0x0000000d	/* 0000015 */
9744343Shibler #define	TIO_B4800	0x0000000e	/* 0000016 */
9844343Shibler #define	TIO_B7200	0x0000000f	/* 0000017 */
9944343Shibler #define	TIO_B9600	0x00000010	/* 0000020 */
10044343Shibler #define	TIO_B19200	0x00000011	/* 0000021 */
10144343Shibler #define	TIO_B38400	0x00000012	/* 0000022 */
10244343Shibler #define	TIO_EXTA	0x0000001e	/* 0000036 */
10344343Shibler #define	TIO_EXTB	0x0000001f	/* 0000037 */
10444343Shibler #define	TIO_CSIZE	0x00000060	/* 0000140 */
10541486Smckusick #define	TIO_CS5		0
10644343Shibler #define	TIO_CS6		0x00000020	/* 0000040 */
10744343Shibler #define	TIO_CS7		0x00000040	/* 0000100 */
10844343Shibler #define	TIO_CS8		0x00000060	/* 0000140 */
10944343Shibler #define	TIO_CSTOPB	0x00000080	/* 0000200 */
11044343Shibler #define	TIO_CREAD	0x00000100	/* 0000400 */
11144343Shibler #define	TIO_PARENB	0x00000200	/* 0001000 */
11244343Shibler #define	TIO_PARODD	0x00000400	/* 0002000 */
11344343Shibler #define	TIO_HUPCL	0x00000800	/* 0004000 */
11444343Shibler #define	TIO_CLOCAL	0x00001000	/* 0010000 */
11544343Shibler #define TIO_CRTS   	0x00002000	/* 0020000 */ /* Obsolete */
11641486Smckusick 
11741486Smckusick /* line discipline 0 modes */
11844343Shibler #define	TIO_ISIG	0x00000001	/* 0000001 */
11944343Shibler #define	TIO_ICANON	0x00000002	/* 0000002 */
12044343Shibler #define	TIO_XCASE	0x00000004	/* 0000004 */
12144343Shibler #define	TIO_ECHO	0x00000008	/* 0000010 */
12244343Shibler #define	TIO_ECHOE	0x00000010	/* 0000020 */
12344343Shibler #define	TIO_ECHOK	0x00000020	/* 0000040 */
12444343Shibler #define	TIO_ECHONL	0x00000040	/* 0000100 */
12544343Shibler #define	TIO_NOFLSH	0x00000080	/* 0000200 */
12641486Smckusick 
12741486Smckusick struct hpuxtermio {
12841486Smckusick 	u_short	c_iflag;	/* input modes */
12941486Smckusick 	u_short	c_oflag;	/* output modes */
13041486Smckusick 	u_short	c_cflag;	/* control modes */
13141486Smckusick 	u_short	c_lflag;	/* line discipline modes */
13241486Smckusick 	char    c_line;		/* line discipline */
13341486Smckusick 	u_char	c_cc[HPUXNCC];	/* control chars */
13441486Smckusick };
13541486Smckusick 
13641486Smckusick #define	HPUXTCGETA	_IOR('T', 1, struct hpuxtermio)
13741486Smckusick #define	HPUXTCSETA	_IOW('T', 2, struct hpuxtermio)
13841486Smckusick #define	HPUXTCSETAW	_IOW('T', 3, struct hpuxtermio)
13941486Smckusick #define	HPUXTCSETAF	_IOW('T', 4, struct hpuxtermio)
14055829Shibler 
14155829Shibler /* HP-UX termios stuff */
14255829Shibler 
14355829Shibler #define	HPUXNCCS	16
14455829Shibler 
14555829Shibler /* control characters */
14655829Shibler #define	HPUXVMINS	11	/* different than termio */
14755829Shibler #define	HPUXVTIMES	12	/* different than termio */
14855829Shibler #define	HPUXVSUSP	13
14955829Shibler #define	HPUXVSTART	14
15055829Shibler #define	HPUXVSTOP	15
15155829Shibler 
15255829Shibler struct hpuxtermios {
15355829Shibler 	u_int	c_iflag;	/* input modes */
15455829Shibler 	u_int	c_oflag;	/* output modes */
15555829Shibler 	u_int	c_cflag;	/* control modes */
15655829Shibler 	u_int	c_lflag;	/* line discipline modes */
15755829Shibler 	u_int	c_reserved;	/* future use */
15855829Shibler 	u_char	c_cc[HPUXNCCS];	/* control chars */
15955829Shibler };
16055829Shibler 
16155829Shibler #define	HPUXTCGETATTR	_IOR('T', 16, struct hpuxtermios)
16255829Shibler #define	HPUXTCSETATTR	_IOW('T', 17, struct hpuxtermios)
16355829Shibler #define	HPUXTCSETATTRD	_IOW('T', 18, struct hpuxtermios)
16455829Shibler #define	HPUXTCSETATTRF	_IOW('T', 19, struct hpuxtermios)
165