^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 _UAPI_ASM_GENERIC_TERMIOS_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #define _UAPI_ASM_GENERIC_TERMIOS_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) * Most architectures have straight copies of the x86 code, with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) * varying levels of bug fixes on top. Usually it's a good idea
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) * to use this generic version instead, but be careful to avoid
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) * ABI changes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) * New architectures should not provide their own version.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #include <asm/termbits.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) #include <asm/ioctls.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) struct winsize {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) unsigned short ws_row;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) unsigned short ws_col;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) unsigned short ws_xpixel;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) unsigned short ws_ypixel;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) #define NCC 8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) struct termio {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) unsigned short c_iflag; /* input mode flags */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) unsigned short c_oflag; /* output mode flags */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) unsigned short c_cflag; /* control mode flags */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) unsigned short c_lflag; /* local mode flags */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) unsigned char c_line; /* line discipline */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) unsigned char c_cc[NCC]; /* control characters */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) /* modem lines */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) #define TIOCM_LE 0x001
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) #define TIOCM_DTR 0x002
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) #define TIOCM_RTS 0x004
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) #define TIOCM_ST 0x008
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) #define TIOCM_SR 0x010
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) #define TIOCM_CTS 0x020
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) #define TIOCM_CAR 0x040
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) #define TIOCM_RNG 0x080
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) #define TIOCM_DSR 0x100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) #define TIOCM_CD TIOCM_CAR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) #define TIOCM_RI TIOCM_RNG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) #define TIOCM_OUT1 0x2000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) #define TIOCM_OUT2 0x4000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) #define TIOCM_LOOP 0x8000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) #endif /* _UAPI_ASM_GENERIC_TERMIOS_H */