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
37int user_termio_to_kernel_termios(struct ktermios *, struct termio __user *);
38int kernel_termios_to_user_termio(struct termio __user *, struct ktermios *);
39#ifdef TCGETS2
40int user_termios_to_kernel_termios(struct ktermios *, struct termios2 __user *);
41int kernel_termios_to_user_termios(struct termios2 __user *, struct ktermios *);
42int user_termios_to_kernel_termios_1(struct ktermios *, struct termios __user *);
43int kernel_termios_to_user_termios_1(struct termios __user *, struct ktermios *);
44#else /* TCGETS2 */
45int user_termios_to_kernel_termios(struct ktermios *, struct termios __user *);
46int kernel_termios_to_user_termios(struct termios __user *, struct ktermios *);
47#endif /* TCGETS2 */
48
49#endif /* _LINUX_TERMIOS_CONV_H */
50

source code of linux/include/linux/termios_internal.h