Linux Audio

Check our new training course

Loading...
  1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
  2/*
  3 * This file is subject to the terms and conditions of the GNU General Public
  4 * License.  See the file "COPYING" in the main directory of this archive
  5 * for more details.
  6 *
  7 * Copyright (C) 1995, 96, 99, 2001, 06 Ralf Baechle
  8 * Copyright (C) 1999 Silicon Graphics, Inc.
  9 * Copyright (C) 2001 MIPS Technologies, Inc.
 10 */
 11#ifndef _ASM_TERMBITS_H
 12#define _ASM_TERMBITS_H
 13
 14#include <asm-generic/termbits-common.h>
 15
 16typedef unsigned int	tcflag_t;
 17
 18/*
 19 * The ABI says nothing about NCC but seems to use NCCS as
 20 * replacement for it in struct termio
 21 */
 22#define NCCS	23
 23struct termios {
 24	tcflag_t c_iflag;		/* input mode flags */
 25	tcflag_t c_oflag;		/* output mode flags */
 26	tcflag_t c_cflag;		/* control mode flags */
 27	tcflag_t c_lflag;		/* local mode flags */
 28	cc_t c_line;			/* line discipline */
 29	cc_t c_cc[NCCS];		/* control characters */
 30};
 31
 32struct termios2 {
 33	tcflag_t c_iflag;		/* input mode flags */
 34	tcflag_t c_oflag;		/* output mode flags */
 35	tcflag_t c_cflag;		/* control mode flags */
 36	tcflag_t c_lflag;		/* local mode flags */
 37	cc_t c_line;			/* line discipline */
 38	cc_t c_cc[NCCS];		/* control characters */
 39	speed_t c_ispeed;		/* input speed */
 40	speed_t c_ospeed;		/* output speed */
 41};
 42
 43struct ktermios {
 44	tcflag_t c_iflag;		/* input mode flags */
 45	tcflag_t c_oflag;		/* output mode flags */
 46	tcflag_t c_cflag;		/* control mode flags */
 47	tcflag_t c_lflag;		/* local mode flags */
 48	cc_t c_line;			/* line discipline */
 49	cc_t c_cc[NCCS];		/* control characters */
 50	speed_t c_ispeed;		/* input speed */
 51	speed_t c_ospeed;		/* output speed */
 52};
 53
 54/* c_cc characters */
 55#define VINTR		 0		/* Interrupt character [ISIG] */
 56#define VQUIT		 1		/* Quit character [ISIG] */
 57#define VERASE		 2		/* Erase character [ICANON] */
 58#define VKILL		 3		/* Kill-line character [ICANON] */
 59#define VMIN		 4		/* Minimum number of bytes read at once [!ICANON] */
 60#define VTIME		 5		/* Time-out value (tenths of a second) [!ICANON] */
 61#define VEOL2		 6		/* Second EOL character [ICANON] */
 62#define VSWTC		 7		/* ??? */
 63#define VSWTCH		VSWTC
 64#define VSTART		 8		/* Start (X-ON) character [IXON, IXOFF] */
 65#define VSTOP		 9		/* Stop (X-OFF) character [IXON, IXOFF] */
 66#define VSUSP		10		/* Suspend character [ISIG] */
 67#if 0
 68/*
 69 * VDSUSP is not supported
 70 */
 71#define VDSUSP		11		/* Delayed suspend character [ISIG] */
 72#endif
 73#define VREPRINT	12		/* Reprint-line character [ICANON] */
 74#define VDISCARD	13		/* Discard character [IEXTEN] */
 75#define VWERASE		14		/* Word-erase character [ICANON] */
 76#define VLNEXT		15		/* Literal-next character [IEXTEN] */
 77#define VEOF		16		/* End-of-file character [ICANON] */
 78#define VEOL		17		/* End-of-line character [ICANON] */
 79
 80/* c_iflag bits */
 81#define IUCLC	0x0200		/* Map upper case to lower case on input */
 82#define IXON	0x0400		/* Enable start/stop output control */
 83#define IXOFF	0x1000		/* Enable start/stop input control */
 84#define IMAXBEL	0x2000		/* Ring bell when input queue is full */
 85#define IUTF8	0x4000		/* Input is UTF-8 */
 86
 87/* c_oflag bits */
 88#define OLCUC	0x00002		/* Map lower case to upper case on output */
 89#define ONLCR	0x00004		/* Map NL to CR-NL on output */
 90#define NLDLY	0x00100
 91#define   NL0	0x00000
 92#define   NL1	0x00100
 93#define CRDLY	0x00600
 94#define   CR0	0x00000
 95#define   CR1	0x00200
 96#define   CR2	0x00400
 97#define   CR3	0x00600
 98#define TABDLY	0x01800
 99#define   TAB0	0x00000
100#define   TAB1	0x00800
101#define   TAB2	0x01000
102#define   TAB3	0x01800
103#define   XTABS	0x01800
104#define BSDLY	0x02000
105#define   BS0	0x00000
106#define   BS1	0x02000
107#define VTDLY	0x04000
108#define   VT0	0x00000
109#define   VT1	0x04000
110#define FFDLY	0x08000
111#define   FF0	0x00000
112#define   FF1	0x08000
113/*
114#define PAGEOUT ???
115#define WRAP	???
116 */
117
118/* c_cflag bit meaning */
119#define CBAUD		0x0000100f
120#define CSIZE		0x00000030	/* Number of bits per byte (mask) */
121#define   CS5		0x00000000	/* 5 bits per byte */
122#define   CS6		0x00000010	/* 6 bits per byte */
123#define   CS7		0x00000020	/* 7 bits per byte */
124#define   CS8		0x00000030	/* 8 bits per byte */
125#define CSTOPB		0x00000040	/* Two stop bits instead of one */
126#define CREAD		0x00000080	/* Enable receiver */
127#define PARENB		0x00000100	/* Parity enable */
128#define PARODD		0x00000200	/* Odd parity instead of even */
129#define HUPCL		0x00000400	/* Hang up on last close */
130#define CLOCAL		0x00000800	/* Ignore modem status lines */
131#define CBAUDEX		0x00001000
132#define BOTHER		0x00001000
133#define     B57600	0x00001001
134#define    B115200	0x00001002
135#define    B230400	0x00001003
136#define    B460800	0x00001004
137#define    B500000	0x00001005
138#define    B576000	0x00001006
139#define    B921600	0x00001007
140#define   B1000000	0x00001008
141#define   B1152000	0x00001009
142#define   B1500000	0x0000100a
143#define   B2000000	0x0000100b
144#define   B2500000	0x0000100c
145#define   B3000000	0x0000100d
146#define   B3500000	0x0000100e
147#define   B4000000	0x0000100f
148#define CIBAUD		0x100f0000	/* input baud rate */
149
150/* c_lflag bits */
151#define ISIG	0x00001		/* Enable signals */
152#define ICANON	0x00002		/* Do erase and kill processing */
153#define XCASE	0x00004
154#define ECHO	0x00008		/* Enable echo */
155#define ECHOE	0x00010		/* Visual erase for ERASE */
156#define ECHOK	0x00020		/* Echo NL after KILL */
157#define ECHONL	0x00040		/* Echo NL even if ECHO is off */
158#define NOFLSH	0x00080		/* Disable flush after interrupt */
159#define IEXTEN	0x00100		/* Enable DISCARD and LNEXT */
160#define ECHOCTL	0x00200		/* Echo control characters as ^X */
161#define ECHOPRT	0x00400		/* Hardcopy visual erase */
162#define ECHOKE	0x00800		/* Visual erase for KILL */
163#define FLUSHO	0x02000
164#define PENDIN	0x04000		/* Retype pending input (state) */
165#define TOSTOP	0x08000		/* Send SIGTTOU for background output */
166#define ITOSTOP	TOSTOP
167#define EXTPROC	0x10000		/* External processing on pty */
168
169/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
170#define TIOCSER_TEMT	0x01	/* Transmitter physically empty */
171
172/* tcsetattr uses these */
173#define TCSANOW		TCSETS	/* Change immediately */
174#define TCSADRAIN	TCSETSW /* Change when pending output is written */
175#define TCSAFLUSH	TCSETSF /* Flush pending input before changing */
176
177#endif /* _ASM_TERMBITS_H */