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 BOTHER 0010000 158#define B57600 0010001 159#define B115200 0010002 160#define B230400 0010003 161#define B460800 0010004 162#define B500000 0010005 163#define B576000 0010006 164#define B921600 0010007 165#define B1000000 0010010 166#define B1152000 0010011 167#define B1500000 0010012 168#define B2000000 0010013 169#define B2500000 0010014 170#define B3000000 0010015 171#define B3500000 0010016 172#define B4000000 0010017 173#define __MAX_BAUD B4000000 174#ifdef __USE_MISC 175# define CIBAUD 002003600000 /* input baud rate (not used) */ 176# define CMSPAR 010000000000 /* mark or space (stick) parity */ 177# define CRTSCTS 020000000000 /* flow control */ 178#endif 179 180/* c_lflag bits */ 181#define ISIG 0000001 182#define ICANON 0000002 183#if defined __USE_MISC || defined __USE_XOPEN 184# define XCASE 0000004 185#endif 186#define ECHO 0000010 187#define ECHOE 0000020 188#define ECHOK 0000040 189#define ECHONL 0000100 190#define NOFLSH 0000200 191#define TOSTOP 0000400 192#ifdef __USE_MISC 193# define ECHOCTL 0001000 194# define ECHOPRT 0002000 195# define ECHOKE 0004000 196# define FLUSHO 0010000 197# define PENDIN 0040000 198#endif 199#define IEXTEN 0100000 200 201/* tcflow() and TCXONC use these */ 202#define TCOOFF 0 203#define TCOON 1 204#define TCIOFF 2 205#define TCION 3 206 207/* tcflush() and TCFLSH use these */ 208#define TCIFLUSH 0 209#define TCOFLUSH 1 210#define TCIOFLUSH 2 211 212/* tcsetattr uses these */ 213#define TCSANOW 0 214#define TCSADRAIN 1 215#define TCSAFLUSH 2 216 217 218#define _IOT_termios /* Hurd ioctl type field. */ \ 219 _IOT (_IOTS (cflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2) 220