Statistics
| Branch: | Revision:

root / linux-user / sparc / termbits.h @ 5fafdf24

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