linux-user: Sync fcntl.h bits with the kernel

For each target, only define the bits that appear in
arch/target/include/asm/fcntl.h.  Mirror the kernel's
asm-generic layout by handling anything undefined afterward.

Signed-off-by: Richard Henderson <rth@twiddle.net>
This commit is contained in:
Richard Henderson 2012-07-25 14:29:31 -07:00
parent 6e06d515d4
commit 4eeea4f3f1
1 changed files with 92 additions and 102 deletions

View File

@ -2046,135 +2046,125 @@ struct target_statfs64 {
#define TARGET_F_DUPFD_CLOEXEC (TARGET_F_LINUX_SPECIFIC_BASE + 6)
#define TARGET_F_NOTIFY (TARGET_F_LINUX_SPECIFIC_BASE+2)
#if defined (TARGET_ARM)
#define TARGET_O_ACCMODE 0003
#define TARGET_O_RDONLY 00
#define TARGET_O_WRONLY 01
#define TARGET_O_RDWR 02
#define TARGET_O_CREAT 0100 /* not fcntl */
#define TARGET_O_EXCL 0200 /* not fcntl */
#define TARGET_O_NOCTTY 0400 /* not fcntl */
#define TARGET_O_TRUNC 01000 /* not fcntl */
#define TARGET_O_APPEND 02000
#define TARGET_O_NONBLOCK 04000
#define TARGET_O_NDELAY TARGET_O_NONBLOCK
#define TARGET_O_SYNC 010000
#define TARGET_FASYNC 020000 /* fcntl, for BSD compatibility */
#if defined(TARGET_ALPHA)
#define TARGET_O_NONBLOCK 04
#define TARGET_O_APPEND 010
#define TARGET_O_CREAT 01000 /* not fcntl */
#define TARGET_O_TRUNC 02000 /* not fcntl */
#define TARGET_O_EXCL 04000 /* not fcntl */
#define TARGET_O_NOCTTY 010000 /* not fcntl */
#define TARGET_O_DSYNC 040000
#define TARGET_O_LARGEFILE 0 /* not necessary, always 64-bit */
#define TARGET_O_DIRECTORY 0100000 /* must be a directory */
#define TARGET_O_NOFOLLOW 0200000 /* don't follow links */
#define TARGET_O_DIRECT 02000000 /* direct disk access hint */
#define TARGET_O_NOATIME 04000000
#define TARGET_O_CLOEXEC 010000000
#define TARGET___O_SYNC 020000000
#define TARGET_O_PATH 040000000
#elif defined(TARGET_ARM) || defined(TARGET_M68K)
#define TARGET_O_DIRECTORY 040000 /* must be a directory */
#define TARGET_O_NOFOLLOW 0100000 /* don't follow links */
#define TARGET_O_DIRECT 0200000 /* direct disk access hint */
#define TARGET_O_LARGEFILE 0400000
#elif defined(TARGET_MIPS)
#define TARGET_O_APPEND 0x0008
#define TARGET_O_DSYNC 0x0010
#define TARGET_O_NONBLOCK 0x0080
#define TARGET_O_CREAT 0x0100 /* not fcntl */
#define TARGET_O_TRUNC 0x0200 /* not fcntl */
#define TARGET_O_EXCL 0x0400 /* not fcntl */
#define TARGET_O_NOCTTY 0x0800 /* not fcntl */
#define TARGET_FASYNC 0x1000 /* fcntl, for BSD compatibility */
#define TARGET_O_LARGEFILE 0x2000 /* allow large file opens */
#define TARGET___O_SYNC 0x4000
#define TARGET_O_DIRECT 0x8000 /* direct disk access hint */
#elif defined (TARGET_PPC)
#define TARGET_O_ACCMODE 0003
#define TARGET_O_RDONLY 00
#define TARGET_O_WRONLY 01
#define TARGET_O_RDWR 02
#define TARGET_O_CREAT 0100 /* not fcntl */
#define TARGET_O_EXCL 0200 /* not fcntl */
#define TARGET_O_NOCTTY 0400 /* not fcntl */
#define TARGET_O_TRUNC 01000 /* not fcntl */
#define TARGET_O_APPEND 02000
#define TARGET_O_NONBLOCK 04000
#define TARGET_O_NDELAY TARGET_O_NONBLOCK
#define TARGET_O_SYNC 010000
#define TARGET_FASYNC 020000 /* fcntl, for BSD compatibility */
#define TARGET_O_DIRECTORY 040000 /* must be a directory */
#define TARGET_O_NOFOLLOW 0100000 /* don't follow links */
#define TARGET_O_LARGEFILE 0200000
#define TARGET_O_DIRECT 0400000 /* direct disk access hint */
#elif defined (TARGET_MICROBLAZE)
#define TARGET_O_ACCMODE 0003
#define TARGET_O_RDONLY 00
#define TARGET_O_WRONLY 01
#define TARGET_O_RDWR 02
#define TARGET_O_CREAT 0100 /* not fcntl */
#define TARGET_O_EXCL 0200 /* not fcntl */
#define TARGET_O_NOCTTY 0400 /* not fcntl */
#define TARGET_O_TRUNC 01000 /* not fcntl */
#define TARGET_O_APPEND 02000
#define TARGET_O_NONBLOCK 04000
#define TARGET_O_NDELAY TARGET_O_NONBLOCK
#define TARGET_O_SYNC 010000
#define TARGET_FASYNC 020000 /* fcntl, for BSD compatibility */
#define TARGET_O_DIRECTORY 040000 /* must be a directory */
#define TARGET_O_NOFOLLOW 0100000 /* don't follow links */
#define TARGET_O_LARGEFILE 0200000
#define TARGET_O_DIRECT 0400000 /* direct disk access hint */
#elif defined (TARGET_SPARC)
#define TARGET_O_RDONLY 0x0000
#define TARGET_O_WRONLY 0x0001
#define TARGET_O_RDWR 0x0002
#define TARGET_O_ACCMODE 0x0003
#define TARGET_O_APPEND 0x0008
#define TARGET_FASYNC 0x0040 /* fcntl, for BSD compatibility */
#define TARGET_O_CREAT 0x0200 /* not fcntl */
#define TARGET_O_TRUNC 0x0400 /* not fcntl */
#define TARGET_O_EXCL 0x0800 /* not fcntl */
#define TARGET_O_SYNC 0x2000
#define TARGET_O_NONBLOCK 0x4000
#define TARGET_O_NDELAY (0x0004 | TARGET_O_NONBLOCK)
#define TARGET_O_NOCTTY 0x8000 /* not fcntl */
#define TARGET_O_DIRECTORY 0x10000 /* must be a directory */
#define TARGET_O_NOFOLLOW 0x20000 /* don't follow links */
#define TARGET_O_APPEND 0x0008
#define TARGET_FASYNC 0x0040 /* fcntl, for BSD compatibility */
#define TARGET_O_CREAT 0x0200 /* not fcntl */
#define TARGET_O_TRUNC 0x0400 /* not fcntl */
#define TARGET_O_EXCL 0x0800 /* not fcntl */
#define TARGET_O_DSYNC 0x2000
#define TARGET_O_NONBLOCK 0x4000
# ifdef TARGET_SPARC64
# define TARGET_O_NDELAY 0x0004
# else
# define TARGET_O_NDELAY (0x0004 | TARGET_O_NONBLOCK)
# endif
#define TARGET_O_NOCTTY 0x8000 /* not fcntl */
#define TARGET_O_LARGEFILE 0x40000
#define TARGET_O_DIRECT 0x100000 /* direct disk access hint */
#elif defined(TARGET_MIPS)
#define TARGET_O_ACCMODE 0x0003
#define TARGET_O_RDONLY 0x0000
#define TARGET_O_WRONLY 0x0001
#define TARGET_O_RDWR 0x0002
#define TARGET_O_APPEND 0x0008
#define TARGET_O_SYNC 0x0010
#define TARGET_O_NONBLOCK 0x0080
#define TARGET_O_CREAT 0x0100 /* not fcntl */
#define TARGET_O_TRUNC 0x0200 /* not fcntl */
#define TARGET_O_EXCL 0x0400 /* not fcntl */
#define TARGET_O_NOCTTY 0x0800 /* not fcntl */
#define TARGET_FASYNC 0x1000 /* fcntl, for BSD compatibility */
#define TARGET_O_LARGEFILE 0x2000 /* allow large file opens */
#define TARGET_O_DIRECT 0x8000 /* direct disk access hint */
#define TARGET_O_DIRECTORY 0x10000 /* must be a directory */
#define TARGET_O_NOFOLLOW 0x20000 /* don't follow links */
#define TARGET_O_NOATIME 0x40000
#define TARGET_O_NDELAY TARGET_O_NONBLOCK
#elif defined(TARGET_ALPHA)
#define TARGET_O_ACCMODE 0x0003
#define TARGET_O_RDONLY 0x0000
#define TARGET_O_WRONLY 0x0001
#define TARGET_O_RDWR 0x0002
#define TARGET_O_APPEND 0x0008
#define TARGET_O_SYNC 0x4000
#define TARGET_O_NONBLOCK 0x0004
#define TARGET_O_CREAT 0x0200 /* not fcntl */
#define TARGET_O_TRUNC 0x0400 /* not fcntl */
#define TARGET_O_EXCL 0x0800 /* not fcntl */
#define TARGET_O_NOCTTY 0x1000 /* not fcntl */
#define TARGET_FASYNC 0x2000 /* fcntl, for BSD compatibility */
#define TARGET_O_LARGEFILE 0x0000 /* not necessary, always 64-bit */
#define TARGET_O_DIRECT 0x80000 /* direct disk access hint */
#define TARGET_O_DIRECTORY 0x8000 /* must be a directory */
#define TARGET_O_NOFOLLOW 0x10000 /* don't follow links */
#define TARGET_O_NOATIME 0x100000
#define TARGET_O_NDELAY TARGET_O_NONBLOCK
#else
#define TARGET_O_DIRECT 0x100000 /* direct disk access hint */
#define TARGET_O_NOATIME 0x200000
#define TARGET_O_CLOEXEC 0x400000
#define TARGET___O_SYNC 0x800000
#define TARGET_O_PATH 0x1000000
#endif
/* <asm-generic/fcntl.h> values follow. */
#define TARGET_O_ACCMODE 0003
#define TARGET_O_RDONLY 00
#define TARGET_O_WRONLY 01
#define TARGET_O_RDWR 02
#ifndef TARGET_O_CREAT
#define TARGET_O_CREAT 0100 /* not fcntl */
#endif
#ifndef TARGET_O_EXCL
#define TARGET_O_EXCL 0200 /* not fcntl */
#endif
#ifndef TARGET_O_NOCTTY
#define TARGET_O_NOCTTY 0400 /* not fcntl */
#endif
#ifndef TARGET_O_TRUNC
#define TARGET_O_TRUNC 01000 /* not fcntl */
#endif
#ifndef TARGET_O_APPEND
#define TARGET_O_APPEND 02000
#endif
#ifndef TARGET_O_NONBLOCK
#define TARGET_O_NONBLOCK 04000
#define TARGET_O_NDELAY TARGET_O_NONBLOCK
#define TARGET_O_SYNC 010000
#endif
#ifndef TARGET_O_DSYNC
#define TARGET_O_DSYNC 010000
#endif
#ifndef TARGET_FASYNC
#define TARGET_FASYNC 020000 /* fcntl, for BSD compatibility */
#endif
#ifndef TARGET_O_DIRECT
#define TARGET_O_DIRECT 040000 /* direct disk access hint */
#endif
#ifndef TARGET_O_LARGEFILE
#define TARGET_O_LARGEFILE 0100000
#endif
#ifndef TARGET_O_DIRECTORY
#define TARGET_O_DIRECTORY 0200000 /* must be a directory */
#endif
#ifndef TARGET_O_NOFOLLOW
#define TARGET_O_NOFOLLOW 0400000 /* don't follow links */
#endif
#ifndef TARGET_O_NOATIME
#define TARGET_O_NOATIME 01000000
#endif
#ifndef TARGET_O_CLOEXEC
#define TARGET_O_CLOEXEC 02000000
#endif
#ifndef TARGET___O_SYNC
#define TARGET___O_SYNC 04000000
#endif
#ifndef TARGET_O_PATH
#define TARGET_O_PATH 010000000
#endif
#ifndef TARGET_O_NDELAY
#define TARGET_O_NDELAY TARGET_O_NONBLOCK
#endif
#ifndef TARGET_O_SYNC
#define TARGET_O_SYNC (TARGET___O_SYNC | TARGET_O_DSYNC)
#endif
struct target_flock {
short l_type;