Subject: Linux emulation inconsitencies
To: None <tech-kern@netbsd.org>
From: Emmanuel Dreyfus <p99dreyf@criens.u-psud.fr>
List: tech-kern
Date: 05/07/2001 16:36:02
Hello
I've commited the code that fixes Linux and SunOS emulation for pipes
(they signore SIGIO requests on pipes). It is enabled for a given
emulationby the EMUL_NO_BSD_ASYNCIO_PIPE flag in the e_flags field of
struct emul.
For NetBSD/i386, Linux emulation defines __HAS_MINIMAL_EMUL, and the
e_flags is not availlable. Hence, it does not get the fix. Is there any
objection to move the ifdef __HAS_MINIMAL_EMUL so that the e_flags is
always defined?=20
(And while we are there, why do we need this __HAS_MINIMAL_EMUL?)
Another problem:
I've discovered another emulation inconsitency with fcntl(), but this
time, Linux is alone, hence it can be fixed in Linux only code. The
problem is issuing a F_SETOWN command on a regluar file. On Linux it
works, on NetBSD it fails (ENOTTY). Is there a particular reason why it
is not implemented in NetBSD?
And a third issue:
Linux stores a struct timezone in the kernel, which is set/get by
getttimeofday/settimeofday. Our emulation does not reflect this. There
is very little chance that it can break anything, but it was simple and
fast to fix, hence I made a fix. It's a new file in
sys/compat/linux/common/linux_time.c, that wraps gettimeofday and
settimeofday to keep track of a linux_sys_tz variable in the kernel. Any
complain about this? May I commit it?
--=20
Emmanuel Dreyfus. =20
Vous avez deplac=E9 la souris.=20
Windows NT doit maintenant redemarrer pour valider les modifications.
p99dreyf@criens.u-psud.fr