1*73f0a83dSXin LI /**************************************************************************** 2*73f0a83dSXin LI * Copyright (c) 2011 Free Software Foundation, Inc. * 3*73f0a83dSXin LI * * 4*73f0a83dSXin LI * Permission is hereby granted, free of charge, to any person obtaining a * 5*73f0a83dSXin LI * copy of this software and associated documentation files (the * 6*73f0a83dSXin LI * "Software"), to deal in the Software without restriction, including * 7*73f0a83dSXin LI * without limitation the rights to use, copy, modify, merge, publish, * 8*73f0a83dSXin LI * distribute, distribute with modifications, sublicense, and/or sell * 9*73f0a83dSXin LI * copies of the Software, and to permit persons to whom the Software is * 10*73f0a83dSXin LI * furnished to do so, subject to the following conditions: * 11*73f0a83dSXin LI * * 12*73f0a83dSXin LI * The above copyright notice and this permission notice shall be included * 13*73f0a83dSXin LI * in all copies or substantial portions of the Software. * 14*73f0a83dSXin LI * * 15*73f0a83dSXin LI * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * 16*73f0a83dSXin LI * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * 17*73f0a83dSXin LI * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * 18*73f0a83dSXin LI * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * 19*73f0a83dSXin LI * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * 20*73f0a83dSXin LI * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * 21*73f0a83dSXin LI * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * 22*73f0a83dSXin LI * * 23*73f0a83dSXin LI * Except as contained in this notice, the name(s) of the above copyright * 24*73f0a83dSXin LI * holders shall not be used in advertising or otherwise to promote the * 25*73f0a83dSXin LI * sale, use or other dealings in this Software without prior written * 26*73f0a83dSXin LI * authorization. * 27*73f0a83dSXin LI ****************************************************************************/ 28*73f0a83dSXin LI 29*73f0a83dSXin LI /**************************************************************************** 30*73f0a83dSXin LI * Author: Thomas E. Dickey 2011 * 31*73f0a83dSXin LI ****************************************************************************/ 32*73f0a83dSXin LI 33*73f0a83dSXin LI /* $Id: nc_termios.h,v 1.2 2011/06/25 20:44:05 tom Exp $ */ 34*73f0a83dSXin LI 35*73f0a83dSXin LI #ifndef NC_TERMIOS_included 36*73f0a83dSXin LI #define NC_TERMIOS_included 1 37*73f0a83dSXin LI 38*73f0a83dSXin LI #if HAVE_TERMIOS_H && HAVE_TCGETATTR 39*73f0a83dSXin LI 40*73f0a83dSXin LI #else /* !HAVE_TERMIOS_H */ 41*73f0a83dSXin LI 42*73f0a83dSXin LI #if HAVE_TERMIO_H 43*73f0a83dSXin LI 44*73f0a83dSXin LI /* Add definitions to make termio look like termios. 45*73f0a83dSXin LI * But ifdef it, since there are some implementations 46*73f0a83dSXin LI * that try to do this for us in a fake <termio.h>. 47*73f0a83dSXin LI */ 48*73f0a83dSXin LI #ifndef TCSADRAIN 49*73f0a83dSXin LI #define TCSADRAIN TCSETAW 50*73f0a83dSXin LI #endif 51*73f0a83dSXin LI #ifndef TCSAFLUSH 52*73f0a83dSXin LI #define TCSAFLUSH TCSETAF 53*73f0a83dSXin LI #endif 54*73f0a83dSXin LI #ifndef tcsetattr 55*73f0a83dSXin LI #define tcsetattr(fd, cmd, arg) ioctl(fd, cmd, arg) 56*73f0a83dSXin LI #endif 57*73f0a83dSXin LI #ifndef tcgetattr 58*73f0a83dSXin LI #define tcgetattr(fd, arg) ioctl(fd, TCGETA, arg) 59*73f0a83dSXin LI #endif 60*73f0a83dSXin LI #ifndef cfgetospeed 61*73f0a83dSXin LI #define cfgetospeed(t) ((t)->c_cflag & CBAUD) 62*73f0a83dSXin LI #endif 63*73f0a83dSXin LI #ifndef TCIFLUSH 64*73f0a83dSXin LI #define TCIFLUSH 0 65*73f0a83dSXin LI #endif 66*73f0a83dSXin LI #ifndef tcflush 67*73f0a83dSXin LI #define tcflush(fd, arg) ioctl(fd, TCFLSH, arg) 68*73f0a83dSXin LI #endif 69*73f0a83dSXin LI 70*73f0a83dSXin LI #else /* !HAVE_TERMIO_H */ 71*73f0a83dSXin LI 72*73f0a83dSXin LI #if __MINGW32__ 73*73f0a83dSXin LI 74*73f0a83dSXin LI /* c_cc chars */ 75*73f0a83dSXin LI #define VINTR 0 76*73f0a83dSXin LI #define VQUIT 1 77*73f0a83dSXin LI #define VERASE 2 78*73f0a83dSXin LI #define VKILL 3 79*73f0a83dSXin LI #define VEOF 4 80*73f0a83dSXin LI #define VTIME 5 81*73f0a83dSXin LI #define VMIN 6 82*73f0a83dSXin LI 83*73f0a83dSXin LI /* c_iflag bits */ 84*73f0a83dSXin LI #define ISTRIP 0000040 85*73f0a83dSXin LI #define INLCR 0000100 86*73f0a83dSXin LI #define IGNCR 0000200 87*73f0a83dSXin LI #define ICRNL 0000400 88*73f0a83dSXin LI #define BRKINT 0000002 89*73f0a83dSXin LI #define PARMRK 0000010 90*73f0a83dSXin LI #define IXON 0002000 91*73f0a83dSXin LI #define IGNBRK 0000001 92*73f0a83dSXin LI #define IGNPAR 0000004 93*73f0a83dSXin LI #define INPCK 0000020 94*73f0a83dSXin LI #define IXOFF 0010000 95*73f0a83dSXin LI 96*73f0a83dSXin LI /* c_oflag bits */ 97*73f0a83dSXin LI #define OPOST 0000001 98*73f0a83dSXin LI 99*73f0a83dSXin LI /* c_cflag bit meaning */ 100*73f0a83dSXin LI #define CBAUD 0010017 101*73f0a83dSXin LI #define CSIZE 0000060 102*73f0a83dSXin LI #define CS8 0000060 103*73f0a83dSXin LI #define B0 0000000 104*73f0a83dSXin LI #define B50 0000001 105*73f0a83dSXin LI #define B75 0000002 106*73f0a83dSXin LI #define B110 0000003 107*73f0a83dSXin LI #define B134 0000004 108*73f0a83dSXin LI #define B150 0000005 109*73f0a83dSXin LI #define B200 0000006 110*73f0a83dSXin LI #define B300 0000007 111*73f0a83dSXin LI #define B600 0000010 112*73f0a83dSXin LI #define B1200 0000011 113*73f0a83dSXin LI #define B1800 0000012 114*73f0a83dSXin LI #define B2400 0000013 115*73f0a83dSXin LI #define B4800 0000014 116*73f0a83dSXin LI #define B9600 0000015 117*73f0a83dSXin LI #define CLOCAL 0004000 118*73f0a83dSXin LI #define CREAD 0000200 119*73f0a83dSXin LI #define CSTOPB 0000100 120*73f0a83dSXin LI #define HUPCL 0002000 121*73f0a83dSXin LI #define PARENB 0000400 122*73f0a83dSXin LI #define PARODD 0001000 123*73f0a83dSXin LI 124*73f0a83dSXin LI /* c_lflag bits */ 125*73f0a83dSXin LI #define ECHO 0000010 126*73f0a83dSXin LI #define ECHONL 0000100 127*73f0a83dSXin LI #define ISIG 0000001 128*73f0a83dSXin LI #define IEXTEN 0100000 129*73f0a83dSXin LI #define ICANON 0000002 130*73f0a83dSXin LI #define NOFLSH 0000200 131*73f0a83dSXin LI #define ECHOE 0000020 132*73f0a83dSXin LI #define ECHOK 0000040 133*73f0a83dSXin LI 134*73f0a83dSXin LI /* tcflush() */ 135*73f0a83dSXin LI #define TCIFLUSH 0 136*73f0a83dSXin LI 137*73f0a83dSXin LI /* tcsetattr uses these */ 138*73f0a83dSXin LI #define TCSADRAIN 1 139*73f0a83dSXin LI 140*73f0a83dSXin LI /* ioctls */ 141*73f0a83dSXin LI #define TCGETA 0x5405 142*73f0a83dSXin LI #define TCFLSH 0x540B 143*73f0a83dSXin LI #define TIOCGWINSZ 0x5413 144*73f0a83dSXin LI 145*73f0a83dSXin LI #ifndef cfgetospeed 146*73f0a83dSXin LI #define cfgetospeed(t) ((t)->c_cflag & CBAUD) 147*73f0a83dSXin LI #endif 148*73f0a83dSXin LI 149*73f0a83dSXin LI #ifndef tcsetattr 150*73f0a83dSXin LI #define tcsetattr(fd, cmd, arg) _nc_mingw_ioctl(fd, cmd, arg) 151*73f0a83dSXin LI #endif 152*73f0a83dSXin LI 153*73f0a83dSXin LI #ifndef tcgetattr 154*73f0a83dSXin LI #define tcgetattr(fd, arg) _nc_mingw_ioctl(fd, TCGETA, arg) 155*73f0a83dSXin LI #endif 156*73f0a83dSXin LI 157*73f0a83dSXin LI #ifndef tcflush 158*73f0a83dSXin LI #define tcflush(fd, arg) _nc_mingw_ioctl(fd, TCFLSH, arg) 159*73f0a83dSXin LI #endif 160*73f0a83dSXin LI 161*73f0a83dSXin LI #undef ttyname 162*73f0a83dSXin LI #define ttyname(fd) NULL 163*73f0a83dSXin LI 164*73f0a83dSXin LI #else 165*73f0a83dSXin LI 166*73f0a83dSXin LI #endif /* __MINGW32__ */ 167*73f0a83dSXin LI #endif /* HAVE_TERMIO_H */ 168*73f0a83dSXin LI 169*73f0a83dSXin LI #endif /* HAVE_TERMIOS_H */ 170*73f0a83dSXin LI 171*73f0a83dSXin LI #endif /* NC_TERMIOS_included */ 172