1 /* $NetBSD: ibcs2_termios.h,v 1.3 1994/10/26 02:53:07 cgd Exp $ */ 2 /* $FreeBSD: stable/10/sys/i386/ibcs2/ibcs2_termios.h 139799 2005-01-06 23:22:04Z imp $ */ 3 4 /*- 5 * Copyright (c) 1994 Scott Bartram 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: 11 * 1. Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * 2. Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in the 15 * documentation and/or other materials provided with the distribution. 16 * 3. All advertising materials mentioning features or use of this software 17 * must display the following acknowledgement: 18 * This product includes software developed by Scott Bartram. 19 * 4. The name of the author may not be used to endorse or promote products 20 * derived from this software without specific prior written permission 21 * 22 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 23 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 24 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 25 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 26 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 27 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 28 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 29 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 30 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 31 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 */ 33 34 #ifndef _IBCS2_TERMIOS_H 35 #define _IBCS2_TERMIOS_H 1 36 37 #include <i386/ibcs2/ibcs2_types.h> 38 39 #define IBCS2_NCC 8 40 #define IBCS2_NCCS 13 41 42 typedef u_short ibcs2_tcflag_t; 43 typedef u_char ibcs2_cc_t; 44 typedef u_long ibcs2_speed_t; 45 46 struct ibcs2_termio { 47 u_short c_iflag; 48 u_short c_oflag; 49 u_short c_cflag; 50 u_short c_lflag; 51 char c_line; 52 u_char c_cc[IBCS2_NCC]; 53 }; 54 55 struct ibcs2_termios { 56 ibcs2_tcflag_t c_iflag; 57 ibcs2_tcflag_t c_oflag; 58 ibcs2_tcflag_t c_cflag; 59 ibcs2_tcflag_t c_lflag; 60 char c_line; 61 ibcs2_cc_t c_cc[IBCS2_NCCS]; 62 char c_ispeed; 63 char c_ospeed; 64 }; 65 66 #define IBCS2_VINTR 0 67 #define IBCS2_VQUIT 1 68 #define IBCS2_VERASE 2 69 #define IBCS2_VKILL 3 70 #define IBCS2_VEOF 4 71 #define IBCS2_VEOL 5 72 #define IBCS2_VEOL2 6 73 #define IBCS2_VMIN 4 74 #define IBCS2_VTIME 5 75 #define IBCS2_VSWTCH 7 76 #define IBCS2_VSUSP 10 77 #define IBCS2_VSTART 11 78 #define IBCS2_VSTOP 12 79 80 #define IBCS2_CNUL 0 81 #define IBCS2_CDEL 0377 82 #define IBCS2_CESC '\\' 83 #define IBCS2_CINTR 0177 84 #define IBCS2_CQUIT 034 85 #define IBCS2_CERASE '#' 86 #define IBCS2_CKILL '@' 87 #define IBCS2_CSTART 021 88 #define IBCS2_CSTOP 023 89 #define IBCS2_CSWTCH 032 90 #define IBCS2_CNSWTCH 0 91 #define IBCS2_CSUSP 032 92 93 #define IBCS2_IGNBRK 0000001 94 #define IBCS2_BRKINT 0000002 95 #define IBCS2_IGNPAR 0000004 96 #define IBCS2_PARMRK 0000010 97 #define IBCS2_INPCK 0000020 98 #define IBCS2_ISTRIP 0000040 99 #define IBCS2_INLCR 0000100 100 #define IBCS2_IGNCR 0000200 101 #define IBCS2_ICRNL 0000400 102 #define IBCS2_IUCLC 0001000 103 #define IBCS2_IXON 0002000 104 #define IBCS2_IXANY 0004000 105 #define IBCS2_IXOFF 0010000 106 #define IBCS2_IMAXBEL 0020000 107 #define IBCS2_DOSMODE 0100000 108 109 #define IBCS2_OPOST 0000001 110 #define IBCS2_OLCUC 0000002 111 #define IBCS2_ONLCR 0000004 112 #define IBCS2_OCRNL 0000010 113 #define IBCS2_ONOCR 0000020 114 #define IBCS2_ONLRET 0000040 115 #define IBCS2_OFILL 0000100 116 #define IBCS2_OFDEL 0000200 117 #define IBCS2_NLDLY 0000400 118 #define IBCS2_NL0 0000000 119 #define IBCS2_NL1 0000400 120 #define IBCS2_CRDLY 0003000 121 #define IBCS2_CR0 0000000 122 #define IBCS2_CR1 0001000 123 #define IBCS2_CR2 0002000 124 #define IBCS2_CR3 0003000 125 #define IBCS2_TABDLY 0014000 126 #define IBCS2_TAB0 0000000 127 #define IBCS2_TAB1 0004000 128 #define IBCS2_TAB2 0010000 129 #define IBCS2_TAB3 0014000 130 #define IBCS2_BSDLY 0020000 131 #define IBCS2_BS0 0000000 132 #define IBCS2_BS1 0020000 133 #define IBCS2_VTDLY 0040000 134 #define IBCS2_VT0 0000000 135 #define IBCS2_VT1 0040000 136 #define IBCS2_FFDLY 0100000 137 #define IBCS2_FF0 0000000 138 #define IBCS2_FF1 0100000 139 140 #define IBCS2_CBAUD 0000017 141 #define IBCS2_CSIZE 0000060 142 #define IBCS2_CS5 0000000 143 #define IBCS2_CS6 0000020 144 #define IBCS2_CS7 0000040 145 #define IBCS2_CS8 0000060 146 #define IBCS2_CSTOPB 0000100 147 #define IBCS2_CREAD 0000200 148 #define IBCS2_PARENB 0000400 149 #define IBCS2_PARODD 0001000 150 #define IBCS2_HUPCL 0002000 151 #define IBCS2_CLOCAL 0004000 152 #define IBCS2_RCV1EN 0010000 153 #define IBCS2_XMT1EN 0020000 154 #define IBCS2_LOBLK 0040000 155 #define IBCS2_XCLUDE 0100000 156 157 #define IBCS2_ISIG 0000001 158 #define IBCS2_ICANON 0000002 159 #define IBCS2_XCASE 0000004 160 #define IBCS2_ECHO 0000010 161 #define IBCS2_ECHOE 0000020 162 #define IBCS2_ECHOK 0000040 163 #define IBCS2_ECHONL 0000100 164 #define IBCS2_NOFLSH 0000200 165 #define IBCS2_IEXTEN 0000400 166 #define IBCS2_TOSTOP 0001000 167 168 #define IBCS2_XIOC (('i'<<24)|('X'<<16)) 169 #define IBCS2_XCGETA (IBCS2_XIOC|1) 170 #define IBCS2_XCSETA (IBCS2_XIOC|2) 171 #define IBCS2_XCSETAW (IBCS2_XIOC|3) 172 #define IBCS2_XCSETAF (IBCS2_XIOC|4) 173 174 #define IBCS2_OXIOC ('x'<<8) 175 #define IBCS2_OXCGETA (IBCS2_OXIOC|1) 176 #define IBCS2_OXCSETA (IBCS2_OXIOC|2) 177 #define IBCS2_OXCSETAW (IBCS2_OXIOC|3) 178 #define IBCS2_OXCSETAF (IBCS2_OXIOC|4) 179 180 #define IBCS2_TIOC ('T'<<8) 181 #define IBCS2_TCGETA (IBCS2_TIOC|1) 182 #define IBCS2_TCSETA (IBCS2_TIOC|2) 183 #define IBCS2_TCSETAW (IBCS2_TIOC|3) 184 #define IBCS2_TCSETAF (IBCS2_TIOC|4) 185 #define IBCS2_TCSBRK (IBCS2_TIOC|5) 186 #define IBCS2_TCXONC (IBCS2_TIOC|6) 187 #define IBCS2_TCFLSH (IBCS2_TIOC|7) 188 189 #define IBCS2_TCGETSC (IBCS2_TIOC|34) 190 #define IBCS2_TCSETSC (IBCS2_TIOC|35) 191 192 #define IBCS2_TIOCSWINSZ (IBCS2_TIOC|103) 193 #define IBCS2_TIOCGWINSZ (IBCS2_TIOC|104) 194 #define IBCS2_TIOCSPGRP (IBCS2_TIOC|118) 195 #define IBCS2_TIOCGPGRP (IBCS2_TIOC|119) 196 197 #define IBCS2_TCSANOW IBCS2_XCSETA 198 #define IBCS2_TCSADRAIN IBCS2_XCSETAW 199 #define IBCS2_TCSAFLUSH IBCS2_XCSETAF 200 #define IBCS2_TCSADFLUSH IBCS2_XCSETAF 201 202 #define IBCS2_TCIFLUSH 0 203 #define IBCS2_TCOFLUSH 1 204 #define IBCS2_TCIOFLUSH 2 205 206 #define IBCS2_TCOOFF 0 207 #define IBCS2_TCOON 1 208 #define IBCS2_TCIOFF 2 209 #define IBCS2_TCION 3 210 211 #define IBCS2_B0 0 212 #define IBCS2_B50 1 213 #define IBCS2_B75 2 214 #define IBCS2_B110 3 215 #define IBCS2_B134 4 216 #define IBCS2_B150 5 217 #define IBCS2_B200 6 218 #define IBCS2_B300 7 219 #define IBCS2_B600 8 220 #define IBCS2_B1200 9 221 #define IBCS2_B1800 10 222 #define IBCS2_B2400 11 223 #define IBCS2_B4800 12 224 #define IBCS2_B9600 13 225 #define IBCS2_B19200 14 226 #define IBCS2_B38400 15 227 228 struct ibcs2_winsize { 229 u_short ws_row; 230 u_short ws_col; 231 u_short ws_xpixel; 232 u_short ws_ypixel; 233 }; 234 235 #endif /* _IBCS2_H_ */ 236 237