#define O_TRUNC 01000
#define O_APPEND 02000
#define O_NONBLOCK 04000
-#define O_SYNC 010000
+#define O_DSYNC 010000
+#define O_SYNC 04010000
+#define O_RSYNC 04010000
#define O_DIRECTORY 0200000
#define O_NOFOLLOW 0400000
#define O_CLOEXEC 02000000
-/* Extensions, but in the reserved namespace, so OK */
#define O_ASYNC 020000
#define O_DIRECT 040000
#define O_LARGEFILE 0100000
#define O_NOATIME 01000000
#define O_NDELAY O_NONBLOCK
-#define F_DUPFD_CLOEXEC 1030
-
-#ifdef _GNU_SOURCE
-#define FAPPEND O_APPEND
-#define FFSYNC O_FSYNC
-#define FASYNC O_ASYNC
-#define FNONBLOCK O_NONBLOCK
-#define FNDELAY O_NDELAY
-#endif
#define F_DUPFD 0
#define F_GETFD 1
#define F_GETLK 12
#define F_SETLK 13
#define F_SETLKW 14
+
+#define F_DUPFD_CLOEXEC 1030
#define O_TRUNC 01000
#define O_APPEND 02000
#define O_NONBLOCK 04000
-#define O_SYNC 010000
+#define O_DSYNC 010000
+#define O_SYNC 04010000
+#define O_RSYNC 04010000
#define O_DIRECTORY 0200000
#define O_NOFOLLOW 0400000
#define O_CLOEXEC 02000000
-/* Extensions, but in the reserved namespace, so OK */
#define O_ASYNC 020000
#define O_DIRECT 040000
#define O_LARGEFILE 0
#define O_NOATIME 01000000
#define O_NDELAY O_NONBLOCK
-#define F_DUPFD_CLOEXEC 1030
-
-#ifdef _GNU_SOURCE
-#define FAPPEND O_APPEND
-#define FFSYNC O_FSYNC
-#define FASYNC O_ASYNC
-#define FNONBLOCK O_NONBLOCK
-#define FNDELAY O_NDELAY
-#endif
#define F_DUPFD 0
#define F_GETFD 1
#define F_GETLK 5
#define F_SETLK 6
#define F_SETLKW 7
+
+#define F_DUPFD_CLOEXEC 1030
#define S_IRWXO 0007
#endif
+#ifdef _GNU_SOURCE
+#define FAPPEND O_APPEND
+#define FFSYNC O_FSYNC
+#define FASYNC O_ASYNC
+#define FNONBLOCK O_NONBLOCK
+#define FNDELAY O_NDELAY
+#endif
+
#ifdef __cplusplus
}
#endif