^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_TERMBITS_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #define __ASM_GENERIC_TERMBITS_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) #include <linux/posix_types.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) typedef unsigned char cc_t;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) typedef unsigned int speed_t;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) typedef unsigned int tcflag_t;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #define NCCS 19
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) struct termios {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) tcflag_t c_iflag; /* input mode flags */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) tcflag_t c_oflag; /* output mode flags */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) tcflag_t c_cflag; /* control mode flags */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) tcflag_t c_lflag; /* local mode flags */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) cc_t c_line; /* line discipline */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) cc_t c_cc[NCCS]; /* control characters */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) struct termios2 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) tcflag_t c_iflag; /* input mode flags */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) tcflag_t c_oflag; /* output mode flags */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) tcflag_t c_cflag; /* control mode flags */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) tcflag_t c_lflag; /* local mode flags */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) cc_t c_line; /* line discipline */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) cc_t c_cc[NCCS]; /* control characters */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) speed_t c_ispeed; /* input speed */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) speed_t c_ospeed; /* output speed */
^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) struct ktermios {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) tcflag_t c_iflag; /* input mode flags */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) tcflag_t c_oflag; /* output mode flags */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) tcflag_t c_cflag; /* control mode flags */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) tcflag_t c_lflag; /* local mode flags */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) cc_t c_line; /* line discipline */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) cc_t c_cc[NCCS]; /* control characters */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) speed_t c_ispeed; /* input speed */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) speed_t c_ospeed; /* output speed */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) /* c_cc characters */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) #define VINTR 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) #define VQUIT 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) #define VERASE 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) #define VKILL 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) #define VEOF 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) #define VTIME 5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) #define VMIN 6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) #define VSWTC 7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) #define VSTART 8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) #define VSTOP 9
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) #define VSUSP 10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) #define VEOL 11
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) #define VREPRINT 12
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) #define VDISCARD 13
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) #define VWERASE 14
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) #define VLNEXT 15
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) #define VEOL2 16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) /* c_iflag bits */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) #define IGNBRK 0000001
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) #define BRKINT 0000002
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) #define IGNPAR 0000004
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) #define PARMRK 0000010
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) #define INPCK 0000020
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) #define ISTRIP 0000040
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) #define INLCR 0000100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) #define IGNCR 0000200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) #define ICRNL 0000400
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) #define IUCLC 0001000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) #define IXON 0002000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) #define IXANY 0004000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) #define IXOFF 0010000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) #define IMAXBEL 0020000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) #define IUTF8 0040000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) /* c_oflag bits */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) #define OPOST 0000001
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) #define OLCUC 0000002
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) #define ONLCR 0000004
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) #define OCRNL 0000010
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) #define ONOCR 0000020
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) #define ONLRET 0000040
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) #define OFILL 0000100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) #define OFDEL 0000200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) #define NLDLY 0000400
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) #define NL0 0000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) #define NL1 0000400
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) #define CRDLY 0003000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) #define CR0 0000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) #define CR1 0001000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) #define CR2 0002000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) #define CR3 0003000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) #define TABDLY 0014000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) #define TAB0 0000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) #define TAB1 0004000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) #define TAB2 0010000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) #define TAB3 0014000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) #define XTABS 0014000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) #define BSDLY 0020000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) #define BS0 0000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) #define BS1 0020000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) #define VTDLY 0040000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) #define VT0 0000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) #define VT1 0040000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) #define FFDLY 0100000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) #define FF0 0000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) #define FF1 0100000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) /* c_cflag bit meaning */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) #define CBAUD 0010017
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) #define B0 0000000 /* hang up */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) #define B50 0000001
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) #define B75 0000002
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) #define B110 0000003
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) #define B134 0000004
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) #define B150 0000005
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) #define B200 0000006
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) #define B300 0000007
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) #define B600 0000010
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) #define B1200 0000011
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) #define B1800 0000012
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) #define B2400 0000013
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) #define B4800 0000014
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) #define B9600 0000015
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) #define B19200 0000016
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) #define B38400 0000017
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) #define EXTA B19200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) #define EXTB B38400
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) #define CSIZE 0000060
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) #define CS5 0000000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) #define CS6 0000020
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) #define CS7 0000040
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) #define CS8 0000060
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) #define CSTOPB 0000100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) #define CREAD 0000200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) #define PARENB 0000400
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) #define PARODD 0001000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) #define HUPCL 0002000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) #define CLOCAL 0004000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) #define CBAUDEX 0010000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) #define BOTHER 0010000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) #define B57600 0010001
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) #define B115200 0010002
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) #define B230400 0010003
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) #define B460800 0010004
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) #define B500000 0010005
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) #define B576000 0010006
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) #define B921600 0010007
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) #define B1000000 0010010
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) #define B1152000 0010011
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) #define B1500000 0010012
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) #define B2000000 0010013
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) #define B2500000 0010014
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) #define B3000000 0010015
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) #define B3500000 0010016
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) #define B4000000 0010017
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) #define CIBAUD 002003600000 /* input baud rate */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) #define CMSPAR 010000000000 /* mark or space (stick) parity */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) #define CRTSCTS 020000000000 /* flow control */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) #define IBSHIFT 16 /* Shift from CBAUD to CIBAUD */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) /* c_lflag bits */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) #define ISIG 0000001
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) #define ICANON 0000002
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) #define XCASE 0000004
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) #define ECHO 0000010
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) #define ECHOE 0000020
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) #define ECHOK 0000040
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) #define ECHONL 0000100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) #define NOFLSH 0000200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) #define TOSTOP 0000400
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) #define ECHOCTL 0001000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) #define ECHOPRT 0002000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) #define ECHOKE 0004000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) #define FLUSHO 0010000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) #define PENDIN 0040000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) #define IEXTEN 0100000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) #define EXTPROC 0200000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) /* tcflow() and TCXONC use these */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) #define TCOOFF 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) #define TCOON 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) #define TCIOFF 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) #define TCION 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) /* tcflush() and TCFLSH use these */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) #define TCIFLUSH 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) #define TCOFLUSH 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) #define TCIOFLUSH 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) /* tcsetattr uses these */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) #define TCSANOW 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) #define TCSADRAIN 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) #define TCSAFLUSH 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) #endif /* __ASM_GENERIC_TERMBITS_H */