xref: /OK3568_Linux_fs/kernel/include/uapi/asm-generic/ioctls.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2*4882a593Smuzhiyun #ifndef __ASM_GENERIC_IOCTLS_H
3*4882a593Smuzhiyun #define __ASM_GENERIC_IOCTLS_H
4*4882a593Smuzhiyun 
5*4882a593Smuzhiyun #include <linux/ioctl.h>
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun /*
8*4882a593Smuzhiyun  * These are the most common definitions for tty ioctl numbers.
9*4882a593Smuzhiyun  * Most of them do not use the recommended _IOC(), but there is
10*4882a593Smuzhiyun  * probably some source code out there hardcoding the number,
11*4882a593Smuzhiyun  * so we might as well use them for all new platforms.
12*4882a593Smuzhiyun  *
13*4882a593Smuzhiyun  * The architectures that use different values here typically
14*4882a593Smuzhiyun  * try to be compatible with some Unix variants for the same
15*4882a593Smuzhiyun  * architecture.
16*4882a593Smuzhiyun  */
17*4882a593Smuzhiyun 
18*4882a593Smuzhiyun /* 0x54 is just a magic number to make these relatively unique ('T') */
19*4882a593Smuzhiyun 
20*4882a593Smuzhiyun #define TCGETS		0x5401
21*4882a593Smuzhiyun #define TCSETS		0x5402
22*4882a593Smuzhiyun #define TCSETSW		0x5403
23*4882a593Smuzhiyun #define TCSETSF		0x5404
24*4882a593Smuzhiyun #define TCGETA		0x5405
25*4882a593Smuzhiyun #define TCSETA		0x5406
26*4882a593Smuzhiyun #define TCSETAW		0x5407
27*4882a593Smuzhiyun #define TCSETAF		0x5408
28*4882a593Smuzhiyun #define TCSBRK		0x5409
29*4882a593Smuzhiyun #define TCXONC		0x540A
30*4882a593Smuzhiyun #define TCFLSH		0x540B
31*4882a593Smuzhiyun #define TIOCEXCL	0x540C
32*4882a593Smuzhiyun #define TIOCNXCL	0x540D
33*4882a593Smuzhiyun #define TIOCSCTTY	0x540E
34*4882a593Smuzhiyun #define TIOCGPGRP	0x540F
35*4882a593Smuzhiyun #define TIOCSPGRP	0x5410
36*4882a593Smuzhiyun #define TIOCOUTQ	0x5411
37*4882a593Smuzhiyun #define TIOCSTI		0x5412
38*4882a593Smuzhiyun #define TIOCGWINSZ	0x5413
39*4882a593Smuzhiyun #define TIOCSWINSZ	0x5414
40*4882a593Smuzhiyun #define TIOCMGET	0x5415
41*4882a593Smuzhiyun #define TIOCMBIS	0x5416
42*4882a593Smuzhiyun #define TIOCMBIC	0x5417
43*4882a593Smuzhiyun #define TIOCMSET	0x5418
44*4882a593Smuzhiyun #define TIOCGSOFTCAR	0x5419
45*4882a593Smuzhiyun #define TIOCSSOFTCAR	0x541A
46*4882a593Smuzhiyun #define FIONREAD	0x541B
47*4882a593Smuzhiyun #define TIOCINQ		FIONREAD
48*4882a593Smuzhiyun #define TIOCLINUX	0x541C
49*4882a593Smuzhiyun #define TIOCCONS	0x541D
50*4882a593Smuzhiyun #define TIOCGSERIAL	0x541E
51*4882a593Smuzhiyun #define TIOCSSERIAL	0x541F
52*4882a593Smuzhiyun #define TIOCPKT		0x5420
53*4882a593Smuzhiyun #define FIONBIO		0x5421
54*4882a593Smuzhiyun #define TIOCNOTTY	0x5422
55*4882a593Smuzhiyun #define TIOCSETD	0x5423
56*4882a593Smuzhiyun #define TIOCGETD	0x5424
57*4882a593Smuzhiyun #define TCSBRKP		0x5425	/* Needed for POSIX tcsendbreak() */
58*4882a593Smuzhiyun #define TIOCSBRK	0x5427  /* BSD compatibility */
59*4882a593Smuzhiyun #define TIOCCBRK	0x5428  /* BSD compatibility */
60*4882a593Smuzhiyun #define TIOCGSID	0x5429  /* Return the session ID of FD */
61*4882a593Smuzhiyun #define TCGETS2		_IOR('T', 0x2A, struct termios2)
62*4882a593Smuzhiyun #define TCSETS2		_IOW('T', 0x2B, struct termios2)
63*4882a593Smuzhiyun #define TCSETSW2	_IOW('T', 0x2C, struct termios2)
64*4882a593Smuzhiyun #define TCSETSF2	_IOW('T', 0x2D, struct termios2)
65*4882a593Smuzhiyun #define TIOCGRS485	0x542E
66*4882a593Smuzhiyun #ifndef TIOCSRS485
67*4882a593Smuzhiyun #define TIOCSRS485	0x542F
68*4882a593Smuzhiyun #endif
69*4882a593Smuzhiyun #define TIOCGPTN	_IOR('T', 0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
70*4882a593Smuzhiyun #define TIOCSPTLCK	_IOW('T', 0x31, int)  /* Lock/unlock Pty */
71*4882a593Smuzhiyun #define TIOCGDEV	_IOR('T', 0x32, unsigned int) /* Get primary device node of /dev/console */
72*4882a593Smuzhiyun #define TCGETX		0x5432 /* SYS5 TCGETX compatibility */
73*4882a593Smuzhiyun #define TCSETX		0x5433
74*4882a593Smuzhiyun #define TCSETXF		0x5434
75*4882a593Smuzhiyun #define TCSETXW		0x5435
76*4882a593Smuzhiyun #define TIOCSIG		_IOW('T', 0x36, int)  /* pty: generate signal */
77*4882a593Smuzhiyun #define TIOCVHANGUP	0x5437
78*4882a593Smuzhiyun #define TIOCGPKT	_IOR('T', 0x38, int) /* Get packet mode state */
79*4882a593Smuzhiyun #define TIOCGPTLCK	_IOR('T', 0x39, int) /* Get Pty lock state */
80*4882a593Smuzhiyun #define TIOCGEXCL	_IOR('T', 0x40, int) /* Get exclusive mode state */
81*4882a593Smuzhiyun #define TIOCGPTPEER	_IO('T', 0x41) /* Safely open the slave */
82*4882a593Smuzhiyun #define TIOCGISO7816	_IOR('T', 0x42, struct serial_iso7816)
83*4882a593Smuzhiyun #define TIOCSISO7816	_IOWR('T', 0x43, struct serial_iso7816)
84*4882a593Smuzhiyun 
85*4882a593Smuzhiyun #define FIONCLEX	0x5450
86*4882a593Smuzhiyun #define FIOCLEX		0x5451
87*4882a593Smuzhiyun #define FIOASYNC	0x5452
88*4882a593Smuzhiyun #define TIOCSERCONFIG	0x5453
89*4882a593Smuzhiyun #define TIOCSERGWILD	0x5454
90*4882a593Smuzhiyun #define TIOCSERSWILD	0x5455
91*4882a593Smuzhiyun #define TIOCGLCKTRMIOS	0x5456
92*4882a593Smuzhiyun #define TIOCSLCKTRMIOS	0x5457
93*4882a593Smuzhiyun #define TIOCSERGSTRUCT	0x5458 /* For debugging only */
94*4882a593Smuzhiyun #define TIOCSERGETLSR   0x5459 /* Get line status register */
95*4882a593Smuzhiyun #define TIOCSERGETMULTI 0x545A /* Get multiport config  */
96*4882a593Smuzhiyun #define TIOCSERSETMULTI 0x545B /* Set multiport config */
97*4882a593Smuzhiyun 
98*4882a593Smuzhiyun #define TIOCMIWAIT	0x545C	/* wait for a change on serial input line(s) */
99*4882a593Smuzhiyun #define TIOCGICOUNT	0x545D	/* read serial port inline interrupt counts */
100*4882a593Smuzhiyun 
101*4882a593Smuzhiyun /*
102*4882a593Smuzhiyun  * Some arches already define FIOQSIZE due to a historical
103*4882a593Smuzhiyun  * conflict with a Hayes modem-specific ioctl value.
104*4882a593Smuzhiyun  */
105*4882a593Smuzhiyun #ifndef FIOQSIZE
106*4882a593Smuzhiyun # define FIOQSIZE	0x5460
107*4882a593Smuzhiyun #endif
108*4882a593Smuzhiyun 
109*4882a593Smuzhiyun /* Used for packet mode */
110*4882a593Smuzhiyun #define TIOCPKT_DATA		 0
111*4882a593Smuzhiyun #define TIOCPKT_FLUSHREAD	 1
112*4882a593Smuzhiyun #define TIOCPKT_FLUSHWRITE	 2
113*4882a593Smuzhiyun #define TIOCPKT_STOP		 4
114*4882a593Smuzhiyun #define TIOCPKT_START		 8
115*4882a593Smuzhiyun #define TIOCPKT_NOSTOP		16
116*4882a593Smuzhiyun #define TIOCPKT_DOSTOP		32
117*4882a593Smuzhiyun #define TIOCPKT_IOCTL		64
118*4882a593Smuzhiyun 
119*4882a593Smuzhiyun #define TIOCSER_TEMT	0x01	/* Transmitter physically empty */
120*4882a593Smuzhiyun 
121*4882a593Smuzhiyun #endif /* __ASM_GENERIC_IOCTLS_H */
122