Statistics
| Branch: | Revision:

root / linux-user / sparc / termbits.h @ f05d35d2

History | View | Annotate | Download (11.2 kB)

1 3bfd9da1 bellard
/* from asm/termbits.h */
2 3bfd9da1 bellard
3 3bfd9da1 bellard
#define TARGET_NCCS 19
4 3bfd9da1 bellard
5 3bfd9da1 bellard
struct target_termios {
6 3bfd9da1 bellard
    unsigned int c_iflag;               /* input mode flags */
7 3bfd9da1 bellard
    unsigned int c_oflag;               /* output mode flags */
8 3bfd9da1 bellard
    unsigned int c_cflag;               /* control mode flags */
9 3bfd9da1 bellard
    unsigned int c_lflag;               /* local mode flags */
10 3bfd9da1 bellard
    unsigned char c_line;                    /* line discipline */
11 3bfd9da1 bellard
    unsigned char c_cc[TARGET_NCCS];                /* control characters */
12 3bfd9da1 bellard
};
13 3bfd9da1 bellard
14 3bfd9da1 bellard
/* c_cc characters */
15 3bfd9da1 bellard
#define TARGET_VINTR    0
16 3bfd9da1 bellard
#define TARGET_VQUIT    1
17 3bfd9da1 bellard
#define TARGET_VERASE   2
18 3bfd9da1 bellard
#define TARGET_VKILL    3
19 3bfd9da1 bellard
#define TARGET_VEOF     4
20 3bfd9da1 bellard
#define TARGET_VEOL     5
21 3bfd9da1 bellard
#define TARGET_VEOL2    6
22 3bfd9da1 bellard
#define TARGET_VSWTC    7
23 3bfd9da1 bellard
#define TARGET_VSTART   8
24 3bfd9da1 bellard
#define TARGET_VSTOP    9
25 3bfd9da1 bellard
26 3bfd9da1 bellard
#define TARGET_VSUSP    10
27 3bfd9da1 bellard
#define TARGET_VDSUSP   11  /* SunOS POSIX nicety I do believe... */
28 3bfd9da1 bellard
#define TARGET_VREPRINT 12
29 3bfd9da1 bellard
#define TARGET_VDISCARD 13
30 3bfd9da1 bellard
#define TARGET_VWERASE  14
31 3bfd9da1 bellard
#define TARGET_VLNEXT   15
32 3bfd9da1 bellard
33 3bfd9da1 bellard
/* Kernel keeps vmin/vtime separated, user apps assume vmin/vtime is
34 3bfd9da1 bellard
 * shared with eof/eol
35 3bfd9da1 bellard
 */
36 3bfd9da1 bellard
#define TARGET_VMIN     TARGET_VEOF
37 3bfd9da1 bellard
#define TARGET_VTIME    TARGET_VEOL
38 3bfd9da1 bellard
39 3bfd9da1 bellard
/* c_iflag bits */
40 3bfd9da1 bellard
#define TARGET_IGNBRK        0x00000001
41 3bfd9da1 bellard
#define TARGET_BRKINT        0x00000002
42 3bfd9da1 bellard
#define TARGET_IGNPAR        0x00000004
43 3bfd9da1 bellard
#define TARGET_PARMRK        0x00000008
44 3bfd9da1 bellard
#define TARGET_INPCK        0x00000010
45 3bfd9da1 bellard
#define TARGET_ISTRIP        0x00000020
46 3bfd9da1 bellard
#define TARGET_INLCR        0x00000040
47 3bfd9da1 bellard
#define TARGET_IGNCR        0x00000080
48 3bfd9da1 bellard
#define TARGET_ICRNL        0x00000100
49 3bfd9da1 bellard
#define TARGET_IUCLC        0x00000200
50 3bfd9da1 bellard
#define TARGET_IXON        0x00000400
51 3bfd9da1 bellard
#define TARGET_IXANY        0x00000800
52 3bfd9da1 bellard
#define TARGET_IXOFF        0x00001000
53 3bfd9da1 bellard
#define TARGET_IMAXBEL        0x00002000
54 f05d35d2 ths
#define TARGET_IUTF8        0x00004000
55 3bfd9da1 bellard
56 3bfd9da1 bellard
/* c_oflag bits */
57 3bfd9da1 bellard
#define TARGET_OPOST        0x00000001
58 3bfd9da1 bellard
#define TARGET_OLCUC        0x00000002
59 3bfd9da1 bellard
#define TARGET_ONLCR        0x00000004
60 3bfd9da1 bellard
#define TARGET_OCRNL        0x00000008
61 3bfd9da1 bellard
#define TARGET_ONOCR        0x00000010
62 3bfd9da1 bellard
#define TARGET_ONLRET        0x00000020
63 3bfd9da1 bellard
#define TARGET_OFILL        0x00000040
64 3bfd9da1 bellard
#define TARGET_OFDEL        0x00000080
65 3bfd9da1 bellard
#define TARGET_NLDLY        0x00000100
66 3bfd9da1 bellard
#define   TARGET_NL0        0x00000000
67 3bfd9da1 bellard
#define   TARGET_NL1        0x00000100
68 3bfd9da1 bellard
#define TARGET_CRDLY        0x00000600
69 3bfd9da1 bellard
#define   TARGET_CR0        0x00000000
70 3bfd9da1 bellard
#define   TARGET_CR1        0x00000200
71 3bfd9da1 bellard
#define   TARGET_CR2        0x00000400
72 3bfd9da1 bellard
#define   TARGET_CR3        0x00000600
73 3bfd9da1 bellard
#define TARGET_TABDLY        0x00001800
74 3bfd9da1 bellard
#define   TARGET_TAB0        0x00000000
75 3bfd9da1 bellard
#define   TARGET_TAB1        0x00000800
76 3bfd9da1 bellard
#define   TARGET_TAB2        0x00001000
77 3bfd9da1 bellard
#define   TARGET_TAB3        0x00001800
78 3bfd9da1 bellard
#define   TARGET_XTABS        0x00001800
79 3bfd9da1 bellard
#define TARGET_BSDLY        0x00002000
80 3bfd9da1 bellard
#define   TARGET_BS0        0x00000000
81 3bfd9da1 bellard
#define   TARGET_BS1        0x00002000
82 3bfd9da1 bellard
#define TARGET_VTDLY        0x00004000
83 3bfd9da1 bellard
#define   TARGET_VT0        0x00000000
84 3bfd9da1 bellard
#define   TARGET_VT1        0x00004000
85 3bfd9da1 bellard
#define TARGET_FFDLY        0x00008000
86 3bfd9da1 bellard
#define   TARGET_FF0        0x00000000
87 3bfd9da1 bellard
#define   TARGET_FF1        0x00008000
88 3bfd9da1 bellard
#define TARGET_PAGEOUT 0x00010000  /* SUNOS specific */
89 3bfd9da1 bellard
#define TARGET_WRAP    0x00020000  /* SUNOS specific */
90 3bfd9da1 bellard
91 3bfd9da1 bellard
/* c_cflag bit meaning */
92 3bfd9da1 bellard
#define TARGET_CBAUD          0x0000100f
93 3bfd9da1 bellard
#define  TARGET_B0          0x00000000   /* hang up */
94 3bfd9da1 bellard
#define  TARGET_B50          0x00000001
95 3bfd9da1 bellard
#define  TARGET_B75          0x00000002
96 3bfd9da1 bellard
#define  TARGET_B110          0x00000003
97 3bfd9da1 bellard
#define  TARGET_B134          0x00000004
98 3bfd9da1 bellard
#define  TARGET_B150          0x00000005
99 3bfd9da1 bellard
#define  TARGET_B200          0x00000006
100 3bfd9da1 bellard
#define  TARGET_B300          0x00000007
101 3bfd9da1 bellard
#define  TARGET_B600          0x00000008
102 3bfd9da1 bellard
#define  TARGET_B1200          0x00000009
103 3bfd9da1 bellard
#define  TARGET_B1800          0x0000000a
104 3bfd9da1 bellard
#define  TARGET_B2400          0x0000000b
105 3bfd9da1 bellard
#define  TARGET_B4800          0x0000000c
106 3bfd9da1 bellard
#define  TARGET_B9600          0x0000000d
107 3bfd9da1 bellard
#define  TARGET_B19200          0x0000000e
108 3bfd9da1 bellard
#define  TARGET_B38400          0x0000000f
109 3bfd9da1 bellard
#define TARGET_EXTA      B19200
110 3bfd9da1 bellard
#define TARGET_EXTB      B38400
111 3bfd9da1 bellard
#define  TARGET_CSIZE    0x00000030
112 3bfd9da1 bellard
#define   TARGET_CS5          0x00000000
113 3bfd9da1 bellard
#define   TARGET_CS6          0x00000010
114 3bfd9da1 bellard
#define   TARGET_CS7          0x00000020
115 3bfd9da1 bellard
#define   TARGET_CS8          0x00000030
116 3bfd9da1 bellard
#define TARGET_CSTOPB          0x00000040
117 3bfd9da1 bellard
#define TARGET_CREAD          0x00000080
118 3bfd9da1 bellard
#define TARGET_PARENB          0x00000100
119 3bfd9da1 bellard
#define TARGET_PARODD          0x00000200
120 3bfd9da1 bellard
#define TARGET_HUPCL          0x00000400
121 3bfd9da1 bellard
#define TARGET_CLOCAL          0x00000800
122 3bfd9da1 bellard
#define TARGET_CBAUDEX   0x00001000
123 3bfd9da1 bellard
/* We'll never see these speeds with the Zilogs, but for completeness... */
124 3bfd9da1 bellard
#define  TARGET_B57600   0x00001001
125 3bfd9da1 bellard
#define  TARGET_B115200  0x00001002
126 3bfd9da1 bellard
#define  TARGET_B230400  0x00001003
127 3bfd9da1 bellard
#define  TARGET_B460800  0x00001004
128 3bfd9da1 bellard
/* This is what we can do with the Zilogs. */
129 3bfd9da1 bellard
#define  TARGET_B76800   0x00001005
130 3bfd9da1 bellard
/* This is what we can do with the SAB82532. */
131 3bfd9da1 bellard
#define  TARGET_B153600  0x00001006
132 3bfd9da1 bellard
#define  TARGET_B307200  0x00001007
133 3bfd9da1 bellard
#define  TARGET_B614400  0x00001008
134 3bfd9da1 bellard
#define  TARGET_B921600  0x00001009
135 3bfd9da1 bellard
/* And these are the rest... */
136 3bfd9da1 bellard
#define  TARGET_B500000  0x0000100a
137 3bfd9da1 bellard
#define  TARGET_B576000  0x0000100b
138 3bfd9da1 bellard
#define TARGET_B1000000  0x0000100c
139 3bfd9da1 bellard
#define TARGET_B1152000  0x0000100d
140 3bfd9da1 bellard
#define TARGET_B1500000  0x0000100e
141 3bfd9da1 bellard
#define TARGET_B2000000  0x0000100f
142 3bfd9da1 bellard
/* These have totally bogus values and nobody uses them
143 3bfd9da1 bellard
   so far. Later on we'd have to use say 0x10000x and
144 3bfd9da1 bellard
   adjust CBAUD constant and drivers accordingly.
145 3bfd9da1 bellard
#define B2500000  0x00001010
146 3bfd9da1 bellard
#define B3000000  0x00001011
147 3bfd9da1 bellard
#define B3500000  0x00001012
148 3bfd9da1 bellard
#define B4000000  0x00001013  */
149 3bfd9da1 bellard
#define TARGET_CIBAUD          0x100f0000  /* input baud rate (not used) */
150 3bfd9da1 bellard
#define TARGET_CMSPAR          0x40000000  /* mark or space (stick) parity */
151 3bfd9da1 bellard
#define TARGET_CRTSCTS          0x80000000  /* flow control */
152 3bfd9da1 bellard
153 3bfd9da1 bellard
/* c_lflag bits */
154 3bfd9da1 bellard
#define TARGET_ISIG        0x00000001
155 3bfd9da1 bellard
#define TARGET_ICANON        0x00000002
156 3bfd9da1 bellard
#define TARGET_XCASE        0x00000004
157 3bfd9da1 bellard
#define TARGET_ECHO        0x00000008
158 3bfd9da1 bellard
#define TARGET_ECHOE        0x00000010
159 3bfd9da1 bellard
#define TARGET_ECHOK        0x00000020
160 3bfd9da1 bellard
#define TARGET_ECHONL        0x00000040
161 3bfd9da1 bellard
#define TARGET_NOFLSH        0x00000080
162 3bfd9da1 bellard
#define TARGET_TOSTOP        0x00000100
163 3bfd9da1 bellard
#define TARGET_ECHOCTL        0x00000200
164 3bfd9da1 bellard
#define TARGET_ECHOPRT        0x00000400
165 3bfd9da1 bellard
#define TARGET_ECHOKE        0x00000800
166 3bfd9da1 bellard
#define TARGET_DEFECHO  0x00001000  /* SUNOS thing, what is it? */
167 3bfd9da1 bellard
#define TARGET_FLUSHO        0x00002000
168 3bfd9da1 bellard
#define TARGET_PENDIN        0x00004000
169 3bfd9da1 bellard
#define TARGET_IEXTEN        0x00008000
170 3bfd9da1 bellard
171 3bfd9da1 bellard
/* ioctls */
172 3bfd9da1 bellard
173 3bfd9da1 bellard
/* Big T */
174 3bfd9da1 bellard
#define TARGET_TCGETA                TARGET_IOR('T', 1, struct target_termio)
175 3bfd9da1 bellard
#define TARGET_TCSETA                TARGET_IOW('T', 2, struct target_termio)
176 3bfd9da1 bellard
#define TARGET_TCSETAW                TARGET_IOW('T', 3, struct target_termio)
177 3bfd9da1 bellard
#define TARGET_TCSETAF                TARGET_IOW('T', 4, struct target_termio)
178 3bfd9da1 bellard
#define TARGET_TCSBRK                TARGET_IO('T', 5)
179 3bfd9da1 bellard
#define TARGET_TCXONC                TARGET_IO('T', 6)
180 3bfd9da1 bellard
#define TARGET_TCFLSH                TARGET_IO('T', 7)
181 3bfd9da1 bellard
#define TARGET_TCGETS                TARGET_IOR('T', 8, struct target_termios)
182 3bfd9da1 bellard
#define TARGET_TCSETS                TARGET_IOW('T', 9, struct target_termios)
183 3bfd9da1 bellard
#define TARGET_TCSETSW                TARGET_IOW('T', 10, struct target_termios)
184 3bfd9da1 bellard
#define TARGET_TCSETSF                TARGET_IOW('T', 11, struct target_termios)
185 3bfd9da1 bellard
186 5fafdf24 ths
/* Note that all the ioctls that are not available in Linux have a
187 3bfd9da1 bellard
 * double underscore on the front to: a) avoid some programs to
188 3bfd9da1 bellard
 * thing we support some ioctls under Linux (autoconfiguration stuff)
189 3bfd9da1 bellard
 */
190 3bfd9da1 bellard
/* Little t */
191 3bfd9da1 bellard
#define TARGET_TIOCGETD        TARGET_IOR('t', 0, int)
192 3bfd9da1 bellard
#define TARGET_TIOCSETD        TARGET_IOW('t', 1, int)
193 3bfd9da1 bellard
//#define __TIOCHPCL        _IO('t', 2) /* SunOS Specific */
194 3bfd9da1 bellard
//#define __TIOCMODG        _IOR('t', 3, int) /* SunOS Specific */
195 3bfd9da1 bellard
//#define __TIOCMODS        _IOW('t', 4, int) /* SunOS Specific */
196 3bfd9da1 bellard
//#define __TIOCGETP        _IOR('t', 8, struct sgttyb) /* SunOS Specific */
197 3bfd9da1 bellard
//#define __TIOCSETP        _IOW('t', 9, struct sgttyb) /* SunOS Specific */
198 3bfd9da1 bellard
//#define __TIOCSETN        _IOW('t', 10, struct sgttyb) /* SunOS Specific */
199 3bfd9da1 bellard
#define TARGET_TIOCEXCL        TARGET_IO('t', 13)
200 3bfd9da1 bellard
#define TARGET_TIOCNXCL        TARGET_IO('t', 14)
201 3bfd9da1 bellard
//#define __TIOCFLUSH       _IOW('t', 16, int) /* SunOS Specific */
202 3bfd9da1 bellard
//#define __TIOCSETC        _IOW('t', 17, struct tchars) /* SunOS Specific */
203 3bfd9da1 bellard
//#define __TIOCGETC        _IOR('t', 18, struct tchars) /* SunOS Specific */
204 3bfd9da1 bellard
//#define __TIOCTCNTL       _IOW('t', 32, int) /* SunOS Specific */
205 3bfd9da1 bellard
//#define __TIOCSIGNAL      _IOW('t', 33, int) /* SunOS Specific */
206 3bfd9da1 bellard
//#define __TIOCSETX        _IOW('t', 34, int) /* SunOS Specific */
207 3bfd9da1 bellard
//#define __TIOCGETX        _IOR('t', 35, int) /* SunOS Specific */
208 3bfd9da1 bellard
#define TARGET_TIOCCONS        TARGET_IO('t', 36)
209 3bfd9da1 bellard
//#define __TIOCSSIZE     _IOW('t', 37, struct sunos_ttysize) /* SunOS Specific */
210 3bfd9da1 bellard
//#define __TIOCGSIZE     _IOR('t', 38, struct sunos_ttysize) /* SunOS Specific */
211 3bfd9da1 bellard
#define TARGET_TIOCGSOFTCAR        TARGET_IOR('t', 100, int)
212 3bfd9da1 bellard
#define TARGET_TIOCSSOFTCAR        TARGET_IOW('t', 101, int)
213 3bfd9da1 bellard
//#define __TIOCUCNTL       _IOW('t', 102, int) /* SunOS Specific */
214 3bfd9da1 bellard
#define TARGET_TIOCSWINSZ        TARGET_IOW('t', 103, struct winsize)
215 3bfd9da1 bellard
#define TARGET_TIOCGWINSZ        TARGET_IOR('t', 104, struct winsize)
216 3bfd9da1 bellard
//#define __TIOCREMOTE      _IOW('t', 105, int) /* SunOS Specific */
217 3bfd9da1 bellard
#define TARGET_TIOCMGET        TARGET_IOR('t', 106, int)
218 3bfd9da1 bellard
#define TARGET_TIOCMBIC        TARGET_IOW('t', 107, int)
219 3bfd9da1 bellard
#define TARGET_TIOCMBIS        TARGET_IOW('t', 108, int)
220 3bfd9da1 bellard
#define TARGET_TIOCMSET        TARGET_IOW('t', 109, int)
221 3bfd9da1 bellard
#define TARGET_TIOCSTART       TARGET_IO('t', 110)
222 3bfd9da1 bellard
#define TARGET_TIOCSTOP        TARGET_IO('t', 111)
223 3bfd9da1 bellard
#define TARGET_TIOCPKT                TARGET_IOW('t', 112, int)
224 3bfd9da1 bellard
#define TARGET_TIOCNOTTY        TARGET_IO('t', 113)
225 3bfd9da1 bellard
#define TARGET_TIOCSTI                TARGET_IOW('t', 114, char)
226 3bfd9da1 bellard
#define TARGET_TIOCOUTQ        TARGET_IOR('t', 115, int)
227 3bfd9da1 bellard
//#define __TIOCGLTC        _IOR('t', 116, struct ltchars) /* SunOS Specific */
228 3bfd9da1 bellard
//#define __TIOCSLTC        _IOW('t', 117, struct ltchars) /* SunOS Specific */
229 3bfd9da1 bellard
/* 118 is the non-posix setpgrp tty ioctl */
230 3bfd9da1 bellard
/* 119 is the non-posix getpgrp tty ioctl */
231 3bfd9da1 bellard
//#define __TIOCCDTR        TARGET_IO('t', 120) /* SunOS Specific */
232 3bfd9da1 bellard
//#define __TIOCSDTR        TARGET_IO('t', 121) /* SunOS Specific */
233 3bfd9da1 bellard
#define TARGET_TIOCCBRK        TARGET_IO('t', 122)
234 3bfd9da1 bellard
#define TARGET_TIOCSBRK        TARGET_IO('t', 123)
235 3bfd9da1 bellard
//#define __TIOCLGET        TARGET_IOW('t', 124, int) /* SunOS Specific */
236 3bfd9da1 bellard
//#define __TIOCLSET        TARGET_IOW('t', 125, int) /* SunOS Specific */
237 3bfd9da1 bellard
//#define __TIOCLBIC        TARGET_IOW('t', 126, int) /* SunOS Specific */
238 3bfd9da1 bellard
//#define __TIOCLBIS        TARGET_IOW('t', 127, int) /* SunOS Specific */
239 3bfd9da1 bellard
//#define __TIOCISPACE      TARGET_IOR('t', 128, int) /* SunOS Specific */
240 3bfd9da1 bellard
//#define __TIOCISIZE       TARGET_IOR('t', 129, int) /* SunOS Specific */
241 3bfd9da1 bellard
#define TARGET_TIOCSPGRP        TARGET_IOW('t', 130, int)
242 3bfd9da1 bellard
#define TARGET_TIOCGPGRP        TARGET_IOR('t', 131, int)
243 3bfd9da1 bellard
#define TARGET_TIOCSCTTY        TARGET_IO('t', 132)
244 3bfd9da1 bellard
#define TARGET_TIOCGSID        TARGET_IOR('t', 133, int)
245 3bfd9da1 bellard
/* Get minor device of a pty master's FD -- Solaris equiv is ISPTM */
246 3bfd9da1 bellard
#define TARGET_TIOCGPTN        TARGET_IOR('t', 134, unsigned int) /* Get Pty Number */
247 3bfd9da1 bellard
#define TARGET_TIOCSPTLCK        TARGET_IOW('t', 135, int) /* Lock/unlock PTY */
248 3bfd9da1 bellard
249 3bfd9da1 bellard
/* Little f */
250 3bfd9da1 bellard
#define TARGET_FIOCLEX                TARGET_IO('f', 1)
251 3bfd9da1 bellard
#define TARGET_FIONCLEX        TARGET_IO('f', 2)
252 3bfd9da1 bellard
#define TARGET_FIOASYNC        TARGET_IOW('f', 125, int)
253 3bfd9da1 bellard
#define TARGET_FIONBIO                TARGET_IOW('f', 126, int)
254 3bfd9da1 bellard
#define TARGET_FIONREAD        TARGET_IOR('f', 127, int)
255 3bfd9da1 bellard
#define TARGET_TIOCINQ                TARGET_FIONREAD
256 3bfd9da1 bellard
257 3bfd9da1 bellard
/* SCARY Rutgers local SunOS kernel hackery, perhaps I will support it
258 3bfd9da1 bellard
 * someday.  This is completely bogus, I know...
259 3bfd9da1 bellard
 */
260 3bfd9da1 bellard
//#define __TCGETSTAT       TARGET_IO('T', 200) /* Rutgers specific */
261 3bfd9da1 bellard
//#define __TCSETSTAT       TARGET_IO('T', 201) /* Rutgers specific */
262 3bfd9da1 bellard
263 3bfd9da1 bellard
/* Linux specific, no SunOS equivalent. */
264 3bfd9da1 bellard
#define TARGET_TIOCLINUX        0x541C
265 3bfd9da1 bellard
#define TARGET_TIOCGSERIAL        0x541E
266 3bfd9da1 bellard
#define TARGET_TIOCSSERIAL        0x541F
267 3bfd9da1 bellard
#define TARGET_TCSBRKP                0x5425
268 3bfd9da1 bellard
#define TARGET_TIOCTTYGSTRUCT        0x5426
269 3bfd9da1 bellard
#define TARGET_TIOCSERCONFIG        0x5453
270 3bfd9da1 bellard
#define TARGET_TIOCSERGWILD        0x5454
271 3bfd9da1 bellard
#define TARGET_TIOCSERSWILD        0x5455
272 3bfd9da1 bellard
#define TARGET_TIOCGLCKTRMIOS        0x5456
273 3bfd9da1 bellard
#define TARGET_TIOCSLCKTRMIOS        0x5457
274 3bfd9da1 bellard
#define TARGET_TIOCSERGSTRUCT        0x5458 /* For debugging only */
275 3bfd9da1 bellard
#define TARGET_TIOCSERGETLSR   0x5459 /* Get line status register */
276 3bfd9da1 bellard
#define TARGET_TIOCSERGETMULTI 0x545A /* Get multiport config  */
277 3bfd9da1 bellard
#define TARGET_TIOCSERSETMULTI 0x545B /* Set multiport config */
278 3bfd9da1 bellard
#define TARGET_TIOCMIWAIT        0x545C /* Wait input */
279 3bfd9da1 bellard
#define TARGET_TIOCGICOUNT        0x545D /* Read serial port inline interrupt counts */