Blame bits/termios.h

Packit Service 82fcde
/* termios type and macro definitions.  4.4 BSD/generic GNU version.
Packit Service 82fcde
   Copyright (C) 1993-2018 Free Software Foundation, Inc.
Packit Service 82fcde
   This file is part of the GNU C Library.
Packit Service 82fcde
Packit Service 82fcde
   The GNU C Library is free software; you can redistribute it and/or
Packit Service 82fcde
   modify it under the terms of the GNU Lesser General Public
Packit Service 82fcde
   License as published by the Free Software Foundation; either
Packit Service 82fcde
   version 2.1 of the License, or (at your option) any later version.
Packit Service 82fcde
Packit Service 82fcde
   The GNU C Library is distributed in the hope that it will be useful,
Packit Service 82fcde
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 82fcde
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service 82fcde
   Lesser General Public License for more details.
Packit Service 82fcde
Packit Service 82fcde
   You should have received a copy of the GNU Lesser General Public
Packit Service 82fcde
   License along with the GNU C Library; if not, see
Packit Service 82fcde
   <http://www.gnu.org/licenses/>.  */
Packit Service 82fcde
Packit Service 82fcde
#ifndef _TERMIOS_H
Packit Service 82fcde
# error "Never include <bits/termios.h> directly; use <termios.h> instead."
Packit Service 82fcde
#endif
Packit Service 82fcde
Packit Service 82fcde
/* These macros are also defined in some <bits/ioctls.h> files (with
Packit Service 82fcde
   numerically identical values), but this serves to shut up cpp's
Packit Service 82fcde
   complaining. */
Packit Service 82fcde
#if defined __USE_MISC || defined __USE_XOPEN
Packit Service 82fcde
Packit Service 82fcde
# ifdef NL0
Packit Service 82fcde
#  undef NL0
Packit Service 82fcde
# endif
Packit Service 82fcde
# ifdef NL1
Packit Service 82fcde
#  undef NL1
Packit Service 82fcde
# endif
Packit Service 82fcde
# ifdef TAB0
Packit Service 82fcde
#  undef TAB0
Packit Service 82fcde
# endif
Packit Service 82fcde
# ifdef TAB1
Packit Service 82fcde
#  undef TAB1
Packit Service 82fcde
# endif
Packit Service 82fcde
# ifdef TAB2
Packit Service 82fcde
#  undef TAB2
Packit Service 82fcde
# endif
Packit Service 82fcde
# ifdef CR0
Packit Service 82fcde
#  undef CR0
Packit Service 82fcde
# endif
Packit Service 82fcde
# ifdef CR1
Packit Service 82fcde
#  undef CR1
Packit Service 82fcde
# endif
Packit Service 82fcde
# ifdef CR2
Packit Service 82fcde
#  undef CR2
Packit Service 82fcde
# endif
Packit Service 82fcde
# ifdef CR3
Packit Service 82fcde
#  undef CR3
Packit Service 82fcde
# endif
Packit Service 82fcde
# ifdef FF0
Packit Service 82fcde
#  undef FF0
Packit Service 82fcde
# endif
Packit Service 82fcde
# ifdef FF1
Packit Service 82fcde
#  undef FF1
Packit Service 82fcde
# endif
Packit Service 82fcde
# ifdef BS0
Packit Service 82fcde
#  undef BS0
Packit Service 82fcde
# endif
Packit Service 82fcde
# ifdef BS1
Packit Service 82fcde
#  undef BS1
Packit Service 82fcde
# endif
Packit Service 82fcde
Packit Service 82fcde
#endif /* __USE_MISC || __USE_XOPEN */
Packit Service 82fcde
Packit Service 82fcde
#ifdef __USE_MISC
Packit Service 82fcde
Packit Service 82fcde
# ifdef MDMBUF
Packit Service 82fcde
#  undef MDMBUF
Packit Service 82fcde
# endif
Packit Service 82fcde
# ifdef FLUSHO
Packit Service 82fcde
#  undef FLUSHO
Packit Service 82fcde
# endif
Packit Service 82fcde
# ifdef PENDIN
Packit Service 82fcde
#  undef PENDIN
Packit Service 82fcde
# endif
Packit Service 82fcde
Packit Service 82fcde
#endif /* __USE_MISC */
Packit Service 82fcde
Packit Service 82fcde
#ifdef ECHO
Packit Service 82fcde
# undef ECHO
Packit Service 82fcde
#endif
Packit Service 82fcde
#ifdef TOSTOP
Packit Service 82fcde
# undef TOSTOP
Packit Service 82fcde
#endif
Packit Service 82fcde
#ifdef NOFLSH
Packit Service 82fcde
# undef NOFLSH
Packit Service 82fcde
#endif
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
/* These definitions match those used by the 4.4 BSD kernel.
Packit Service 82fcde
   If the operating system has termios system calls or ioctls that
Packit Service 82fcde
   correctly implement the POSIX.1 behavior, there should be a
Packit Service 82fcde
   system-dependent version of this file that defines `struct termios',
Packit Service 82fcde
   `tcflag_t', `cc_t', `speed_t' and the `TC*' constants appropriately.  */
Packit Service 82fcde
Packit Service 82fcde
/* Type of terminal control flag masks.  */
Packit Service 82fcde
typedef unsigned long int tcflag_t;
Packit Service 82fcde
Packit Service 82fcde
/* Type of control characters.  */
Packit Service 82fcde
typedef unsigned char cc_t;
Packit Service 82fcde
Packit Service 82fcde
/* Type of baud rate specifiers.  */
Packit Service 82fcde
typedef long int speed_t;
Packit Service 82fcde
Packit Service 82fcde
/* Terminal control structure.  */
Packit Service 82fcde
struct termios
Packit Service 82fcde
{
Packit Service 82fcde
  /* Input modes.  */
Packit Service 82fcde
  tcflag_t c_iflag;
Packit Service 82fcde
#define	IGNBRK	(1 << 0)	/* Ignore break condition.  */
Packit Service 82fcde
#define	BRKINT	(1 << 1)	/* Signal interrupt on break.  */
Packit Service 82fcde
#define	IGNPAR	(1 << 2)	/* Ignore characters with parity errors.  */
Packit Service 82fcde
#define	PARMRK	(1 << 3)	/* Mark parity and framing errors.  */
Packit Service 82fcde
#define	INPCK	(1 << 4)	/* Enable input parity check.  */
Packit Service 82fcde
#define	ISTRIP	(1 << 5)	/* Strip 8th bit off characters.  */
Packit Service 82fcde
#define	INLCR	(1 << 6)	/* Map NL to CR on input.  */
Packit Service 82fcde
#define	IGNCR	(1 << 7)	/* Ignore CR.  */
Packit Service 82fcde
#define	ICRNL	(1 << 8)	/* Map CR to NL on input.  */
Packit Service 82fcde
#define	IXON	(1 << 9)	/* Enable start/stop output control.  */
Packit Service 82fcde
#define	IXOFF	(1 << 10)	/* Enable start/stop input control.  */
Packit Service 82fcde
#if defined __USE_MISC || defined __USE_XOPEN || defined __USE_XOPEN2K8
Packit Service 82fcde
# define IXANY	(1 << 11)	/* Any character will restart after stop.  */
Packit Service 82fcde
#endif
Packit Service 82fcde
#ifdef	__USE_MISC
Packit Service 82fcde
# define IMAXBEL (1 << 13)	/* Ring bell when input queue is full.  */
Packit Service 82fcde
#endif
Packit Service 82fcde
#if defined __USE_GNU || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
Packit Service 82fcde
# define IUCLC	(1 << 14)	/* Translate upper case input to lower case. */
Packit Service 82fcde
#endif
Packit Service 82fcde
Packit Service 82fcde
  /* Output modes.  */
Packit Service 82fcde
  tcflag_t c_oflag;
Packit Service 82fcde
#define	OPOST	(1 << 0)	/* Perform output processing.  */
Packit Service 82fcde
#if defined __USE_MISC || defined __USE_XOPEN
Packit Service 82fcde
# define ONLCR	(1 << 1)	/* Map NL to CR-NL on output.  */
Packit Service 82fcde
#endif
Packit Service 82fcde
#ifdef	__USE_MISC
Packit Service 82fcde
# define OXTABS	TAB3		/* Expand tabs to spaces.  */
Packit Service 82fcde
# define ONOEOT	(1 << 3)	/* Discard EOT (^D) on output.  */
Packit Service 82fcde
#endif
Packit Service 82fcde
#if defined __USE_MISC || defined __USE_XOPEN
Packit Service 82fcde
# define OCRNL	(1 << 4)	/* Map CR to NL.  */
Packit Service 82fcde
# define ONOCR	(1 << 5)	/* Discard CR's when on column 0.  */
Packit Service 82fcde
# define ONLRET	(1 << 6)	/* Move to column 0 on NL.  */
Packit Service 82fcde
#endif
Packit Service 82fcde
#if defined __USE_MISC || defined __USE_XOPEN
Packit Service 82fcde
# define NLDLY	(3 << 8)	/* NL delay.  */
Packit Service 82fcde
# define NL0	(0 << 8)	/* NL type 0.  */
Packit Service 82fcde
# define NL1	(1 << 8)	/* NL type 1.  */
Packit Service 82fcde
# define TABDLY	(3 << 10 | 1 << 2)	/* TAB delay.  */
Packit Service 82fcde
# define TAB0	(0 << 10)	/* TAB delay type 0.  */
Packit Service 82fcde
# define TAB1	(1 << 10)	/* TAB delay type 1.  */
Packit Service 82fcde
# define TAB2	(2 << 10)	/* TAB delay type 2.  */
Packit Service 82fcde
# define TAB3	(1 << 2)	/* Expand tabs to spaces.  */
Packit Service 82fcde
# define CRDLY	(3 << 12)	/* CR delay.  */
Packit Service 82fcde
# define CR0	(0 << 12)	/* CR delay type 0.  */
Packit Service 82fcde
# define CR1	(1 << 12)	/* CR delay type 1.  */
Packit Service 82fcde
# define CR2	(2 << 12)	/* CR delay type 2.  */
Packit Service 82fcde
# define CR3	(3 << 12)	/* CR delay type 3.  */
Packit Service 82fcde
# define FFDLY	(1 << 14)	/* FF delay.  */
Packit Service 82fcde
# define FF0	(0 << 14)	/* FF delay type 0.  */
Packit Service 82fcde
# define FF1	(1 << 14)	/* FF delay type 1.  */
Packit Service 82fcde
# define BSDLY	(1 << 15)	/* BS delay.  */
Packit Service 82fcde
# define BS0	(0 << 15)	/* BS delay type 0.  */
Packit Service 82fcde
# define BS1	(1 << 15)	/* BS delay type 1.  */
Packit Service 82fcde
# define VTDLY	(1 << 16)	/* VT delay.  */
Packit Service 82fcde
# define VT0	(0 << 16)	/* VT delay type 0.  */
Packit Service 82fcde
# define VT1	(1 << 16)	/* VT delay type 1.  */
Packit Service 82fcde
#endif /* __USE_MISC || __USE_XOPEN */
Packit Service 82fcde
#if defined __USE_GNU || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
Packit Service 82fcde
# define OLCUC	(1 << 17)	/* Translate lower case output to upper case */
Packit Service 82fcde
#endif
Packit Service 82fcde
#ifdef __USE_XOPEN
Packit Service 82fcde
# define OFILL	(1 << 18)	/* Send fill characters for delays.  */
Packit Service 82fcde
# define OFDEL	(1 << 19)	/* Fill is DEL.  */
Packit Service 82fcde
#endif
Packit Service 82fcde
Packit Service 82fcde
  /* Control modes.  */
Packit Service 82fcde
  tcflag_t c_cflag;
Packit Service 82fcde
#ifdef	__USE_MISC
Packit Service 82fcde
# define CIGNORE	(1 << 0)	/* Ignore these control flags.  */
Packit Service 82fcde
#endif
Packit Service 82fcde
#define	CSIZE	(CS5|CS6|CS7|CS8)	/* Number of bits per byte (mask).  */
Packit Service 82fcde
#define	CS5	0		/* 5 bits per byte.  */
Packit Service 82fcde
#define	CS6	(1 << 8)	/* 6 bits per byte.  */
Packit Service 82fcde
#define	CS7	(1 << 9)	/* 7 bits per byte.  */
Packit Service 82fcde
#define	CS8	(CS6|CS7)	/* 8 bits per byte.  */
Packit Service 82fcde
#define	CSTOPB	(1 << 10)	/* Two stop bits instead of one.  */
Packit Service 82fcde
#define	CREAD	(1 << 11)	/* Enable receiver.  */
Packit Service 82fcde
#define	PARENB	(1 << 12)	/* Parity enable.  */
Packit Service 82fcde
#define	PARODD	(1 << 13)	/* Odd parity instead of even.  */
Packit Service 82fcde
#define	HUPCL	(1 << 14)	/* Hang up on last close.  */
Packit Service 82fcde
#define	CLOCAL	(1 << 15)	/* Ignore modem status lines.  */
Packit Service 82fcde
#ifdef	__USE_MISC
Packit Service 82fcde
# define CRTSCTS	(1 << 16)	/* RTS/CTS flow control.  */
Packit Service 82fcde
# define CRTS_IFLOW	CRTSCTS		/* Compatibility.  */
Packit Service 82fcde
# define CCTS_OFLOW	CRTSCTS		/* Compatibility.  */
Packit Service 82fcde
# define CDTRCTS	(1 << 17)	/* DTR/CTS flow control.  */
Packit Service 82fcde
# define MDMBUF		(1 << 20)	/* DTR/DCD flow control.  */
Packit Service 82fcde
# define CHWFLOW	(MDMBUF|CRTSCTS|CDTRCTS) /* All types of flow control.  */
Packit Service 82fcde
#endif
Packit Service 82fcde
Packit Service 82fcde
  /* Local modes.  */
Packit Service 82fcde
  tcflag_t c_lflag;
Packit Service 82fcde
#ifdef	__USE_MISC
Packit Service 82fcde
# define ECHOKE	(1 << 0)	/* Visual erase for KILL.  */
Packit Service 82fcde
#endif
Packit Service 82fcde
#define	_ECHOE	(1 << 1)	/* Visual erase for ERASE.  */
Packit Service 82fcde
#define	ECHOE	_ECHOE
Packit Service 82fcde
#define	_ECHOK	(1 << 2)	/* Echo NL after KILL.  */
Packit Service 82fcde
#define	ECHOK	_ECHOK
Packit Service 82fcde
#define	_ECHO	(1 << 3)	/* Enable echo.  */
Packit Service 82fcde
#define	ECHO	_ECHO
Packit Service 82fcde
#define	_ECHONL	(1 << 4)	/* Echo NL even if ECHO is off.  */
Packit Service 82fcde
#define	ECHONL	_ECHONL
Packit Service 82fcde
#ifdef	__USE_MISC
Packit Service 82fcde
# define ECHOPRT	(1 << 5)	/* Hardcopy visual erase.  */
Packit Service 82fcde
# define ECHOCTL	(1 << 6)	/* Echo control characters as ^X.  */
Packit Service 82fcde
#endif
Packit Service 82fcde
#define	_ISIG	(1 << 7)	/* Enable signals.  */
Packit Service 82fcde
#define	ISIG	_ISIG
Packit Service 82fcde
#define	_ICANON	(1 << 8)	/* Do erase and kill processing.  */
Packit Service 82fcde
#define	ICANON	_ICANON
Packit Service 82fcde
#ifdef	__USE_MISC
Packit Service 82fcde
# define ALTWERASE (1 << 9)	/* Alternate WERASE algorithm.  */
Packit Service 82fcde
#endif
Packit Service 82fcde
#define	_IEXTEN	(1 << 10)	/* Enable DISCARD and LNEXT.  */
Packit Service 82fcde
#define	IEXTEN	_IEXTEN
Packit Service 82fcde
#ifdef	__USE_MISC
Packit Service 82fcde
# define EXTPROC	(1 << 11)	/* External processing.  */
Packit Service 82fcde
#endif
Packit Service 82fcde
#define	_TOSTOP	(1 << 22)	/* Send SIGTTOU for background output.  */
Packit Service 82fcde
#define	TOSTOP	_TOSTOP
Packit Service 82fcde
#ifdef	__USE_MISC
Packit Service 82fcde
# define FLUSHO	(1 << 23)	/* Output being flushed (state).  */
Packit Service 82fcde
#endif
Packit Service 82fcde
#if defined __USE_XOPEN && !defined __USE_XOPEN2K
Packit Service 82fcde
# define XCASE	(1 << 24)	/* Canonical upper/lower case.  */
Packit Service 82fcde
#endif
Packit Service 82fcde
#ifdef __USE_MISC
Packit Service 82fcde
# define NOKERNINFO (1 << 25)	/* Disable VSTATUS.  */
Packit Service 82fcde
# define PENDIN	(1 << 29)	/* Retype pending input (state).  */
Packit Service 82fcde
#endif
Packit Service 82fcde
#define	_NOFLSH	(1 << 31)	/* Disable flush after interrupt.  */
Packit Service 82fcde
#define	NOFLSH	_NOFLSH
Packit Service 82fcde
Packit Service 82fcde
  /* Control characters.  */
Packit Service 82fcde
#define	VEOF	0		/* End-of-file character [ICANON].  */
Packit Service 82fcde
#define	VEOL	1		/* End-of-line character [ICANON].  */
Packit Service 82fcde
#ifdef	__USE_MISC
Packit Service 82fcde
# define VEOL2	2		/* Second EOL character [ICANON].  */
Packit Service 82fcde
#endif
Packit Service 82fcde
#define	VERASE	3		/* Erase character [ICANON].  */
Packit Service 82fcde
#ifdef	__USE_MISC
Packit Service 82fcde
# define VWERASE	4		/* Word-erase character [ICANON].  */
Packit Service 82fcde
#endif
Packit Service 82fcde
#define	VKILL	5		/* Kill-line character [ICANON].  */
Packit Service 82fcde
#ifdef	__USE_MISC
Packit Service 82fcde
# define VREPRINT 6		/* Reprint-line character [ICANON].  */
Packit Service 82fcde
#endif
Packit Service 82fcde
#define	VINTR	8		/* Interrupt character [ISIG].  */
Packit Service 82fcde
#define	VQUIT	9		/* Quit character [ISIG].  */
Packit Service 82fcde
#define	VSUSP	10		/* Suspend character [ISIG].  */
Packit Service 82fcde
#ifdef	__USE_MISC
Packit Service 82fcde
# define VDSUSP	11		/* Delayed suspend character [ISIG].  */
Packit Service 82fcde
#endif
Packit Service 82fcde
#define	VSTART	12		/* Start (X-ON) character [IXON, IXOFF].  */
Packit Service 82fcde
#define	VSTOP	13		/* Stop (X-OFF) character [IXON, IXOFF].  */
Packit Service 82fcde
#ifdef	__USE_MISC
Packit Service 82fcde
# define VLNEXT	14		/* Literal-next character [IEXTEN].  */
Packit Service 82fcde
# define VDISCARD 15		/* Discard character [IEXTEN].  */
Packit Service 82fcde
#endif
Packit Service 82fcde
#define	VMIN	16		/* Minimum number of bytes read at once [!ICANON].  */
Packit Service 82fcde
#define	VTIME	17		/* Time-out value (tenths of a second) [!ICANON].  */
Packit Service 82fcde
#ifdef	__USE_MISC
Packit Service 82fcde
# define VSTATUS	18		/* Status character [ICANON].  */
Packit Service 82fcde
#endif
Packit Service 82fcde
#define	NCCS	20		/* Value duplicated in <hurd/tioctl.defs>.  */
Packit Service 82fcde
  cc_t c_cc[NCCS];
Packit Service 82fcde
Packit Service 82fcde
  /* Input and output baud rates.  */
Packit Service 82fcde
  speed_t __ispeed, __ospeed;
Packit Service 82fcde
#define	B0	0		/* Hang up.  */
Packit Service 82fcde
#define	B50	50		/* 50 baud.  */
Packit Service 82fcde
#define	B75	75		/* 75 baud.  */
Packit Service 82fcde
#define	B110	110		/* 110 baud.  */
Packit Service 82fcde
#define	B134	134		/* 134.5 baud.  */
Packit Service 82fcde
#define	B150	150		/* 150 baud.  */
Packit Service 82fcde
#define	B200	200		/* 200 baud.  */
Packit Service 82fcde
#define	B300	300		/* 300 baud.  */
Packit Service 82fcde
#define	B600	600		/* 600 baud.  */
Packit Service 82fcde
#define	B1200	1200		/* 1200 baud.  */
Packit Service 82fcde
#define	B1800	1800		/* 1800 baud.  */
Packit Service 82fcde
#define	B2400	2400		/* 2400 baud.  */
Packit Service 82fcde
#define	B4800	4800		/* 4800 baud.  */
Packit Service 82fcde
#define	B9600	9600		/* 9600 baud.  */
Packit Service 82fcde
#define	B7200	7200		/* 7200 baud.  */
Packit Service 82fcde
#define	B14400	14400		/* 14400 baud.  */
Packit Service 82fcde
#define	B19200	19200		/* 19200 baud.  */
Packit Service 82fcde
#define	B28800	28800		/* 28800 baud.  */
Packit Service 82fcde
#define	B38400	38400		/* 38400 baud.  */
Packit Service 82fcde
#ifdef	__USE_MISC
Packit Service 82fcde
# define EXTA	19200
Packit Service 82fcde
# define EXTB	38400
Packit Service 82fcde
#endif
Packit Service 82fcde
#define	B57600	57600
Packit Service 82fcde
#define	B76800	76800
Packit Service 82fcde
#define	B115200	115200
Packit Service 82fcde
#define	B230400	230400
Packit Service 82fcde
#define	B460800	460800
Packit Service 82fcde
#define	B500000	500000
Packit Service 82fcde
#define	B576000	576000
Packit Service 82fcde
#define	B921600	921600
Packit Service 82fcde
#define	B1000000 1000000
Packit Service 82fcde
#define	B1152000 1152000
Packit Service 82fcde
#define	B1500000 1500000
Packit Service 82fcde
#define	B2000000 2000000
Packit Service 82fcde
#define	B2500000 2500000
Packit Service 82fcde
#define	B3000000 3000000
Packit Service 82fcde
#define	B3500000 3500000
Packit Service 82fcde
#define	B4000000 4000000
Packit Service 82fcde
};
Packit Service 82fcde
Packit Service 82fcde
#define _IOT_termios /* Hurd ioctl type field.  */ \
Packit Service 82fcde
  _IOT (_IOTS (tcflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2)
Packit Service 82fcde
Packit Service 82fcde
/* Values for the OPTIONAL_ACTIONS argument to `tcsetattr'.  */
Packit Service 82fcde
#define	TCSANOW		0	/* Change immediately.  */
Packit Service 82fcde
#define	TCSADRAIN	1	/* Change when pending output is written.  */
Packit Service 82fcde
#define	TCSAFLUSH	2	/* Flush pending input before changing.  */
Packit Service 82fcde
#ifdef	__USE_MISC
Packit Service 82fcde
# define TCSASOFT	0x10	/* Flag: Don't alter hardware state.  */
Packit Service 82fcde
#endif
Packit Service 82fcde
Packit Service 82fcde
/* Values for the QUEUE_SELECTOR argument to `tcflush'.  */
Packit Service 82fcde
#define	TCIFLUSH	1	/* Discard data received but not yet read.  */
Packit Service 82fcde
#define	TCOFLUSH	2	/* Discard data written but not yet sent.  */
Packit Service 82fcde
#define	TCIOFLUSH	3	/* Discard all pending data.  */
Packit Service 82fcde
Packit Service 82fcde
/* Values for the ACTION argument to `tcflow'.  */
Packit Service 82fcde
#define	TCOOFF	1		/* Suspend output.  */
Packit Service 82fcde
#define	TCOON	2		/* Restart suspended output.  */
Packit Service 82fcde
#define	TCIOFF	3		/* Send a STOP character.  */
Packit Service 82fcde
#define	TCION	4		/* Send a START character.  */