Merge tag 'mmc-v6.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc
[linux-block.git] / include / linux / termios_internal.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _LINUX_TERMIOS_CONV_H
3 #define _LINUX_TERMIOS_CONV_H
4
5 #include <linux/uaccess.h>
6 #include <asm/termios.h>
7
8 /*      intr=^C         quit=^\         erase=del       kill=^U
9         eof=^D          vtime=\0        vmin=\1         sxtc=\0
10         start=^Q        stop=^S         susp=^Z         eol=\0
11         reprint=^R      discard=^O      werase=^W       lnext=^V
12         eol2=\0
13 */
14
15 #ifdef VDSUSP
16 #define INIT_C_CC_VDSUSP_EXTRA [VDSUSP] = 'Y'-0x40,
17 #else
18 #define INIT_C_CC_VDSUSP_EXTRA
19 #endif
20
21 #define INIT_C_CC {             \
22         [VINTR] = 'C'-0x40,     \
23         [VQUIT] = '\\'-0x40,    \
24         [VERASE] = '\177',      \
25         [VKILL] = 'U'-0x40,     \
26         [VEOF] = 'D'-0x40,      \
27         [VSTART] = 'Q'-0x40,    \
28         [VSTOP] = 'S'-0x40,     \
29         [VSUSP] = 'Z'-0x40,     \
30         [VREPRINT] = 'R'-0x40,  \
31         [VDISCARD] = 'O'-0x40,  \
32         [VWERASE] = 'W'-0x40,   \
33         [VLNEXT] = 'V'-0x40,    \
34         INIT_C_CC_VDSUSP_EXTRA  \
35         [VMIN] = 1 }
36
37 int user_termio_to_kernel_termios(struct ktermios *, struct termio __user *);
38 int kernel_termios_to_user_termio(struct termio __user *, struct ktermios *);
39 #ifdef TCGETS2
40 int user_termios_to_kernel_termios(struct ktermios *, struct termios2 __user *);
41 int kernel_termios_to_user_termios(struct termios2 __user *, struct ktermios *);
42 int user_termios_to_kernel_termios_1(struct ktermios *, struct termios __user *);
43 int kernel_termios_to_user_termios_1(struct termios __user *, struct ktermios *);
44 #else /* TCGETS2 */
45 int user_termios_to_kernel_termios(struct ktermios *, struct termios __user *);
46 int kernel_termios_to_user_termios(struct termios __user *, struct ktermios *);
47 #endif /* TCGETS2 */
48
49 #endif /* _LINUX_TERMIOS_CONV_H */