130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef __ASM_GENERIC_TERMBITS_H
230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define __ASM_GENERIC_TERMBITS_H
330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/posix_types.h>
530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
630692c65c4174412c90e79489e98ab85c1a7412fBen Chengtypedef unsigned char	cc_t;
730692c65c4174412c90e79489e98ab85c1a7412fBen Chengtypedef unsigned int	speed_t;
830692c65c4174412c90e79489e98ab85c1a7412fBen Chengtypedef unsigned int	tcflag_t;
930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
1030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NCCS 19
1130692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct termios {
1230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	tcflag_t c_iflag;		/* input mode flags */
1330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	tcflag_t c_oflag;		/* output mode flags */
1430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	tcflag_t c_cflag;		/* control mode flags */
1530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	tcflag_t c_lflag;		/* local mode flags */
1630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	cc_t c_line;			/* line discipline */
1730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	cc_t c_cc[NCCS];		/* control characters */
1830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
1930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
2030692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct termios2 {
2130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	tcflag_t c_iflag;		/* input mode flags */
2230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	tcflag_t c_oflag;		/* output mode flags */
2330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	tcflag_t c_cflag;		/* control mode flags */
2430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	tcflag_t c_lflag;		/* local mode flags */
2530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	cc_t c_line;			/* line discipline */
2630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	cc_t c_cc[NCCS];		/* control characters */
2730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	speed_t c_ispeed;		/* input speed */
2830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	speed_t c_ospeed;		/* output speed */
2930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
3030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
3130692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct ktermios {
3230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	tcflag_t c_iflag;		/* input mode flags */
3330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	tcflag_t c_oflag;		/* output mode flags */
3430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	tcflag_t c_cflag;		/* control mode flags */
3530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	tcflag_t c_lflag;		/* local mode flags */
3630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	cc_t c_line;			/* line discipline */
3730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	cc_t c_cc[NCCS];		/* control characters */
3830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	speed_t c_ispeed;		/* input speed */
3930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	speed_t c_ospeed;		/* output speed */
4030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
4130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
4230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* c_cc characters */
4330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define VINTR 0
4430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define VQUIT 1
4530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define VERASE 2
4630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define VKILL 3
4730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define VEOF 4
4830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define VTIME 5
4930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define VMIN 6
5030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define VSWTC 7
5130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define VSTART 8
5230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define VSTOP 9
5330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define VSUSP 10
5430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define VEOL 11
5530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define VREPRINT 12
5630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define VDISCARD 13
5730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define VWERASE 14
5830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define VLNEXT 15
5930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define VEOL2 16
6030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
6130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* c_iflag bits */
6230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IGNBRK	0000001
6330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define BRKINT	0000002
6430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IGNPAR	0000004
6530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define PARMRK	0000010
6630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define INPCK	0000020
6730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISTRIP	0000040
6830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define INLCR	0000100
6930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IGNCR	0000200
7030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ICRNL	0000400
7130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IUCLC	0001000
7230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IXON	0002000
7330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IXANY	0004000
7430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IXOFF	0010000
7530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IMAXBEL	0020000
7630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IUTF8	0040000
7730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
7830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* c_oflag bits */
7930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define OPOST	0000001
8030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define OLCUC	0000002
8130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ONLCR	0000004
8230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define OCRNL	0000010
8330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ONOCR	0000020
8430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ONLRET	0000040
8530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define OFILL	0000100
8630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define OFDEL	0000200
8730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NLDLY	0000400
8830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   NL0	0000000
8930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   NL1	0000400
9030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CRDLY	0003000
9130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   CR0	0000000
9230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   CR1	0001000
9330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   CR2	0002000
9430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   CR3	0003000
9530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define TABDLY	0014000
9630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   TAB0	0000000
9730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   TAB1	0004000
9830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   TAB2	0010000
9930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   TAB3	0014000
10030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   XTABS	0014000
10130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define BSDLY	0020000
10230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   BS0	0000000
10330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   BS1	0020000
10430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define VTDLY	0040000
10530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   VT0	0000000
10630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   VT1	0040000
10730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define FFDLY	0100000
10830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   FF0	0000000
10930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   FF1	0100000
11030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
11130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* c_cflag bit meaning */
11230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CBAUD	0010017
11330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define  B0	0000000		/* hang up */
11430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define  B50	0000001
11530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define  B75	0000002
11630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define  B110	0000003
11730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define  B134	0000004
11830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define  B150	0000005
11930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define  B200	0000006
12030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define  B300	0000007
12130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define  B600	0000010
12230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define  B1200	0000011
12330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define  B1800	0000012
12430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define  B2400	0000013
12530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define  B4800	0000014
12630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define  B9600	0000015
12730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define  B19200	0000016
12830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define  B38400	0000017
12930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define EXTA B19200
13030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define EXTB B38400
13130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CSIZE	0000060
13230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   CS5	0000000
13330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   CS6	0000020
13430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   CS7	0000040
13530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   CS8	0000060
13630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CSTOPB	0000100
13730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CREAD	0000200
13830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define PARENB	0000400
13930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define PARODD	0001000
14030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define HUPCL	0002000
14130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CLOCAL	0004000
14230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CBAUDEX 0010000
14330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define    BOTHER 0010000
14430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define    B57600 0010001
14530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   B115200 0010002
14630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   B230400 0010003
14730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   B460800 0010004
14830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   B500000 0010005
14930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   B576000 0010006
15030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define   B921600 0010007
15130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define  B1000000 0010010
15230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define  B1152000 0010011
15330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define  B1500000 0010012
15430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define  B2000000 0010013
15530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define  B2500000 0010014
15630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define  B3000000 0010015
15730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define  B3500000 0010016
15830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define  B4000000 0010017
15930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CIBAUD	  002003600000	/* input baud rate */
16030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CMSPAR	  010000000000	/* mark or space (stick) parity */
16130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define CRTSCTS	  020000000000	/* flow control */
16230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
16330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IBSHIFT	  16		/* Shift from CBAUD to CIBAUD */
16430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
16530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* c_lflag bits */
16630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ISIG	0000001
16730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ICANON	0000002
16830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define XCASE	0000004
16930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ECHO	0000010
17030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ECHOE	0000020
17130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ECHOK	0000040
17230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ECHONL	0000100
17330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define NOFLSH	0000200
17430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define TOSTOP	0000400
17530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ECHOCTL	0001000
17630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ECHOPRT	0002000
17730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define ECHOKE	0004000
17830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define FLUSHO	0010000
17930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define PENDIN	0040000
18030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define IEXTEN	0100000
18130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define EXTPROC	0200000
18230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
18330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* tcflow() and TCXONC use these */
18430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define	TCOOFF		0
18530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define	TCOON		1
18630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define	TCIOFF		2
18730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define	TCION		3
18830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
18930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* tcflush() and TCFLSH use these */
19030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define	TCIFLUSH	0
19130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define	TCOFLUSH	1
19230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define	TCIOFLUSH	2
19330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
19430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* tcsetattr uses these */
19530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define	TCSANOW		0
19630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define	TCSADRAIN	1
19730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define	TCSAFLUSH	2
19830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
19930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif /* __ASM_GENERIC_TERMBITS_H */
200