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