Logo Search packages:      
Sourcecode: glibc version File versions

termios.h

/* Copyright (C) 1997, 1999, 2001 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, write to the Free
   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
   02111-1307 USA.  */

#ifndef _TERMIOS_H
# error "Never include <bits/termios.h> directly; use <termios.h> instead."
#endif

typedef unsigned char   cc_t;
typedef unsigned int    speed_t;
typedef unsigned int    tcflag_t;

/*
 * termios type and macro definitions.  Be careful about adding stuff
 * to this file since it's used in GNU libc and there are strict rules
 * concerning namespace pollution.
 */

#define NCCS 32
struct termios {
      tcflag_t c_iflag;       /* input mode flags */
      tcflag_t c_oflag;       /* output mode flags */
      tcflag_t c_cflag;       /* control mode flags */
      tcflag_t c_lflag;       /* local mode flags */
      cc_t c_line;                  /* line discipline (== c_cc[19]) */
      cc_t c_cc[NCCS];        /* control characters */
      speed_t c_ispeed;       /* input speed */
      speed_t c_ospeed;       /* output speed */
};

/* c_cc characters */
#define VINTR     0
#define VQUIT     1
#define VERASE    2
#define VKILL     3
#define VEOF      4
#define VMIN      5
#define VEOL      6
#define VTIME     7
#define VEOL2     8
#define VSWTC     9

#define VWERASE   10
#define VREPRINT  11
#define VSUSP           12
#define VSTART          13
#define VSTOP           14
#define VLNEXT          15
#define VDISCARD  16

/* c_iflag bits */
#define IGNBRK    0000001
#define BRKINT    0000002
#define IGNPAR    0000004
#define PARMRK    0000010
#define INPCK     0000020
#define ISTRIP    0000040
#define INLCR     0000100
#define IGNCR     0000200
#define ICRNL     0000400
#define IXON      0001000
#define IXOFF     0002000
#define IXANY     0004000
#define IUCLC     0010000
#define IMAXBEL   0020000

/* c_oflag bits */
#define OPOST     0000001
#define ONLCR     0000002
#define OLCUC     0000004

#define OCRNL     0000010
#define ONOCR     0000020
#define ONLRET    0000040

#define OFILL     00000100
#define OFDEL     00000200
#define NLDLY     00001400
#define   NL0     00000000
#define   NL1     00000400
#define   NL2     00001000
#define   NL3     00001400
#define TABDLY    00006000
#define   TAB0    00000000
#define   TAB1    00002000
#define   TAB2    00004000
#define   TAB3    00006000
#define CRDLY     00030000
#define   CR0     00000000
#define   CR1     00010000
#define   CR2     00020000
#define   CR3     00030000
#define FFDLY     00040000
#define   FF0     00000000
#define   FF1     00040000
#define BSDLY     00100000
#define   BS0     00000000
#define   BS1     00100000
#define VTDLY     00200000
#define   VT0     00000000
#define   VT1     00200000
#define XTABS     01000000 /* Hmm.. Linux/i386 considers this part of TABDLY.. */

/* c_cflag bit meaning */
#define CBAUD     0000377
#define  B0 0000000           /* hang up */
#define  B50      0000001
#define  B75      0000002
#define  B110     0000003
#define  B134     0000004
#define  B150     0000005
#define  B200     0000006
#define  B300     0000007
#define  B600     0000010
#define  B1200    0000011
#define  B1800    0000012
#define  B2400    0000013
#define  B4800    0000014
#define  B9600    0000015
#define  B19200   0000016
#define  B38400   0000017
#define EXTA B19200
#define EXTB B38400
#define CBAUDEX 0000020
#define  B57600   00020
#define  B115200  00021
#define  B230400  00022
#define  B460800  00023
#define  B500000  00024
#define  B576000  00025
#define  B921600  00026
#define  B1000000 00027
#define  B1152000 00030
#define  B1500000 00031
#define  B2000000 00032
#define  B2500000 00033
#define  B3000000 00034
#define  B3500000 00035
#define  B4000000 00036
#define __MAX_BAUD B4000000

#define CSIZE     00001400
#define   CS5     00000000
#define   CS6     00000400
#define   CS7     00001000
#define   CS8     00001400

#define CSTOPB    00002000
#define CREAD     00004000
#define PARENB    00010000
#define PARODD    00020000
#define HUPCL     00040000

#define CLOCAL    00100000
#define CRTSCTS     020000000000          /* flow control */

/* c_lflag bits */
#define ISIG      0x00000080
#define ICANON    0x00000100
#define XCASE     0x00004000
#define ECHO      0x00000008
#define ECHOE     0x00000002
#define ECHOK     0x00000004
#define ECHONL    0x00000010
#define NOFLSH    0x80000000
#define TOSTOP    0x00400000
#define ECHOCTL   0x00000040
#define ECHOPRT   0x00000020
#define ECHOKE    0x00000001
#define FLUSHO    0x00800000
#define PENDIN    0x20000000
#define IEXTEN    0x00000400

/* Values for the ACTION argument to `tcflow'.  */
#define     TCOOFF            0
#define     TCOON       1
#define     TCIOFF            2
#define     TCION       3

/* Values for the QUEUE_SELECTOR argument to `tcflush'.  */
#define     TCIFLUSH    0
#define     TCOFLUSH    1
#define     TCIOFLUSH   2

/* Values for the OPTIONAL_ACTIONS argument to `tcsetattr'.  */
#define     TCSANOW           0
#define     TCSADRAIN   1
#define     TCSAFLUSH   2

struct sgttyb {
      char  sg_ispeed;
      char  sg_ospeed;
      char  sg_erase;
      char  sg_kill;
      short sg_flags;
};

struct tchars {
      char  t_intrc;
      char  t_quitc;
      char  t_startc;
      char  t_stopc;
      char  t_eofc;
      char  t_brkc;
};

struct ltchars {
      char  t_suspc;
      char  t_dsuspc;
      char  t_rprntc;
      char  t_flushc;
      char  t_werasc;
      char  t_lnextc;
};

/* Used for packet mode */
#define TIOCPKT_DATA           0
#define TIOCPKT_FLUSHREAD      1
#define TIOCPKT_FLUSHWRITE     2
#define TIOCPKT_STOP           4
#define TIOCPKT_START          8
#define TIOCPKT_NOSTOP        16
#define TIOCPKT_DOSTOP        32

struct winsize {
      unsigned short ws_row;
      unsigned short ws_col;
      unsigned short ws_xpixel;
      unsigned short ws_ypixel;
};

#define NCC 10
struct termio {
      unsigned short c_iflag;       /* input mode flags */
      unsigned short c_oflag;       /* output mode flags */
      unsigned short c_cflag;       /* control mode flags */
      unsigned short c_lflag;       /* local mode flags */
      unsigned char c_line;         /* line discipline */
      unsigned char c_cc[NCC];      /* control characters */
};

/* c_cc characters */
#define _VINTR    0
#define _VQUIT    1
#define _VERASE   2
#define _VKILL    3
#define _VEOF     4
#define _VMIN     5
#define _VEOL     6
#define _VTIME    7
#define _VEOL2    8
#define _VSWTC    9

/* modem lines */
#define TIOCM_LE  0x001
#define TIOCM_DTR 0x002
#define TIOCM_RTS 0x004
#define TIOCM_ST  0x008
#define TIOCM_SR  0x010
#define TIOCM_CTS 0x020
#define TIOCM_CAR 0x040
#define TIOCM_RNG 0x080
#define TIOCM_DSR 0x100
#define TIOCM_CD  TIOCM_CAR
#define TIOCM_RI  TIOCM_RNG

/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
#define TIOCSER_TEMT    0x01  /* Transmitter physically empty */

/* line disciplines */
#define N_TTY           0
#define N_SLIP          1
#define N_MOUSE         2
#define N_PPP           3
#define N_STRIP         4
#define N_AX25          5
#define N_X25           6     /* X.25 async  */
#define N_6PACK         7
#define N_MASC          8     /* Mobitex module  */
#define N_R3964         9     /* Simatic R3964 module  */
#define N_PROFIBUS_FDL  10    /* Profibus  */
#define N_IRDA          11    /* Linux IR  */
#define N_SMSBLOCK      12    /* SMS block mode  */
#define N_HDLC          13    /* synchronous HDLC  */
#define N_SYNC_PPP      14    /* synchronous PPP  */
#define     N_HCI       15    /* Bluetooth HCI UART  */

Generated by  Doxygen 1.6.0   Back to index