summaryrefslogtreecommitdiff
path: root/include/arch/x86_64/asm-generic/termbits.h
blob: 1f5aeded6846b144e8264041983460bf531bde55 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef __ASM_GENERIC_TERMBITS_H
#define __ASM_GENERIC_TERMBITS_H

#include <asm-generic/termbits-common.h>

typedef unsigned int tcflag_t;

#define NCCS 19
struct termios {
	tcflag_t c_iflag; /* input mode flags */
	tcflag_t c_oflag; /* output mode flags */
	tcflag_t c_cflag; /* control mode flags */
	tcflag_t c_lflag; /* local mode flags */
	cc_t c_line;	  /* line discipline */
	cc_t c_cc[NCCS];  /* control characters */
};

struct termios2 {
	tcflag_t c_iflag; /* input mode flags */
	tcflag_t c_oflag; /* output mode flags */
	tcflag_t c_cflag; /* control mode flags */
	tcflag_t c_lflag; /* local mode flags */
	cc_t c_line;	  /* line discipline */
	cc_t c_cc[NCCS];  /* control characters */
	speed_t c_ispeed; /* input speed */
	speed_t c_ospeed; /* output speed */
};

struct ktermios {
	tcflag_t c_iflag; /* input mode flags */
	tcflag_t c_oflag; /* output mode flags */
	tcflag_t c_cflag; /* control mode flags */
	tcflag_t c_lflag; /* local mode flags */
	cc_t c_line;	  /* line discipline */
	cc_t c_cc[NCCS];  /* control characters */
	speed_t c_ispeed; /* input speed */
	speed_t c_ospeed; /* output speed */
};

/* c_cc characters */
#define VINTR	 0
#define VQUIT	 1
#define VERASE	 2
#define VKILL	 3
#define VEOF	 4
#define VTIME	 5
#define VMIN	 6
#define VSWTC	 7
#define VSTART	 8
#define VSTOP	 9
#define VSUSP	 10
#define VEOL	 11
#define VREPRINT 12
#define VDISCARD 13
#define VWERASE	 14
#define VLNEXT	 15
#define VEOL2	 16

/* c_iflag bits */
#define IUCLC	0x0200
#define IXON	0x0400
#define IXOFF	0x1000
#define IMAXBEL 0x2000
#define IUTF8	0x4000

/* c_oflag bits */
#define OLCUC  0x00002
#define ONLCR  0x00004
#define NLDLY  0x00100
#define NL0    0x00000
#define NL1    0x00100
#define CRDLY  0x00600
#define CR0    0x00000
#define CR1    0x00200
#define CR2    0x00400
#define CR3    0x00600
#define TABDLY 0x01800
#define TAB0   0x00000
#define TAB1   0x00800
#define TAB2   0x01000
#define TAB3   0x01800
#define XTABS  0x01800
#define BSDLY  0x02000
#define BS0    0x00000
#define BS1    0x02000
#define VTDLY  0x04000
#define VT0    0x00000
#define VT1    0x04000
#define FFDLY  0x08000
#define FF0    0x00000
#define FF1    0x08000

/* c_cflag bit meaning */
#define CBAUD	 0x0000100f
#define CSIZE	 0x00000030
#define CS5	 0x00000000
#define CS6	 0x00000010
#define CS7	 0x00000020
#define CS8	 0x00000030
#define CSTOPB	 0x00000040
#define CREAD	 0x00000080
#define PARENB	 0x00000100
#define PARODD	 0x00000200
#define HUPCL	 0x00000400
#define CLOCAL	 0x00000800
#define CBAUDEX	 0x00001000
#define BOTHER	 0x00001000
#define B57600	 0x00001001
#define B115200	 0x00001002
#define B230400	 0x00001003
#define B460800	 0x00001004
#define B500000	 0x00001005
#define B576000	 0x00001006
#define B921600	 0x00001007
#define B1000000 0x00001008
#define B1152000 0x00001009
#define B1500000 0x0000100a
#define B2000000 0x0000100b
#define B2500000 0x0000100c
#define B3000000 0x0000100d
#define B3500000 0x0000100e
#define B4000000 0x0000100f
#define CIBAUD	 0x100f0000 /* input baud rate */

/* c_lflag bits */
#define ISIG	0x00001
#define ICANON	0x00002
#define XCASE	0x00004
#define ECHO	0x00008
#define ECHOE	0x00010
#define ECHOK	0x00020
#define ECHONL	0x00040
#define NOFLSH	0x00080
#define TOSTOP	0x00100
#define ECHOCTL 0x00200
#define ECHOPRT 0x00400
#define ECHOKE	0x00800
#define FLUSHO	0x01000
#define PENDIN	0x04000
#define IEXTEN	0x08000
#define EXTPROC 0x10000

/* tcsetattr uses these */
#define TCSANOW	  0
#define TCSADRAIN 1
#define TCSAFLUSH 2

#endif /* __ASM_GENERIC_TERMBITS_H */