1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2#ifndef _UAPI_LINUX_TTY_H
3#define _UAPI_LINUX_TTY_H
4
5/*
6 * 'tty.h' defines some structures used by tty_io.c and some defines.
7 */
8
9/* line disciplines */
10#define N_TTY		0
11#define N_SLIP		1
12#define N_MOUSE		2
13#define N_PPP		3
14#define N_STRIP		4
15#define N_AX25		5
16#define N_X25		6	/* X.25 async */
17#define N_6PACK		7
18#define N_MASC		8	/* Reserved for Mobitex module <kaz@cafe.net> */
19#define N_R3964		9	/* Reserved for Simatic R3964 module */
20#define N_PROFIBUS_FDL	10	/* Reserved for Profibus */
21#define N_IRDA		11	/* Linux IrDa - http://irda.sourceforge.net/ */
22#define N_SMSBLOCK	12	/* SMS block mode - for talking to GSM data */
23				/* cards about SMS messages */
24#define N_HDLC		13	/* synchronous HDLC */
25#define N_SYNC_PPP	14	/* synchronous PPP */
26#define N_HCI		15	/* Bluetooth HCI UART */
27#define N_GIGASET_M101	16	/* Siemens Gigaset M101 serial DECT adapter */
28#define N_SLCAN		17	/* Serial / USB serial CAN Adaptors */
29#define N_PPS		18	/* Pulse per Second */
30#define N_V253		19	/* Codec control over voice modem */
31#define N_CAIF		20      /* CAIF protocol for talking to modems */
32#define N_GSM0710	21	/* GSM 0710 Mux */
33#define N_TI_WL		22	/* for TI's WL BT, FM, GPS combo chips */
34#define N_TRACESINK	23	/* Trace data routing for MIPI P1149.7 */
35#define N_TRACEROUTER	24	/* Trace data routing for MIPI P1149.7 */
36#define N_NCI		25	/* NFC NCI UART */
37#define N_SPEAKUP	26	/* Speakup communication with synths */
38#define N_NULL		27	/* Null ldisc used for error handling */
39#define N_MCTP		28	/* MCTP-over-serial */
40#define N_DEVELOPMENT	29	/* Manual out-of-tree testing */
41#define N_CAN327	30	/* ELM327 based OBD-II interfaces */
42
43/* Always the newest line discipline + 1 */
44#define NR_LDISCS	31
45
46#endif /* _UAPI_LINUX_TTY_H */
47