svn commit: r265187 - in user/dchagin/lemul/sys: amd64/linux amd64/linux32 compat/linux i386/linux

Warner Losh imp at bsdimp.com
Thu May 1 22:13:14 UTC 2014


On May 1, 2014, at 10:26 AM, Chagin Dmitry <dchagin at freebsd.org> wrote:

> On Thu, May 01, 2014 at 09:17:45AM -0600, Warner Losh wrote:
>> Re this and the signals changes: Are you sure that these values are identical on all linux ABIs? Last time I checked, there was substantial variation between arm, x86 and mips for these values.
>> 
> 
> They are all different. I know. We emulate only x86, not arm or mips. So what the reason to case about this platform?

The structure of the code is such that the other platforms can be added later. These changes make that harder than necessary when you could have move them to sys/x86 instead of making them fully MI.

Anyway, just my humble feedback. I suspect we’ll get demand to support linux/arm64 binaries about this time next year based on the trajectories of the arm64 roll out...

Warner

> 
>> Warner
>> 
>> On May 1, 2014, at 8:02 AM, Dmitry Chagin <dchagin at FreeBSD.org> wrote:
>> 
>>> Author: dchagin
>>> Date: Thu May  1 14:02:47 2014
>>> New Revision: 265187
>>> URL: http://svnweb.freebsd.org/changeset/base/265187
>>> 
>>> Log:
>>> To avoid code duplication move MI open/fcntl definitions to the MI
>>> header file.
>>> 
>>> Modified:
>>> user/dchagin/lemul/sys/amd64/linux/linux.h
>>> user/dchagin/lemul/sys/amd64/linux32/linux.h
>>> user/dchagin/lemul/sys/compat/linux/linux_file.h
>>> user/dchagin/lemul/sys/compat/linux/linux_socket.c
>>> user/dchagin/lemul/sys/i386/linux/linux.h
>>> 
>>> Modified: user/dchagin/lemul/sys/amd64/linux/linux.h
>>> ==============================================================================
>>> --- user/dchagin/lemul/sys/amd64/linux/linux.h	Thu May  1 14:01:45 2014	(r265186)
>>> +++ user/dchagin/lemul/sys/amd64/linux/linux.h	Thu May  1 14:02:47 2014	(r265187)
>>> @@ -353,44 +353,6 @@ struct l_rt_sigframe {
>>> };
>>> 
>>> /*
>>> - * open/fcntl flags
>>> - */
>>> -#define	LINUX_O_RDONLY		00000000
>>> -#define	LINUX_O_WRONLY		00000001
>>> -#define	LINUX_O_RDWR		00000002
>>> -#define	LINUX_O_ACCMODE		00000003
>>> -#define	LINUX_O_CREAT		00000100
>>> -#define	LINUX_O_EXCL		00000200
>>> -#define	LINUX_O_NOCTTY		00000400
>>> -#define	LINUX_O_TRUNC		00001000
>>> -#define	LINUX_O_APPEND		00002000
>>> -#define	LINUX_O_NONBLOCK	00004000
>>> -#define	LINUX_O_NDELAY		LINUX_O_NONBLOCK
>>> -#define	LINUX_O_SYNC		00010000
>>> -#define	LINUX_FASYNC		00020000
>>> -#define	LINUX_O_DIRECT		00040000	/* Direct disk access hint */
>>> -#define	LINUX_O_LARGEFILE	00100000
>>> -#define	LINUX_O_DIRECTORY	00200000	/* Must be a directory */
>>> -#define	LINUX_O_NOFOLLOW	00400000	/* Do not follow links */
>>> -#define	LINUX_O_NOATIME		01000000
>>> -#define	LINUX_O_CLOEXEC		02000000
>>> -
>>> -#define	LINUX_F_DUPFD		0
>>> -#define	LINUX_F_GETFD		1
>>> -#define	LINUX_F_SETFD		2
>>> -#define	LINUX_F_GETFL		3
>>> -#define	LINUX_F_SETFL		4
>>> -#define	LINUX_F_GETLK		5
>>> -#define	LINUX_F_SETLK		6
>>> -#define	LINUX_F_SETLKW		7
>>> -#define	LINUX_F_SETOWN		8
>>> -#define	LINUX_F_GETOWN		9
>>> -
>>> -#define	LINUX_F_RDLCK		0
>>> -#define	LINUX_F_WRLCK		1
>>> -#define	LINUX_F_UNLCK		2
>>> -
>>> -/*
>>> * mount flags
>>> */
>>> #define	LINUX_MS_RDONLY		0x0001
>>> 
>>> Modified: user/dchagin/lemul/sys/amd64/linux32/linux.h
>>> ==============================================================================
>>> --- user/dchagin/lemul/sys/amd64/linux32/linux.h	Thu May  1 14:01:45 2014	(r265186)
>>> +++ user/dchagin/lemul/sys/amd64/linux32/linux.h	Thu May  1 14:02:47 2014	(r265187)
>>> @@ -468,47 +468,12 @@ struct l_rt_sigframe {
>>> } __packed;
>>> 
>>> /*
>>> - * open/fcntl flags
>>> + * arch specific open/fcntl flags
>>> */
>>> -#define	LINUX_O_RDONLY		00000000
>>> -#define	LINUX_O_WRONLY		00000001
>>> -#define	LINUX_O_RDWR		00000002
>>> -#define	LINUX_O_ACCMODE		00000003
>>> -#define	LINUX_O_CREAT		00000100
>>> -#define	LINUX_O_EXCL		00000200
>>> -#define	LINUX_O_NOCTTY		00000400
>>> -#define	LINUX_O_TRUNC		00001000
>>> -#define	LINUX_O_APPEND		00002000
>>> -#define	LINUX_O_NONBLOCK	00004000
>>> -#define	LINUX_O_NDELAY		LINUX_O_NONBLOCK
>>> -#define	LINUX_O_SYNC		00010000
>>> -#define	LINUX_FASYNC		00020000
>>> -#define	LINUX_O_DIRECT		00040000	/* Direct disk access hint */
>>> -#define	LINUX_O_LARGEFILE	00100000
>>> -#define	LINUX_O_DIRECTORY	00200000	/* Must be a directory */
>>> -#define	LINUX_O_NOFOLLOW	00400000	/* Do not follow links */
>>> -#define	LINUX_O_NOATIME		01000000
>>> -#define	LINUX_O_CLOEXEC		02000000
>>> -
>>> -#define	LINUX_F_DUPFD		0
>>> -#define	LINUX_F_GETFD		1
>>> -#define	LINUX_F_SETFD		2
>>> -#define	LINUX_F_GETFL		3
>>> -#define	LINUX_F_SETFL		4
>>> -#define	LINUX_F_GETLK		5
>>> -#define	LINUX_F_SETLK		6
>>> -#define	LINUX_F_SETLKW		7
>>> -#define	LINUX_F_SETOWN		8
>>> -#define	LINUX_F_GETOWN		9
>>> -
>>> #define	LINUX_F_GETLK64		12
>>> #define	LINUX_F_SETLK64		13
>>> #define	LINUX_F_SETLKW64	14
>>> 
>>> -#define	LINUX_F_RDLCK		0
>>> -#define	LINUX_F_WRLCK		1
>>> -#define	LINUX_F_UNLCK		2
>>> -
>>> union l_semun {
>>> 	l_int		val;
>>> 	l_uintptr_t	buf;
>>> 
>>> Modified: user/dchagin/lemul/sys/compat/linux/linux_file.h
>>> ==============================================================================
>>> --- user/dchagin/lemul/sys/compat/linux/linux_file.h	Thu May  1 14:01:45 2014	(r265186)
>>> +++ user/dchagin/lemul/sys/compat/linux/linux_file.h	Thu May  1 14:02:47 2014	(r265187)
>>> @@ -54,4 +54,42 @@
>>> #define	LINUX_MS_NOEXEC		0x0008
>>> #define	LINUX_MS_REMOUNT	0x0020
>>> 
>>> +/*
>>> + * common open/fcntl flags
>>> + */
>>> +#define	LINUX_O_RDONLY		00000000
>>> +#define	LINUX_O_WRONLY		00000001
>>> +#define	LINUX_O_RDWR		00000002
>>> +#define	LINUX_O_ACCMODE		00000003
>>> +#define	LINUX_O_CREAT		00000100
>>> +#define	LINUX_O_EXCL		00000200
>>> +#define	LINUX_O_NOCTTY		00000400
>>> +#define	LINUX_O_TRUNC		00001000
>>> +#define	LINUX_O_APPEND		00002000
>>> +#define	LINUX_O_NONBLOCK	00004000
>>> +#define	LINUX_O_NDELAY		LINUX_O_NONBLOCK
>>> +#define	LINUX_O_SYNC		00010000
>>> +#define	LINUX_FASYNC		00020000
>>> +#define	LINUX_O_DIRECT		00040000	/* Direct disk access hint */
>>> +#define	LINUX_O_LARGEFILE	00100000
>>> +#define	LINUX_O_DIRECTORY	00200000	/* Must be a directory */
>>> +#define	LINUX_O_NOFOLLOW	00400000	/* Do not follow links */
>>> +#define	LINUX_O_NOATIME		01000000
>>> +#define	LINUX_O_CLOEXEC		02000000
>>> +
>>> +#define	LINUX_F_DUPFD		0
>>> +#define	LINUX_F_GETFD		1
>>> +#define	LINUX_F_SETFD		2
>>> +#define	LINUX_F_GETFL		3
>>> +#define	LINUX_F_SETFL		4
>>> +#define	LINUX_F_GETLK		5
>>> +#define	LINUX_F_SETLK		6
>>> +#define	LINUX_F_SETLKW		7
>>> +#define	LINUX_F_SETOWN		8
>>> +#define	LINUX_F_GETOWN		9
>>> +
>>> +#define	LINUX_F_RDLCK		0
>>> +#define	LINUX_F_WRLCK		1
>>> +#define	LINUX_F_UNLCK		2
>>> +
>>> #endif	/* !_LINUX_FILE_H_ */
>>> 
>>> Modified: user/dchagin/lemul/sys/compat/linux/linux_socket.c
>>> ==============================================================================
>>> --- user/dchagin/lemul/sys/compat/linux/linux_socket.c	Thu May  1 14:01:45 2014	(r265186)
>>> +++ user/dchagin/lemul/sys/compat/linux/linux_socket.c	Thu May  1 14:02:47 2014	(r265187)
>>> @@ -70,6 +70,7 @@ __FBSDID("$FreeBSD$");
>>> #include <machine/../linux/linux.h>
>>> #include <machine/../linux/linux_proto.h>
>>> #endif
>>> +#include <compat/linux/linux_file.h>
>>> #include <compat/linux/linux_socket.h>
>>> #include <compat/linux/linux_util.h>
>>> 
>>> 
>>> Modified: user/dchagin/lemul/sys/i386/linux/linux.h
>>> ==============================================================================
>>> --- user/dchagin/lemul/sys/i386/linux/linux.h	Thu May  1 14:01:45 2014	(r265186)
>>> +++ user/dchagin/lemul/sys/i386/linux/linux.h	Thu May  1 14:02:47 2014	(r265187)
>>> @@ -445,47 +445,12 @@ struct l_rt_sigframe {
>>> extern struct sysentvec linux_sysvec;
>>> 
>>> /*
>>> - * open/fcntl flags
>>> + * arch specific open/fcntl flags
>>> */
>>> -#define	LINUX_O_RDONLY		00000000
>>> -#define	LINUX_O_WRONLY		00000001
>>> -#define	LINUX_O_RDWR		00000002
>>> -#define	LINUX_O_ACCMODE		00000003
>>> -#define	LINUX_O_CREAT		00000100
>>> -#define	LINUX_O_EXCL		00000200
>>> -#define	LINUX_O_NOCTTY		00000400
>>> -#define	LINUX_O_TRUNC		00001000
>>> -#define	LINUX_O_APPEND		00002000
>>> -#define	LINUX_O_NONBLOCK	00004000
>>> -#define	LINUX_O_NDELAY		LINUX_O_NONBLOCK
>>> -#define	LINUX_O_SYNC		00010000
>>> -#define	LINUX_FASYNC		00020000
>>> -#define	LINUX_O_DIRECT		00040000	/* Direct disk access hint */
>>> -#define	LINUX_O_LARGEFILE	00100000
>>> -#define	LINUX_O_DIRECTORY	00200000	/* Must be a directory */
>>> -#define	LINUX_O_NOFOLLOW	00400000	/* Do not follow links */
>>> -#define	LINUX_O_NOATIME		01000000
>>> -#define	LINUX_O_CLOEXEC		02000000
>>> -
>>> -#define	LINUX_F_DUPFD		0
>>> -#define	LINUX_F_GETFD		1
>>> -#define	LINUX_F_SETFD		2
>>> -#define	LINUX_F_GETFL		3
>>> -#define	LINUX_F_SETFL		4
>>> -#define	LINUX_F_GETLK		5
>>> -#define	LINUX_F_SETLK		6
>>> -#define	LINUX_F_SETLKW		7
>>> -#define	LINUX_F_SETOWN		8
>>> -#define	LINUX_F_GETOWN		9
>>> -
>>> #define	LINUX_F_GETLK64		12
>>> #define	LINUX_F_SETLK64		13
>>> #define	LINUX_F_SETLKW64	14
>>> 
>>> -#define	LINUX_F_RDLCK		0
>>> -#define	LINUX_F_WRLCK		1
>>> -#define	LINUX_F_UNLCK		2
>>> -
>>> union l_semun {
>>> 	l_int		val;
>>> 	struct l_semid_ds	*buf;
>>> 
>> 
> 
> -- 
> Have fun!
> chd

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 842 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/svn-src-user/attachments/20140501/c0ae6256/attachment.sig>


More information about the svn-src-user mailing list