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