1/* termios type and macro definitions. Linux version. 2 Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2003, 2005 3 Free Software Foundation, Inc. 4 This file is part of the GNU C Library. 5 6 The GNU C Library is free software; you can redistribute it and/or 7 modify it under the terms of the GNU Lesser General Public 8 License as published by the Free Software Foundation; either 9 version 2.1 of the License, or (at your option) any later version. 10 11 The GNU C Library is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 Lesser General Public License for more details. 15 16 You should have received a copy of the GNU Lesser General Public 17 License along with the GNU C Library; if not, write to the Free 18 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 19 02111-1307 USA. */ 20 21#ifndef _TERMIOS_H 22# error "Never include <bits/termios.h> directly; use <termios.h> instead." 23#endif 24 25typedef unsigned char cc_t; 26typedef unsigned int speed_t; 27typedef unsigned int tcflag_t; 28 29#define NCCS 32 30struct termios 31 { 32 tcflag_t c_iflag; /* input mode flags */ 33 tcflag_t c_oflag; /* output mode flags */ 34 tcflag_t c_cflag; /* control mode flags */ 35 tcflag_t c_lflag; /* local mode flags */ 36 cc_t c_line; /* line discipline */ 37 cc_t c_cc[NCCS]; /* control characters */ 38 speed_t c_ispeed; /* input speed */ 39 speed_t c_ospeed; /* output speed */ 40#define _HAVE_STRUCT_TERMIOS_C_ISPEED 1 41#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1 42 }; 43 44/* c_cc characters */ 45#define VINTR 0 46#define VQUIT 1 47#define VERASE 2 48#define VKILL 3 49#define VEOF 4 50#define VTIME 5 51#define VMIN 6 52#define VSWTC 7 53#define VSTART 8 54#define VSTOP 9 55#define VSUSP 10 56#define VEOL 11 57#define VREPRINT 12 58#define VDISCARD 13 59#define VWERASE 14 60#define VLNEXT 15 61#define VEOL2 16 62 63/* c_iflag bits */ 64#define IGNBRK 0000001 65#define BRKINT 0000002 66#define IGNPAR 0000004 67#define PARMRK 0000010 68#define INPCK 0000020 69#define ISTRIP 0000040 70#define INLCR 0000100 71#define IGNCR 0000200 72#define ICRNL 0000400 73#define IUCLC 0001000 74#define IXON 0002000 75#define IXANY 0004000 76#define IXOFF 0010000 77#define IMAXBEL 0020000 78#define IUTF8 0040000 79 80/* c_oflag bits */ 81#define OPOST 0000001 82#define OLCUC 0000002 83#define ONLCR 0000004 84#define OCRNL 0000010 85#define ONOCR 0000020 86#define ONLRET 0000040 87#define OFILL 0000100 88#define OFDEL 0000200 89#if defined __USE_MISC || defined __USE_XOPEN 90# define NLDLY 0000400 91# define NL0 0000000 92# define NL1 0000400 93# define CRDLY 0003000 94# define CR0 0000000 95# define CR1 0001000 96# define CR2 0002000 97# define CR3 0003000 98# define TABDLY 0014000 99# define TAB0 0000000 100# define TAB1 0004000 101# define TAB2 0010000 102# define TAB3 0014000 103# define BSDLY 0020000 104# define BS0 0000000 105# define BS1 0020000 106# define FFDLY 0100000 107# define FF0 0000000 108# define FF1 0100000 109#endif 110 111#define VTDLY 0040000 112#define VT0 0000000 113#define VT1 0040000 114 115#ifdef __USE_MISC 116# define XTABS 0014000 117#endif 118 119/* c_cflag bit meaning */ 120#ifdef __USE_MISC 121# define CBAUD 0010017 122#endif 123#define B0 0000000 /* hang up */ 124#define B50 0000001 125#define B75 0000002 126#define B110 0000003 127#define B134 0000004 128#define B150 0000005 129#define B200 0000006 130#define B300 0000007 131#define B600 0000010 132#define B1200 0000011 133#define B1800 0000012 134#define B2400 0000013 135#define B4800 0000014 136#define B9600 0000015 137#define B19200 0000016 138#define B38400 0000017 139#ifdef __USE_MISC 140# define EXTA B19200 141# define EXTB B38400 142#endif 143#define CSIZE 0000060 144#define CS5 0000000 145#define CS6 0000020 146#define CS7 0000040 147#define CS8 0000060 148#define CSTOPB 0000100 149#define CREAD 0000200 150#define PARENB 0000400 151#define PARODD 0001000 152#define HUPCL 0002000 153#define CLOCAL 0004000 154#ifdef __USE_MISC 155# define CBAUDEX 0010000 156#endif 157#define B57600 0010001 158#define B115200 0010002 159#define B230400 0010003 160#define B460800 0010004 161#define B500000 0010005 162#define B576000 0010006 163#define B921600 0010007 164#define B1000000 0010010 165#define B1152000 0010011 166#define B1500000 0010012 167#define B2000000 0010013 168#define B2500000 0010014 169#define B3000000 0010015 170#define B3500000 0010016 171#define B4000000 0010017 172#define __MAX_BAUD B4000000 173#ifdef __USE_MISC 174# define CIBAUD 002003600000 /* input baud rate (not used) */ 175# define CMSPAR 010000000000 /* mark or space (stick) parity */ 176# define CRTSCTS 020000000000 /* flow control */ 177#endif 178 179/* c_lflag bits */ 180#define ISIG 0000001 181#define ICANON 0000002 182#if defined __USE_MISC || defined __USE_XOPEN 183# define XCASE 0000004 184#endif 185#define ECHO 0000010 186#define ECHOE 0000020 187#define ECHOK 0000040 188#define ECHONL 0000100 189#define NOFLSH 0000200 190#define TOSTOP 0000400 191#ifdef __USE_MISC 192# define ECHOCTL 0001000 193# define ECHOPRT 0002000 194# define ECHOKE 0004000 195# define FLUSHO 0010000 196# define PENDIN 0040000 197#endif 198#define IEXTEN 0100000 199 200/* tcflow() and TCXONC use these */ 201#define TCOOFF 0 202#define TCOON 1 203#define TCIOFF 2 204#define TCION 3 205 206/* tcflush() and TCFLSH use these */ 207#define TCIFLUSH 0 208#define TCOFLUSH 1 209#define TCIOFLUSH 2 210 211/* tcsetattr uses these */ 212#define TCSANOW 0 213#define TCSADRAIN 1 214#define TCSAFLUSH 2 215 216 217#define _IOT_termios /* Hurd ioctl type field. */ \ 218 _IOT (_IOTS (cflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2) 219