2014-01-07 21:43:34 +00:00
|
|
|
#define O_CREAT 0100
|
|
|
|
#define O_EXCL 0200
|
|
|
|
#define O_NOCTTY 0400
|
|
|
|
#define O_TRUNC 01000
|
|
|
|
#define O_APPEND 02000
|
|
|
|
#define O_NONBLOCK 04000
|
|
|
|
#define O_DSYNC 010000
|
|
|
|
#define O_SYNC 04010000
|
|
|
|
#define O_RSYNC 04010000
|
|
|
|
#define O_DIRECTORY 0200000
|
|
|
|
#define O_NOFOLLOW 0400000
|
|
|
|
#define O_CLOEXEC 02000000
|
|
|
|
|
|
|
|
#define O_ASYNC 020000
|
|
|
|
#define O_DIRECT 040000
|
fix missing O_LARGEFILE values on x86_64, x32, and mips64
prior to commit 685e40bb09f5f24a2af54ea09c97328808f76990, x86_64 was
correctly passing O_LARGEFILE to SYS_open; it was removed (defined to
0 in the public header, and changed to use the public definition) as
part of that change, probably out of a mistaken belief that it's not
needed.
however, on a mixed system with 32-bit and 64-bit binaries, it's
important that all files be opened with O_LARGEFILE, even if the
opening process is 64-bit, in case a descriptor is passed to a 32-bit
process. otherwise, attempts to access past 2GB in the 32-bit process
could produce EOVERFLOW.
most 64-bit archs added later got this right alread, except for
mips64. x32 was also affected. there are now fixed.
2020-09-03 21:37:11 +00:00
|
|
|
#define O_LARGEFILE 0100000
|
2014-01-07 21:43:34 +00:00
|
|
|
#define O_NOATIME 01000000
|
2015-04-01 23:31:06 +00:00
|
|
|
#define O_PATH 010000000
|
2014-01-07 21:43:34 +00:00
|
|
|
#define O_TMPFILE 020200000
|
|
|
|
#define O_NDELAY O_NONBLOCK
|
|
|
|
|
|
|
|
#define F_DUPFD 0
|
|
|
|
#define F_GETFD 1
|
|
|
|
#define F_SETFD 2
|
|
|
|
#define F_GETFL 3
|
|
|
|
#define F_SETFL 4
|
|
|
|
|
|
|
|
#define F_SETOWN 8
|
|
|
|
#define F_GETOWN 9
|
|
|
|
#define F_SETSIG 10
|
|
|
|
#define F_GETSIG 11
|
|
|
|
|
|
|
|
#define F_GETLK 5
|
|
|
|
#define F_SETLK 6
|
|
|
|
#define F_SETLKW 7
|
|
|
|
|
|
|
|
#define F_SETOWN_EX 15
|
|
|
|
#define F_GETOWN_EX 16
|
|
|
|
|
|
|
|
#define F_GETOWNER_UIDS 17
|