50 lines
1.5 KiB
C
50 lines
1.5 KiB
C
|
/* SPDX-License-Identifier: GPL-2.0 */
|
||
|
#ifndef _LINUX_TERMIOS_CONV_H
|
||
|
#define _LINUX_TERMIOS_CONV_H
|
||
|
|
||
|
#include <linux/uaccess.h>
|
||
|
#include <asm/termios.h>
|
||
|
|
||
|
/* intr=^C quit=^\ erase=del kill=^U
|
||
|
eof=^D vtime=\0 vmin=\1 sxtc=\0
|
||
|
start=^Q stop=^S susp=^Z eol=\0
|
||
|
reprint=^R discard=^O werase=^W lnext=^V
|
||
|
eol2=\0
|
||
|
*/
|
||
|
|
||
|
#ifdef VDSUSP
|
||
|
#define INIT_C_CC_VDSUSP_EXTRA [VDSUSP] = 'Y'-0x40,
|
||
|
#else
|
||
|
#define INIT_C_CC_VDSUSP_EXTRA
|
||
|
#endif
|
||
|
|
||
|
#define INIT_C_CC { \
|
||
|
[VINTR] = 'C'-0x40, \
|
||
|
[VQUIT] = '\\'-0x40, \
|
||
|
[VERASE] = '\177', \
|
||
|
[VKILL] = 'U'-0x40, \
|
||
|
[VEOF] = 'D'-0x40, \
|
||
|
[VSTART] = 'Q'-0x40, \
|
||
|
[VSTOP] = 'S'-0x40, \
|
||
|
[VSUSP] = 'Z'-0x40, \
|
||
|
[VREPRINT] = 'R'-0x40, \
|
||
|
[VDISCARD] = 'O'-0x40, \
|
||
|
[VWERASE] = 'W'-0x40, \
|
||
|
[VLNEXT] = 'V'-0x40, \
|
||
|
INIT_C_CC_VDSUSP_EXTRA \
|
||
|
[VMIN] = 1 }
|
||
|
|
||
|
int user_termio_to_kernel_termios(struct ktermios *, struct termio __user *);
|
||
|
int kernel_termios_to_user_termio(struct termio __user *, struct ktermios *);
|
||
|
#ifdef TCGETS2
|
||
|
int user_termios_to_kernel_termios(struct ktermios *, struct termios2 __user *);
|
||
|
int kernel_termios_to_user_termios(struct termios2 __user *, struct ktermios *);
|
||
|
int user_termios_to_kernel_termios_1(struct ktermios *, struct termios __user *);
|
||
|
int kernel_termios_to_user_termios_1(struct termios __user *, struct ktermios *);
|
||
|
#else /* TCGETS2 */
|
||
|
int user_termios_to_kernel_termios(struct ktermios *, struct termios __user *);
|
||
|
int kernel_termios_to_user_termios(struct termios __user *, struct ktermios *);
|
||
|
#endif /* TCGETS2 */
|
||
|
|
||
|
#endif /* _LINUX_TERMIOS_CONV_H */
|