summaryrefslogtreecommitdiffstats
path: root/sys/compat
diff options
context:
space:
mode:
authordelphij <delphij@FreeBSD.org>2005-12-13 15:32:52 +0000
committerdelphij <delphij@FreeBSD.org>2005-12-13 15:32:52 +0000
commit53041c5448209c163cc4a5fa4172163b787b80c9 (patch)
treea96d7021f8b659000768c3957226b04544e00ad1 /sys/compat
parent76cd6764a47666f310f54363214c051d6bcc6672 (diff)
downloadFreeBSD-src-53041c5448209c163cc4a5fa4172163b787b80c9.zip
FreeBSD-src-53041c5448209c163cc4a5fa4172163b787b80c9.tar.gz
In Linux, kernel parameters passed to ioctl are by value, while in FreeBSD
they are passed by reference. Handle the difference within the linux_ioctl_termio on the LINUX_TCFLSH path. Submitted by: Jaroslav Drzik <jaro_AT_coop-voz_dot_sk>
Diffstat (limited to 'sys/compat')
-rw-r--r--sys/compat/linux/linux_ioctl.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/compat/linux/linux_ioctl.c b/sys/compat/linux/linux_ioctl.c
index 1a59f4b..44b5fa5 100644
--- a/sys/compat/linux/linux_ioctl.c
+++ b/sys/compat/linux/linux_ioctl.c
@@ -806,22 +806,22 @@ linux_ioctl_termio(struct thread *td, struct linux_ioctl_args *args)
}
case LINUX_TCFLSH: {
- args->cmd = TIOCFLUSH;
+ int val;
switch (args->arg) {
case LINUX_TCIFLUSH:
- args->arg = FREAD;
+ val = FREAD;
break;
case LINUX_TCOFLUSH:
- args->arg = FWRITE;
+ val = FWRITE;
break;
case LINUX_TCIOFLUSH:
- args->arg = FREAD | FWRITE;
+ val = FREAD | FWRITE;
break;
default:
fdrop(fp, td);
return (EINVAL);
}
- error = (ioctl(td, (struct ioctl_args *)args));
+ error = (fo_ioctl(fp,TIOCFLUSH,(caddr_t)&val,td->td_ucred,td));
break;
}
OpenPOWER on IntegriCloud