1fb7df12dSIngo Molnar /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
26375f0abSArnaldo Carvalho de Melo #ifndef __ASM_GENERIC_IOCTLS_H
36375f0abSArnaldo Carvalho de Melo #define __ASM_GENERIC_IOCTLS_H
46375f0abSArnaldo Carvalho de Melo 
56375f0abSArnaldo Carvalho de Melo #include <linux/ioctl.h>
66375f0abSArnaldo Carvalho de Melo 
76375f0abSArnaldo Carvalho de Melo /*
86375f0abSArnaldo Carvalho de Melo  * These are the most common definitions for tty ioctl numbers.
96375f0abSArnaldo Carvalho de Melo  * Most of them do not use the recommended _IOC(), but there is
106375f0abSArnaldo Carvalho de Melo  * probably some source code out there hardcoding the number,
116375f0abSArnaldo Carvalho de Melo  * so we might as well use them for all new platforms.
126375f0abSArnaldo Carvalho de Melo  *
136375f0abSArnaldo Carvalho de Melo  * The architectures that use different values here typically
146375f0abSArnaldo Carvalho de Melo  * try to be compatible with some Unix variants for the same
156375f0abSArnaldo Carvalho de Melo  * architecture.
166375f0abSArnaldo Carvalho de Melo  */
176375f0abSArnaldo Carvalho de Melo 
186375f0abSArnaldo Carvalho de Melo /* 0x54 is just a magic number to make these relatively unique ('T') */
196375f0abSArnaldo Carvalho de Melo 
206375f0abSArnaldo Carvalho de Melo #define TCGETS		0x5401
216375f0abSArnaldo Carvalho de Melo #define TCSETS		0x5402
226375f0abSArnaldo Carvalho de Melo #define TCSETSW		0x5403
236375f0abSArnaldo Carvalho de Melo #define TCSETSF		0x5404
246375f0abSArnaldo Carvalho de Melo #define TCGETA		0x5405
256375f0abSArnaldo Carvalho de Melo #define TCSETA		0x5406
266375f0abSArnaldo Carvalho de Melo #define TCSETAW		0x5407
276375f0abSArnaldo Carvalho de Melo #define TCSETAF		0x5408
286375f0abSArnaldo Carvalho de Melo #define TCSBRK		0x5409
296375f0abSArnaldo Carvalho de Melo #define TCXONC		0x540A
306375f0abSArnaldo Carvalho de Melo #define TCFLSH		0x540B
316375f0abSArnaldo Carvalho de Melo #define TIOCEXCL	0x540C
326375f0abSArnaldo Carvalho de Melo #define TIOCNXCL	0x540D
336375f0abSArnaldo Carvalho de Melo #define TIOCSCTTY	0x540E
346375f0abSArnaldo Carvalho de Melo #define TIOCGPGRP	0x540F
356375f0abSArnaldo Carvalho de Melo #define TIOCSPGRP	0x5410
366375f0abSArnaldo Carvalho de Melo #define TIOCOUTQ	0x5411
376375f0abSArnaldo Carvalho de Melo #define TIOCSTI		0x5412
386375f0abSArnaldo Carvalho de Melo #define TIOCGWINSZ	0x5413
396375f0abSArnaldo Carvalho de Melo #define TIOCSWINSZ	0x5414
406375f0abSArnaldo Carvalho de Melo #define TIOCMGET	0x5415
416375f0abSArnaldo Carvalho de Melo #define TIOCMBIS	0x5416
426375f0abSArnaldo Carvalho de Melo #define TIOCMBIC	0x5417
436375f0abSArnaldo Carvalho de Melo #define TIOCMSET	0x5418
446375f0abSArnaldo Carvalho de Melo #define TIOCGSOFTCAR	0x5419
456375f0abSArnaldo Carvalho de Melo #define TIOCSSOFTCAR	0x541A
466375f0abSArnaldo Carvalho de Melo #define FIONREAD	0x541B
476375f0abSArnaldo Carvalho de Melo #define TIOCINQ		FIONREAD
486375f0abSArnaldo Carvalho de Melo #define TIOCLINUX	0x541C
496375f0abSArnaldo Carvalho de Melo #define TIOCCONS	0x541D
506375f0abSArnaldo Carvalho de Melo #define TIOCGSERIAL	0x541E
516375f0abSArnaldo Carvalho de Melo #define TIOCSSERIAL	0x541F
526375f0abSArnaldo Carvalho de Melo #define TIOCPKT		0x5420
536375f0abSArnaldo Carvalho de Melo #define FIONBIO		0x5421
546375f0abSArnaldo Carvalho de Melo #define TIOCNOTTY	0x5422
556375f0abSArnaldo Carvalho de Melo #define TIOCSETD	0x5423
566375f0abSArnaldo Carvalho de Melo #define TIOCGETD	0x5424
576375f0abSArnaldo Carvalho de Melo #define TCSBRKP		0x5425	/* Needed for POSIX tcsendbreak() */
586375f0abSArnaldo Carvalho de Melo #define TIOCSBRK	0x5427  /* BSD compatibility */
596375f0abSArnaldo Carvalho de Melo #define TIOCCBRK	0x5428  /* BSD compatibility */
606375f0abSArnaldo Carvalho de Melo #define TIOCGSID	0x5429  /* Return the session ID of FD */
616375f0abSArnaldo Carvalho de Melo #define TCGETS2		_IOR('T', 0x2A, struct termios2)
626375f0abSArnaldo Carvalho de Melo #define TCSETS2		_IOW('T', 0x2B, struct termios2)
636375f0abSArnaldo Carvalho de Melo #define TCSETSW2	_IOW('T', 0x2C, struct termios2)
646375f0abSArnaldo Carvalho de Melo #define TCSETSF2	_IOW('T', 0x2D, struct termios2)
656375f0abSArnaldo Carvalho de Melo #define TIOCGRS485	0x542E
666375f0abSArnaldo Carvalho de Melo #ifndef TIOCSRS485
676375f0abSArnaldo Carvalho de Melo #define TIOCSRS485	0x542F
686375f0abSArnaldo Carvalho de Melo #endif
696375f0abSArnaldo Carvalho de Melo #define TIOCGPTN	_IOR('T', 0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
706375f0abSArnaldo Carvalho de Melo #define TIOCSPTLCK	_IOW('T', 0x31, int)  /* Lock/unlock Pty */
716375f0abSArnaldo Carvalho de Melo #define TIOCGDEV	_IOR('T', 0x32, unsigned int) /* Get primary device node of /dev/console */
726375f0abSArnaldo Carvalho de Melo #define TCGETX		0x5432 /* SYS5 TCGETX compatibility */
736375f0abSArnaldo Carvalho de Melo #define TCSETX		0x5433
746375f0abSArnaldo Carvalho de Melo #define TCSETXF		0x5434
756375f0abSArnaldo Carvalho de Melo #define TCSETXW		0x5435
766375f0abSArnaldo Carvalho de Melo #define TIOCSIG		_IOW('T', 0x36, int)  /* pty: generate signal */
776375f0abSArnaldo Carvalho de Melo #define TIOCVHANGUP	0x5437
786375f0abSArnaldo Carvalho de Melo #define TIOCGPKT	_IOR('T', 0x38, int) /* Get packet mode state */
796375f0abSArnaldo Carvalho de Melo #define TIOCGPTLCK	_IOR('T', 0x39, int) /* Get Pty lock state */
806375f0abSArnaldo Carvalho de Melo #define TIOCGEXCL	_IOR('T', 0x40, int) /* Get exclusive mode state */
816375f0abSArnaldo Carvalho de Melo #define TIOCGPTPEER	_IO('T', 0x41) /* Safely open the slave */
8283d9bdeaSArnaldo Carvalho de Melo #define TIOCGISO7816	_IOR('T', 0x42, struct serial_iso7816)
8383d9bdeaSArnaldo Carvalho de Melo #define TIOCSISO7816	_IOWR('T', 0x43, struct serial_iso7816)
846375f0abSArnaldo Carvalho de Melo 
856375f0abSArnaldo Carvalho de Melo #define FIONCLEX	0x5450
866375f0abSArnaldo Carvalho de Melo #define FIOCLEX		0x5451
876375f0abSArnaldo Carvalho de Melo #define FIOASYNC	0x5452
886375f0abSArnaldo Carvalho de Melo #define TIOCSERCONFIG	0x5453
896375f0abSArnaldo Carvalho de Melo #define TIOCSERGWILD	0x5454
906375f0abSArnaldo Carvalho de Melo #define TIOCSERSWILD	0x5455
916375f0abSArnaldo Carvalho de Melo #define TIOCGLCKTRMIOS	0x5456
926375f0abSArnaldo Carvalho de Melo #define TIOCSLCKTRMIOS	0x5457
936375f0abSArnaldo Carvalho de Melo #define TIOCSERGSTRUCT	0x5458 /* For debugging only */
946375f0abSArnaldo Carvalho de Melo #define TIOCSERGETLSR   0x5459 /* Get line status register */
956375f0abSArnaldo Carvalho de Melo #define TIOCSERGETMULTI 0x545A /* Get multiport config  */
966375f0abSArnaldo Carvalho de Melo #define TIOCSERSETMULTI 0x545B /* Set multiport config */
976375f0abSArnaldo Carvalho de Melo 
986375f0abSArnaldo Carvalho de Melo #define TIOCMIWAIT	0x545C	/* wait for a change on serial input line(s) */
996375f0abSArnaldo Carvalho de Melo #define TIOCGICOUNT	0x545D	/* read serial port inline interrupt counts */
1006375f0abSArnaldo Carvalho de Melo 
1016375f0abSArnaldo Carvalho de Melo /*
1026375f0abSArnaldo Carvalho de Melo  * Some arches already define FIOQSIZE due to a historical
1036375f0abSArnaldo Carvalho de Melo  * conflict with a Hayes modem-specific ioctl value.
1046375f0abSArnaldo Carvalho de Melo  */
1056375f0abSArnaldo Carvalho de Melo #ifndef FIOQSIZE
1066375f0abSArnaldo Carvalho de Melo # define FIOQSIZE	0x5460
1076375f0abSArnaldo Carvalho de Melo #endif
1086375f0abSArnaldo Carvalho de Melo 
1096375f0abSArnaldo Carvalho de Melo /* Used for packet mode */
1106375f0abSArnaldo Carvalho de Melo #define TIOCPKT_DATA		 0
1116375f0abSArnaldo Carvalho de Melo #define TIOCPKT_FLUSHREAD	 1
1126375f0abSArnaldo Carvalho de Melo #define TIOCPKT_FLUSHWRITE	 2
1136375f0abSArnaldo Carvalho de Melo #define TIOCPKT_STOP		 4
1146375f0abSArnaldo Carvalho de Melo #define TIOCPKT_START		 8
1156375f0abSArnaldo Carvalho de Melo #define TIOCPKT_NOSTOP		16
1166375f0abSArnaldo Carvalho de Melo #define TIOCPKT_DOSTOP		32
1176375f0abSArnaldo Carvalho de Melo #define TIOCPKT_IOCTL		64
1186375f0abSArnaldo Carvalho de Melo 
1196375f0abSArnaldo Carvalho de Melo #define TIOCSER_TEMT	0x01	/* Transmitter physically empty */
1206375f0abSArnaldo Carvalho de Melo 
1216375f0abSArnaldo Carvalho de Melo #endif /* __ASM_GENERIC_IOCTLS_H */
122