summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/kern/tty.c10
-rw-r--r--sys/kern/tty_pts.c2
2 files changed, 6 insertions, 6 deletions
diff --git a/sys/kern/tty.c b/sys/kern/tty.c
index 3ad5ee6..e12f270 100644
--- a/sys/kern/tty.c
+++ b/sys/kern/tty.c
@@ -724,14 +724,14 @@ ttyil_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int fflag,
switch (cmd) {
case TIOCGETA:
/* Obtain terminal flags through tcgetattr(). */
- memcpy(data, dev->si_drv2, sizeof(struct termios));
+ *(struct termios*)data = *(struct termios*)dev->si_drv2;
break;
case TIOCSETA:
/* Set terminal flags through tcsetattr(). */
error = priv_check(td, PRIV_TTY_SETA);
if (error)
break;
- memcpy(dev->si_drv2, data, sizeof(struct termios));
+ *(struct termios*)dev->si_drv2 = *(struct termios*)data;
break;
case TIOCGETD:
*(int *)data = TTYDISC;
@@ -1344,7 +1344,7 @@ tty_generic_ioctl(struct tty *tp, u_long cmd, void *data, struct thread *td)
return (0);
case TIOCGETA:
/* Obtain terminal flags through tcgetattr(). */
- memcpy(data, &tp->t_termios, sizeof(struct termios));
+ *(struct termios*)data = tp->t_termios;
return (0);
case TIOCSETA:
case TIOCSETAW:
@@ -1568,13 +1568,13 @@ tty_generic_ioctl(struct tty *tp, u_long cmd, void *data, struct thread *td)
return (0);
case TIOCGWINSZ:
/* Obtain window size. */
- memcpy(data, &tp->t_winsize, sizeof(struct winsize));
+ *(struct winsize*)data = tp->t_winsize;
return (0);
case TIOCSWINSZ:
/* Set window size. */
if (bcmp(&tp->t_winsize, data, sizeof(struct winsize)) == 0)
return (0);
- memcpy(&tp->t_winsize, data, sizeof(struct winsize));
+ tp->t_winsize = *(struct winsize*)data;
tty_signal_pgrp(tp, SIGWINCH);
return (0);
case TIOCEXCL:
diff --git a/sys/kern/tty_pts.c b/sys/kern/tty_pts.c
index cef9866..74ab185 100644
--- a/sys/kern/tty_pts.c
+++ b/sys/kern/tty_pts.c
@@ -310,7 +310,7 @@ ptsdev_ioctl(struct file *fp, u_long cmd, void *data,
case TIOCGETA:
/* Obtain terminal flags through tcgetattr(). */
tty_lock(tp);
- memcpy(data, &tp->t_termios, sizeof(struct termios));
+ *(struct termios*)data = tp->t_termios;
tty_unlock(tp);
return (0);
#endif /* PTS_LINUX */
OpenPOWER on IntegriCloud