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