about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/sparc/bits/termios.h
blob: bf7aa1480fb3c7f6d6e44a0d67a7be54fe119693 (plain) (blame)
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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
/* termios type and macro definitions.  Linux/SPARC version.
   Copyright (C) 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Library General Public License as
   published by the Free Software Foundation; either version 2 of the
   License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Library General Public License for more details.

   You should have received a copy of the GNU Library General Public
   License along with the GNU C Library; see the file COPYING.LIB.  If not,
   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
   Boston, MA 02111-1307, USA.  */

#ifndef _SPARC_TERMBITS_H
#define _SPARC_TERMBITS_H	1

typedef unsigned char   cc_t;
typedef unsigned int    speed_t;
typedef unsigned long   tcflag_t;

#define NCCS 17
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 */
#ifdef __KERNEL__
#define SIZEOF_USER_TERMIOS sizeof (struct termios) - (2*sizeof (cc_t))
    cc_t _x_cc[2];                  /* We need them to hold vmin/vtime */
#endif
  };

/* c_cc characters */
#define VINTR    0
#define VQUIT    1
#define VERASE   2
#define VKILL    3
#define VEOF     4
#define VEOL     5
#define VEOL2    6
#define VSWTC    7
#define VSTART   8
#define VSTOP    9



#define VSUSP    10
#define VDSUSP   11  /* SunOS POSIX nicety I do believe... */
#define VREPRINT 12
#define VDISCARD 13
#define VWERASE  14
#define VLNEXT   15

/* Kernel keeps vmin/vtime separated, user apps assume vmin/vtime is
 * shared with eof/eol
 */
#ifdef __KERNEL__
#define VMIN     16
#define VTIME    17
#else
#define VMIN     VEOF
#define VTIME    VEOL
#endif

/* c_iflag bits */
#define IGNBRK	0x00000001
#define BRKINT	0x00000002
#define IGNPAR	0x00000004
#define PARMRK	0x00000008
#define INPCK	0x00000010
#define ISTRIP	0x00000020
#define INLCR	0x00000040
#define IGNCR	0x00000080
#define ICRNL	0x00000100
#define IUCLC	0x00000200
#define IXON	0x00000400
#define IXANY	0x00000800
#define IXOFF	0x00001000
#define IMAXBEL	0x00002000

/* c_oflag bits */
#define OPOST	0x00000001
#define OLCUC	0x00000002
#define ONLCR	0x00000004
#define OCRNL	0x00000008
#define ONOCR	0x00000010
#define ONLRET	0x00000020
#define OFILL	0x00000040
#define OFDEL	0x00000080
#define NLDLY	0x00000100
#define   NL0	0x00000000
#define   NL1	0x00000100
#define CRDLY	0x00000600
#define   CR0	0x00000000
#define   CR1	0x00000200
#define   CR2	0x00000400
#define   CR3	0x00000600
#define TABDLY	0x00001800
#define   TAB0	0x00000000
#define   TAB1	0x00000800
#define   TAB2	0x00001000
#define   TAB3	0x00001800
#define   XTABS	0x00001800
#define BSDLY	0x00002000
#define   BS0	0x00000000
#define   BS1	0x00002000
#define VTDLY	0x00004000
#define   VT0	0x00000000
#define   VT1	0x00004000
#define FFDLY	0x00008000
#define   FF0	0x00000000
#define   FF1	0x00008000
#define PAGEOUT 0x00010000  /* SUNOS specific */
#define WRAP    0x00020000  /* SUNOS specific */

/* c_cflag bit meaning */
#define CBAUD	0x0000000f
#define  B0	0x00000000   /* hang up */
#define  B50	0x00000001
#define  B75	0x00000002
#define  B110	0x00000003
#define  B134	0x00000004
#define  B150	0x00000005
#define  B200	0x00000006
#define  B300	0x00000007
#define  B600	0x00000008
#define  B1200	0x00000009
#define  B1800	0x0000000a
#define  B2400	0x0000000b
#define  B4800	0x0000000c
#define  B9600	0x0000000d
#define  B19200	0x0000000e
#define  B38400	0x0000000f
#define EXTA    B19200
#define EXTB    B38400
#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
/* We'll never see these speeds with the Zilogs' but for completeness... */
#define CBAUDEX 0x00010000
#define  B57600  0x00010001
#define  B115200 0x00010002
#define  B230400 0x00010003
#define  B460800 0x00010004
#define CIBAUD	  0x000f0000  /* input baud rate (not used) */
#define CMSPAR	  010000000000		/* mark or space (stick) parity */
#define CRTSCTS	  0x80000000  /* flow control */

/* c_lflag bits */
#define ISIG	0x00000001
#define ICANON	0x00000002
#define XCASE	0x00000004
#define ECHO	0x00000008
#define ECHOE	0x00000010
#define ECHOK	0x00000020
#define ECHONL	0x00000040
#define NOFLSH	0x00000080
#define TOSTOP	0x00000100
#define ECHOCTL	0x00000200
#define ECHOPRT	0x00000400
#define ECHOKE	0x00000800
#define DEFECHO 0x00001000  /* SUNOS thing, what is it? */
#define FLUSHO	0x00002000
#define PENDIN	0x00004000
#define IEXTEN	0x00008000

/* modem lines */
#define TIOCM_LE	0x001
#define TIOCM_DTR	0x002
#define TIOCM_RTS	0x004
#define TIOCM_ST	0x008
#define TIOCM_SR	0x010
#define TIOCM_CTS	0x020
#define TIOCM_CAR	0x040
#define TIOCM_RNG	0x080
#define TIOCM_DSR	0x100
#define TIOCM_CD	TIOCM_CAR
#define TIOCM_RI	TIOCM_RNG

/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
#define TIOCSER_TEMT    0x01	/* Transmitter physically empty */


/* tcflow() and TCXONC use these */
#define	TCOOFF		0
#define	TCOON		1
#define	TCIOFF		2
#define	TCION		3

/* tcflush() and TCFLSH use these */
#define	TCIFLUSH	0
#define	TCOFLUSH	1
#define	TCIOFLUSH	2

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

#endif /* !(_SPARC_TERMBITS_H) */