|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * The contents of this file constitute Original Code as defined in and ! 7: * are subject to the Apple Public Source License Version 1.1 (the ! 8: * "License"). You may not use this file except in compliance with the ! 9: * License. Please obtain a copy of the License at ! 10: * http://www.apple.com/publicsource and read it before using this file. ! 11: * ! 12: * This Original Code and all software distributed under the License are ! 13: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 14: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 15: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 16: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 17: * License for the specific language governing rights and limitations ! 18: * under the License. ! 19: * ! 20: * @APPLE_LICENSE_HEADER_END@ ! 21: */ ! 22: /* Copyright (c) 1997 Apple Computer, Inc. All Rights Reserved */ ! 23: /* ! 24: * Copyright (c) 1988, 1989, 1993, 1994 ! 25: * The Regents of the University of California. All rights reserved. ! 26: * ! 27: * Redistribution and use in source and binary forms, with or without ! 28: * modification, are permitted provided that the following conditions ! 29: * are met: ! 30: * 1. Redistributions of source code must retain the above copyright ! 31: * notice, this list of conditions and the following disclaimer. ! 32: * 2. Redistributions in binary form must reproduce the above copyright ! 33: * notice, this list of conditions and the following disclaimer in the ! 34: * documentation and/or other materials provided with the distribution. ! 35: * 3. All advertising materials mentioning features or use of this software ! 36: * must display the following acknowledgement: ! 37: * This product includes software developed by the University of ! 38: * California, Berkeley and its contributors. ! 39: * 4. Neither the name of the University nor the names of its contributors ! 40: * may be used to endorse or promote products derived from this software ! 41: * without specific prior written permission. ! 42: * ! 43: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ! 44: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ! 45: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ! 46: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ! 47: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ! 48: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ! 49: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ! 50: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ! 51: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ! 52: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ! 53: * SUCH DAMAGE. ! 54: * ! 55: * @(#)termios.h 8.3 (Berkeley) 3/28/94 ! 56: */ ! 57: ! 58: #ifndef _SYS_TERMIOS_H_ ! 59: #define _SYS_TERMIOS_H_ ! 60: ! 61: /* ! 62: * Special Control Characters ! 63: * ! 64: * Index into c_cc[] character array. ! 65: * ! 66: * Name Subscript Enabled by ! 67: */ ! 68: #define VEOF 0 /* ICANON */ ! 69: #define VEOL 1 /* ICANON */ ! 70: #ifndef _POSIX_SOURCE ! 71: #define VEOL2 2 /* ICANON together with IEXTEN */ ! 72: #endif ! 73: #define VERASE 3 /* ICANON */ ! 74: #ifndef _POSIX_SOURCE ! 75: #define VWERASE 4 /* ICANON together with IEXTEN */ ! 76: #endif ! 77: #define VKILL 5 /* ICANON */ ! 78: #ifndef _POSIX_SOURCE ! 79: #define VREPRINT 6 /* ICANON together with IEXTEN */ ! 80: #endif ! 81: /* 7 spare 1 */ ! 82: #define VINTR 8 /* ISIG */ ! 83: #define VQUIT 9 /* ISIG */ ! 84: #define VSUSP 10 /* ISIG */ ! 85: #ifndef _POSIX_SOURCE ! 86: #define VDSUSP 11 /* ISIG together with IEXTEN */ ! 87: #endif ! 88: #define VSTART 12 /* IXON, IXOFF */ ! 89: #define VSTOP 13 /* IXON, IXOFF */ ! 90: #ifndef _POSIX_SOURCE ! 91: #define VLNEXT 14 /* IEXTEN */ ! 92: #define VDISCARD 15 /* IEXTEN */ ! 93: #endif ! 94: #define VMIN 16 /* !ICANON */ ! 95: #define VTIME 17 /* !ICANON */ ! 96: #ifndef _POSIX_SOURCE ! 97: #define VSTATUS 18 /* ICANON together with IEXTEN */ ! 98: /* 19 spare 2 */ ! 99: #endif ! 100: #define NCCS 20 ! 101: ! 102: #ifndef _POSIX_VDISABLE ! 103: #define _POSIX_VDISABLE 0xff ! 104: #endif ! 105: ! 106: #ifndef _POSIX_SOURCE ! 107: #define CCEQ(val, c) ((c) == (val) ? (val) != _POSIX_VDISABLE : 0) ! 108: #endif ! 109: ! 110: /* ! 111: * Input flags - software input processing ! 112: */ ! 113: #define IGNBRK 0x00000001 /* ignore BREAK condition */ ! 114: #define BRKINT 0x00000002 /* map BREAK to SIGINTR */ ! 115: #define IGNPAR 0x00000004 /* ignore (discard) parity errors */ ! 116: #define PARMRK 0x00000008 /* mark parity and framing errors */ ! 117: #define INPCK 0x00000010 /* enable checking of parity errors */ ! 118: #define ISTRIP 0x00000020 /* strip 8th bit off chars */ ! 119: #define INLCR 0x00000040 /* map NL into CR */ ! 120: #define IGNCR 0x00000080 /* ignore CR */ ! 121: #define ICRNL 0x00000100 /* map CR to NL (ala CRMOD) */ ! 122: #define IXON 0x00000200 /* enable output flow control */ ! 123: #define IXOFF 0x00000400 /* enable input flow control */ ! 124: #ifndef _POSIX_SOURCE ! 125: #define IXANY 0x00000800 /* any char will restart after stop */ ! 126: #define IMAXBEL 0x00002000 /* ring bell on input queue full */ ! 127: #endif /*_POSIX_SOURCE */ ! 128: ! 129: /* ! 130: * Output flags - software output processing ! 131: */ ! 132: #define OPOST 0x00000001 /* enable following output processing */ ! 133: #ifndef _POSIX_SOURCE ! 134: #define ONLCR 0x00000002 /* map NL to CR-NL (ala CRMOD) */ ! 135: #define OXTABS 0x00000004 /* expand tabs to spaces */ ! 136: #define ONOEOT 0x00000008 /* discard EOT's (^D) on output) */ ! 137: #endif /*_POSIX_SOURCE */ ! 138: ! 139: /* ! 140: * Control flags - hardware control of terminal ! 141: */ ! 142: #ifndef _POSIX_SOURCE ! 143: #define CIGNORE 0x00000001 /* ignore control flags */ ! 144: #endif ! 145: #define CSIZE 0x00000300 /* character size mask */ ! 146: #define CS5 0x00000000 /* 5 bits (pseudo) */ ! 147: #define CS6 0x00000100 /* 6 bits */ ! 148: #define CS7 0x00000200 /* 7 bits */ ! 149: #define CS8 0x00000300 /* 8 bits */ ! 150: #define CSTOPB 0x00000400 /* send 2 stop bits */ ! 151: #define CREAD 0x00000800 /* enable receiver */ ! 152: #define PARENB 0x00001000 /* parity enable */ ! 153: #define PARODD 0x00002000 /* odd parity, else even */ ! 154: #define HUPCL 0x00004000 /* hang up on last close */ ! 155: #define CLOCAL 0x00008000 /* ignore modem status lines */ ! 156: #ifndef _POSIX_SOURCE ! 157: #define CCTS_OFLOW 0x00010000 /* CTS flow control of output */ ! 158: #define CRTSCTS (CCTS_OFLOW | CRTS_IFLOW) ! 159: #define CRTS_IFLOW 0x00020000 /* RTS flow control of input */ ! 160: #define CDTR_IFLOW 0x00040000 /* DTR flow control of input */ ! 161: #define CDSR_OFLOW 0x00080000 /* DSR flow control of output */ ! 162: #define CCAR_OFLOW 0x00100000 /* DCD flow control of output */ ! 163: #define MDMBUF 0x00100000 /* old name for CCAR_OFLOW */ ! 164: #endif ! 165: ! 166: ! 167: /* ! 168: * "Local" flags - dumping ground for other state ! 169: * ! 170: * Warning: some flags in this structure begin with ! 171: * the letter "I" and look like they belong in the ! 172: * input flag. ! 173: */ ! 174: ! 175: #ifndef _POSIX_SOURCE ! 176: #define ECHOKE 0x00000001 /* visual erase for line kill */ ! 177: #endif /*_POSIX_SOURCE */ ! 178: #define ECHOE 0x00000002 /* visually erase chars */ ! 179: #define ECHOK 0x00000004 /* echo NL after line kill */ ! 180: #define ECHO 0x00000008 /* enable echoing */ ! 181: #define ECHONL 0x00000010 /* echo NL even if ECHO is off */ ! 182: #ifndef _POSIX_SOURCE ! 183: #define ECHOPRT 0x00000020 /* visual erase mode for hardcopy */ ! 184: #define ECHOCTL 0x00000040 /* echo control chars as ^(Char) */ ! 185: #endif /*_POSIX_SOURCE */ ! 186: #define ISIG 0x00000080 /* enable signals INTR, QUIT, [D]SUSP */ ! 187: #define ICANON 0x00000100 /* canonicalize input lines */ ! 188: #ifndef _POSIX_SOURCE ! 189: #define ALTWERASE 0x00000200 /* use alternate WERASE algorithm */ ! 190: #endif /*_POSIX_SOURCE */ ! 191: #define IEXTEN 0x00000400 /* enable DISCARD and LNEXT */ ! 192: #define EXTPROC 0x00000800 /* external processing */ ! 193: #define TOSTOP 0x00400000 /* stop background jobs from output */ ! 194: #ifndef _POSIX_SOURCE ! 195: #define FLUSHO 0x00800000 /* output being flushed (state) */ ! 196: #define NOKERNINFO 0x02000000 /* no kernel output from VSTATUS */ ! 197: #define PENDIN 0x20000000 /* XXX retype pending input (state) */ ! 198: #endif /*_POSIX_SOURCE */ ! 199: #define NOFLSH 0x80000000 /* don't flush after interrupt */ ! 200: ! 201: typedef unsigned long tcflag_t; ! 202: typedef unsigned char cc_t; ! 203: typedef long speed_t; /* XXX should be unsigned long */ ! 204: ! 205: struct termios { ! 206: tcflag_t c_iflag; /* input flags */ ! 207: tcflag_t c_oflag; /* output flags */ ! 208: tcflag_t c_cflag; /* control flags */ ! 209: tcflag_t c_lflag; /* local flags */ ! 210: cc_t c_cc[NCCS]; /* control chars */ ! 211: speed_t c_ispeed; /* input speed */ ! 212: speed_t c_ospeed; /* output speed */ ! 213: }; ! 214: ! 215: /* ! 216: * Commands passed to tcsetattr() for setting the termios structure. ! 217: */ ! 218: #define TCSANOW 0 /* make change immediate */ ! 219: #define TCSADRAIN 1 /* drain output, then change */ ! 220: #define TCSAFLUSH 2 /* drain output, flush input */ ! 221: #ifndef _POSIX_SOURCE ! 222: #define TCSASOFT 0x10 /* flag - don't alter h.w. state */ ! 223: #endif ! 224: ! 225: /* ! 226: * Standard speeds ! 227: */ ! 228: #define B0 0 ! 229: #define B50 50 ! 230: #define B75 75 ! 231: #define B110 110 ! 232: #define B134 134 ! 233: #define B150 150 ! 234: #define B200 200 ! 235: #define B300 300 ! 236: #define B600 600 ! 237: #define B1200 1200 ! 238: #define B1800 1800 ! 239: #define B2400 2400 ! 240: #define B4800 4800 ! 241: #define B9600 9600 ! 242: #define B19200 19200 ! 243: #define B38400 38400 ! 244: #ifndef _POSIX_SOURCE ! 245: #define B7200 7200 ! 246: #define B14400 14400 ! 247: #define B28800 28800 ! 248: #define B57600 57600 ! 249: #define B76800 76800 ! 250: #define B115200 115200 ! 251: #define B230400 230400 ! 252: #define EXTA 19200 ! 253: #define EXTB 38400 ! 254: #endif /* !_POSIX_SOURCE */ ! 255: ! 256: #ifndef KERNEL ! 257: ! 258: #define TCIFLUSH 1 ! 259: #define TCOFLUSH 2 ! 260: #define TCIOFLUSH 3 ! 261: #define TCOOFF 1 ! 262: #define TCOON 2 ! 263: #define TCIOFF 3 ! 264: #define TCION 4 ! 265: ! 266: #include <sys/cdefs.h> ! 267: ! 268: __BEGIN_DECLS ! 269: speed_t cfgetispeed __P((const struct termios *)); ! 270: speed_t cfgetospeed __P((const struct termios *)); ! 271: int cfsetispeed __P((struct termios *, speed_t)); ! 272: int cfsetospeed __P((struct termios *, speed_t)); ! 273: int tcgetattr __P((int, struct termios *)); ! 274: int tcsetattr __P((int, int, const struct termios *)); ! 275: int tcdrain __P((int)); ! 276: int tcflow __P((int, int)); ! 277: int tcflush __P((int, int)); ! 278: int tcsendbreak __P((int, int)); ! 279: ! 280: #ifndef _POSIX_SOURCE ! 281: void cfmakeraw __P((struct termios *)); ! 282: int cfsetspeed __P((struct termios *, speed_t)); ! 283: #endif /* !_POSIX_SOURCE */ ! 284: __END_DECLS ! 285: ! 286: #endif /* !KERNEL */ ! 287: ! 288: #ifndef _POSIX_SOURCE ! 289: ! 290: /* ! 291: * Include tty ioctl's that aren't just for backwards compatibility ! 292: * with the old tty driver. These ioctl definitions were previously ! 293: * in <sys/ioctl.h>. ! 294: */ ! 295: #include <sys/ttycom.h> ! 296: #endif ! 297: ! 298: /* ! 299: * END OF PROTECTED INCLUDE. ! 300: */ ! 301: #endif /* !_SYS_TERMIOS_H_ */ ! 302: ! 303: #ifndef _POSIX_SOURCE ! 304: #include <sys/ttydefaults.h> ! 305: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.