mirror of https://github.com/xemu-project/xemu.git
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:
parent
6e06d515d4
commit
4eeea4f3f1
linux-user
|
@ -2046,85 +2046,30 @@ struct target_statfs64 {
|
||||||
#define TARGET_F_DUPFD_CLOEXEC (TARGET_F_LINUX_SPECIFIC_BASE + 6)
|
#define TARGET_F_DUPFD_CLOEXEC (TARGET_F_LINUX_SPECIFIC_BASE + 6)
|
||||||
#define TARGET_F_NOTIFY (TARGET_F_LINUX_SPECIFIC_BASE+2)
|
#define TARGET_F_NOTIFY (TARGET_F_LINUX_SPECIFIC_BASE+2)
|
||||||
|
|
||||||
#if defined (TARGET_ARM)
|
#if defined(TARGET_ALPHA)
|
||||||
#define TARGET_O_ACCMODE 0003
|
#define TARGET_O_NONBLOCK 04
|
||||||
#define TARGET_O_RDONLY 00
|
#define TARGET_O_APPEND 010
|
||||||
#define TARGET_O_WRONLY 01
|
#define TARGET_O_CREAT 01000 /* not fcntl */
|
||||||
#define TARGET_O_RDWR 02
|
#define TARGET_O_TRUNC 02000 /* not fcntl */
|
||||||
#define TARGET_O_CREAT 0100 /* not fcntl */
|
#define TARGET_O_EXCL 04000 /* not fcntl */
|
||||||
#define TARGET_O_EXCL 0200 /* not fcntl */
|
#define TARGET_O_NOCTTY 010000 /* not fcntl */
|
||||||
#define TARGET_O_NOCTTY 0400 /* not fcntl */
|
#define TARGET_O_DSYNC 040000
|
||||||
#define TARGET_O_TRUNC 01000 /* not fcntl */
|
#define TARGET_O_LARGEFILE 0 /* not necessary, always 64-bit */
|
||||||
#define TARGET_O_APPEND 02000
|
#define TARGET_O_DIRECTORY 0100000 /* must be a directory */
|
||||||
#define TARGET_O_NONBLOCK 04000
|
#define TARGET_O_NOFOLLOW 0200000 /* don't follow links */
|
||||||
#define TARGET_O_NDELAY TARGET_O_NONBLOCK
|
#define TARGET_O_DIRECT 02000000 /* direct disk access hint */
|
||||||
#define TARGET_O_SYNC 010000
|
#define TARGET_O_NOATIME 04000000
|
||||||
#define TARGET_FASYNC 020000 /* fcntl, for BSD compatibility */
|
#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_DIRECTORY 040000 /* must be a directory */
|
||||||
#define TARGET_O_NOFOLLOW 0100000 /* don't follow links */
|
#define TARGET_O_NOFOLLOW 0100000 /* don't follow links */
|
||||||
#define TARGET_O_DIRECT 0200000 /* direct disk access hint */
|
#define TARGET_O_DIRECT 0200000 /* direct disk access hint */
|
||||||
#define TARGET_O_LARGEFILE 0400000
|
#define TARGET_O_LARGEFILE 0400000
|
||||||
#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_LARGEFILE 0x40000
|
|
||||||
#define TARGET_O_DIRECT 0x100000 /* direct disk access hint */
|
|
||||||
#elif defined(TARGET_MIPS)
|
#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_APPEND 0x0008
|
||||||
#define TARGET_O_SYNC 0x0010
|
#define TARGET_O_DSYNC 0x0010
|
||||||
#define TARGET_O_NONBLOCK 0x0080
|
#define TARGET_O_NONBLOCK 0x0080
|
||||||
#define TARGET_O_CREAT 0x0100 /* not fcntl */
|
#define TARGET_O_CREAT 0x0100 /* not fcntl */
|
||||||
#define TARGET_O_TRUNC 0x0200 /* not fcntl */
|
#define TARGET_O_TRUNC 0x0200 /* not fcntl */
|
||||||
|
@ -2132,49 +2077,94 @@ struct target_statfs64 {
|
||||||
#define TARGET_O_NOCTTY 0x0800 /* not fcntl */
|
#define TARGET_O_NOCTTY 0x0800 /* not fcntl */
|
||||||
#define TARGET_FASYNC 0x1000 /* fcntl, for BSD compatibility */
|
#define TARGET_FASYNC 0x1000 /* fcntl, for BSD compatibility */
|
||||||
#define TARGET_O_LARGEFILE 0x2000 /* allow large file opens */
|
#define TARGET_O_LARGEFILE 0x2000 /* allow large file opens */
|
||||||
|
#define TARGET___O_SYNC 0x4000
|
||||||
#define TARGET_O_DIRECT 0x8000 /* direct disk access hint */
|
#define TARGET_O_DIRECT 0x8000 /* direct disk access hint */
|
||||||
#define TARGET_O_DIRECTORY 0x10000 /* must be a directory */
|
#elif defined (TARGET_PPC)
|
||||||
#define TARGET_O_NOFOLLOW 0x20000 /* don't follow links */
|
#define TARGET_O_DIRECTORY 040000 /* must be a directory */
|
||||||
#define TARGET_O_NOATIME 0x40000
|
#define TARGET_O_NOFOLLOW 0100000 /* don't follow links */
|
||||||
#define TARGET_O_NDELAY TARGET_O_NONBLOCK
|
#define TARGET_O_LARGEFILE 0200000
|
||||||
#elif defined(TARGET_ALPHA)
|
#define TARGET_O_DIRECT 0400000 /* direct disk access hint */
|
||||||
#define TARGET_O_ACCMODE 0x0003
|
#elif defined (TARGET_SPARC)
|
||||||
#define TARGET_O_RDONLY 0x0000
|
|
||||||
#define TARGET_O_WRONLY 0x0001
|
|
||||||
#define TARGET_O_RDWR 0x0002
|
|
||||||
#define TARGET_O_APPEND 0x0008
|
#define TARGET_O_APPEND 0x0008
|
||||||
#define TARGET_O_SYNC 0x4000
|
#define TARGET_FASYNC 0x0040 /* fcntl, for BSD compatibility */
|
||||||
#define TARGET_O_NONBLOCK 0x0004
|
|
||||||
#define TARGET_O_CREAT 0x0200 /* not fcntl */
|
#define TARGET_O_CREAT 0x0200 /* not fcntl */
|
||||||
#define TARGET_O_TRUNC 0x0400 /* not fcntl */
|
#define TARGET_O_TRUNC 0x0400 /* not fcntl */
|
||||||
#define TARGET_O_EXCL 0x0800 /* not fcntl */
|
#define TARGET_O_EXCL 0x0800 /* not fcntl */
|
||||||
#define TARGET_O_NOCTTY 0x1000 /* not fcntl */
|
#define TARGET_O_DSYNC 0x2000
|
||||||
#define TARGET_FASYNC 0x2000 /* fcntl, for BSD compatibility */
|
#define TARGET_O_NONBLOCK 0x4000
|
||||||
#define TARGET_O_LARGEFILE 0x0000 /* not necessary, always 64-bit */
|
# ifdef TARGET_SPARC64
|
||||||
#define TARGET_O_DIRECT 0x80000 /* direct disk access hint */
|
# define TARGET_O_NDELAY 0x0004
|
||||||
#define TARGET_O_DIRECTORY 0x8000 /* must be a directory */
|
# else
|
||||||
#define TARGET_O_NOFOLLOW 0x10000 /* don't follow links */
|
# define TARGET_O_NDELAY (0x0004 | TARGET_O_NONBLOCK)
|
||||||
#define TARGET_O_NOATIME 0x100000
|
# endif
|
||||||
#define TARGET_O_NDELAY TARGET_O_NONBLOCK
|
#define TARGET_O_NOCTTY 0x8000 /* not fcntl */
|
||||||
#else
|
#define TARGET_O_LARGEFILE 0x40000
|
||||||
|
#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_ACCMODE 0003
|
||||||
#define TARGET_O_RDONLY 00
|
#define TARGET_O_RDONLY 00
|
||||||
#define TARGET_O_WRONLY 01
|
#define TARGET_O_WRONLY 01
|
||||||
#define TARGET_O_RDWR 02
|
#define TARGET_O_RDWR 02
|
||||||
|
#ifndef TARGET_O_CREAT
|
||||||
#define TARGET_O_CREAT 0100 /* not fcntl */
|
#define TARGET_O_CREAT 0100 /* not fcntl */
|
||||||
|
#endif
|
||||||
|
#ifndef TARGET_O_EXCL
|
||||||
#define TARGET_O_EXCL 0200 /* not fcntl */
|
#define TARGET_O_EXCL 0200 /* not fcntl */
|
||||||
|
#endif
|
||||||
|
#ifndef TARGET_O_NOCTTY
|
||||||
#define TARGET_O_NOCTTY 0400 /* not fcntl */
|
#define TARGET_O_NOCTTY 0400 /* not fcntl */
|
||||||
|
#endif
|
||||||
|
#ifndef TARGET_O_TRUNC
|
||||||
#define TARGET_O_TRUNC 01000 /* not fcntl */
|
#define TARGET_O_TRUNC 01000 /* not fcntl */
|
||||||
|
#endif
|
||||||
|
#ifndef TARGET_O_APPEND
|
||||||
#define TARGET_O_APPEND 02000
|
#define TARGET_O_APPEND 02000
|
||||||
|
#endif
|
||||||
|
#ifndef TARGET_O_NONBLOCK
|
||||||
#define TARGET_O_NONBLOCK 04000
|
#define TARGET_O_NONBLOCK 04000
|
||||||
#define TARGET_O_NDELAY TARGET_O_NONBLOCK
|
#endif
|
||||||
#define TARGET_O_SYNC 010000
|
#ifndef TARGET_O_DSYNC
|
||||||
|
#define TARGET_O_DSYNC 010000
|
||||||
|
#endif
|
||||||
|
#ifndef TARGET_FASYNC
|
||||||
#define TARGET_FASYNC 020000 /* fcntl, for BSD compatibility */
|
#define TARGET_FASYNC 020000 /* fcntl, for BSD compatibility */
|
||||||
|
#endif
|
||||||
|
#ifndef TARGET_O_DIRECT
|
||||||
#define TARGET_O_DIRECT 040000 /* direct disk access hint */
|
#define TARGET_O_DIRECT 040000 /* direct disk access hint */
|
||||||
|
#endif
|
||||||
|
#ifndef TARGET_O_LARGEFILE
|
||||||
#define TARGET_O_LARGEFILE 0100000
|
#define TARGET_O_LARGEFILE 0100000
|
||||||
|
#endif
|
||||||
|
#ifndef TARGET_O_DIRECTORY
|
||||||
#define TARGET_O_DIRECTORY 0200000 /* must be a directory */
|
#define TARGET_O_DIRECTORY 0200000 /* must be a directory */
|
||||||
|
#endif
|
||||||
|
#ifndef TARGET_O_NOFOLLOW
|
||||||
#define TARGET_O_NOFOLLOW 0400000 /* don't follow links */
|
#define TARGET_O_NOFOLLOW 0400000 /* don't follow links */
|
||||||
#endif
|
#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 {
|
struct target_flock {
|
||||||
short l_type;
|
short l_type;
|
||||||
|
|
Loading…
Reference in New Issue