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