~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/alpha/kernel/termios.c

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /arch/alpha/kernel/termios.c (Architecture m68k) and /arch/alpha/kernel/termios.c (Architecture alpha)


  1 // SPDX-License-Identifier: GPL-2.0                 1 // SPDX-License-Identifier: GPL-2.0
  2 #include <linux/termios_internal.h>                 2 #include <linux/termios_internal.h>
  3                                                     3 
  4 int user_termio_to_kernel_termios(struct kterm      4 int user_termio_to_kernel_termios(struct ktermios *termios,
  5                                                     5                                                 struct termio __user *termio)
  6 {                                                   6 {
  7         struct termio v;                            7         struct termio v;
  8         bool canon;                                 8         bool canon;
  9                                                     9 
 10         if (copy_from_user(&v, termio, sizeof(     10         if (copy_from_user(&v, termio, sizeof(struct termio)))
 11                 return -EFAULT;                    11                 return -EFAULT;
 12                                                    12 
 13         termios->c_iflag = (0xffff0000 & termi     13         termios->c_iflag = (0xffff0000 & termios->c_iflag) | v.c_iflag;
 14         termios->c_oflag = (0xffff0000 & termi     14         termios->c_oflag = (0xffff0000 & termios->c_oflag) | v.c_oflag;
 15         termios->c_cflag = (0xffff0000 & termi     15         termios->c_cflag = (0xffff0000 & termios->c_cflag) | v.c_cflag;
 16         termios->c_lflag = (0xffff0000 & termi     16         termios->c_lflag = (0xffff0000 & termios->c_lflag) | v.c_lflag;
 17         termios->c_line = (0xffff0000 & termio     17         termios->c_line = (0xffff0000 & termios->c_lflag) | v.c_line;
 18                                                    18 
 19         canon = v.c_lflag & ICANON;                19         canon = v.c_lflag & ICANON;
 20         termios->c_cc[VINTR]  = v.c_cc[_VINTR]     20         termios->c_cc[VINTR]  = v.c_cc[_VINTR];
 21         termios->c_cc[VQUIT]  = v.c_cc[_VQUIT]     21         termios->c_cc[VQUIT]  = v.c_cc[_VQUIT];
 22         termios->c_cc[VERASE] = v.c_cc[_VERASE     22         termios->c_cc[VERASE] = v.c_cc[_VERASE];
 23         termios->c_cc[VKILL]  = v.c_cc[_VKILL]     23         termios->c_cc[VKILL]  = v.c_cc[_VKILL];
 24         termios->c_cc[VEOL2]  = v.c_cc[_VEOL2]     24         termios->c_cc[VEOL2]  = v.c_cc[_VEOL2];
 25         termios->c_cc[VSWTC]  = v.c_cc[_VSWTC]     25         termios->c_cc[VSWTC]  = v.c_cc[_VSWTC];
 26         termios->c_cc[canon ? VEOF : VMIN]  =      26         termios->c_cc[canon ? VEOF : VMIN]  = v.c_cc[_VEOF];
 27         termios->c_cc[canon ? VEOL : VTIME] =      27         termios->c_cc[canon ? VEOL : VTIME] = v.c_cc[_VEOL];
 28                                                    28 
 29         return 0;                                  29         return 0;
 30 }                                                  30 }
 31                                                    31 
 32 int kernel_termios_to_user_termio(struct termi     32 int kernel_termios_to_user_termio(struct termio __user *termio,
 33                                                    33                                                 struct ktermios *termios)
 34 {                                                  34 {
 35         struct termio v;                           35         struct termio v;
 36         bool canon;                                36         bool canon;
 37                                                    37 
 38         memset(&v, 0, sizeof(struct termio));      38         memset(&v, 0, sizeof(struct termio));
 39         v.c_iflag = termios->c_iflag;              39         v.c_iflag = termios->c_iflag;
 40         v.c_oflag = termios->c_oflag;              40         v.c_oflag = termios->c_oflag;
 41         v.c_cflag = termios->c_cflag;              41         v.c_cflag = termios->c_cflag;
 42         v.c_lflag = termios->c_lflag;              42         v.c_lflag = termios->c_lflag;
 43         v.c_line = termios->c_line;                43         v.c_line = termios->c_line;
 44                                                    44 
 45         canon = v.c_lflag & ICANON;                45         canon = v.c_lflag & ICANON;
 46         v.c_cc[_VINTR]  = termios->c_cc[VINTR]     46         v.c_cc[_VINTR]  = termios->c_cc[VINTR];
 47         v.c_cc[_VQUIT]  = termios->c_cc[VQUIT]     47         v.c_cc[_VQUIT]  = termios->c_cc[VQUIT];
 48         v.c_cc[_VERASE] = termios->c_cc[VERASE     48         v.c_cc[_VERASE] = termios->c_cc[VERASE];
 49         v.c_cc[_VKILL]  = termios->c_cc[VKILL]     49         v.c_cc[_VKILL]  = termios->c_cc[VKILL];
 50         v.c_cc[_VEOF]   = termios->c_cc[canon      50         v.c_cc[_VEOF]   = termios->c_cc[canon ? VEOF : VMIN];
 51         v.c_cc[_VEOL]   = termios->c_cc[canon      51         v.c_cc[_VEOL]   = termios->c_cc[canon ? VEOL : VTIME];
 52         v.c_cc[_VEOL2]  = termios->c_cc[VEOL2]     52         v.c_cc[_VEOL2]  = termios->c_cc[VEOL2];
 53         v.c_cc[_VSWTC]  = termios->c_cc[VSWTC]     53         v.c_cc[_VSWTC]  = termios->c_cc[VSWTC];
 54                                                    54 
 55         return copy_to_user(termio, &v, sizeof     55         return copy_to_user(termio, &v, sizeof(struct termio));
 56 }                                                  56 }
 57                                                    57 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php