[PATCH v2] Make some standard open() flags visible

Sebastian Huber <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
Make the POSIX O_CLOEXEC, O_NOFOLLOW, O_DIRECTORY, O_EXEC, and O_SEARCH
open() flags available also to non-Cygwin systems.

Make the BSD/glibc O_DIRECT open() flag  available also to non-Cygwin
systems.

Signed-off-by: Sebastian Huber <[email protected]>
---
 newlib/libc/include/sys/_default_fcntl.h | 48 ++++++++++++++++++--------------
 1 file changed, 27 insertions(+), 21 deletions(-)

diff --git a/newlib/libc/include/sys/_default_fcntl.h b/newlib/libc/include/sys/_default_fcntl.h
index 33b462285..22fa10688 100644
--- a/newlib/libc/include/sys/_default_fcntl.h
+++ b/newlib/libc/include/sys/_default_fcntl.h
@@ -23,6 +23,19 @@ extern "C" {
 #define	_FNONBLOCK	0x4000	/* non blocking I/O (POSIX style) */
 #define	_FNDELAY	_FNONBLOCK	/* non blocking I/O (4.2 style) */
 #define	_FNOCTTY	0x8000	/* don't assign a ctty on this open */
+#if defined (__CYGWIN__)
+#define	_FBINARY	0x10000
+#define	_FTEXT		0x20000
+#endif
+#define	_FNOINHERIT	0x40000
+#define	_FDIRECT	0x80000
+#define	_FNOFOLLOW	0x100000
+#define	_FDIRECTORY	0x200000
+#define	_FEXECSRCH	0x400000
+#if defined (__CYGWIN__)
+#define	_FTMPFILE	0x800000
+#define	_FNOATIME	0x1000000
+#endif
 
 #define	O_ACCMODE	(O_RDONLY|O_WRONLY|O_RDWR)
 
@@ -43,35 +56,28 @@ extern "C" {
 /*	O_NDELAY	_FNBIO 		set in include/fcntl.h */
 #define	O_NONBLOCK	_FNONBLOCK
 #define	O_NOCTTY	_FNOCTTY
-/* For machines which care - */
-#if defined (__CYGWIN__)
-#define _FBINARY        0x10000
-#define _FTEXT          0x20000
-#define _FNOINHERIT	0x40000
-#define _FDIRECT        0x80000
-#define _FNOFOLLOW      0x100000
-#define _FDIRECTORY     0x200000
-#define _FEXECSRCH      0x400000
-#define _FTMPFILE       0x800000
-#define _FNOATIME       0x1000000
 
+/* POSIX-1.2008 specific flags */
+#if __POSIX_VISIBLE >= 200809
+#define	O_CLOEXEC	_FNOINHERIT
+#define	O_NOFOLLOW	_FNOFOLLOW
+#define	O_DIRECTORY	_FDIRECTORY
+#define	O_EXEC		_FEXECSRCH
+#define	O_SEARCH	_FEXECSRCH
+#endif
+
+#if __BSD_VISIBLE
+#define	O_DIRECT	_FDIRECT
+#endif
+
+#if defined (__CYGWIN__)
 #define O_BINARY	_FBINARY
 #define O_TEXT		_FTEXT
 #define O_DSYNC         _FSYNC
 #define O_RSYNC         _FSYNC
-#define O_EXEC          _FEXECSRCH
-#define O_SEARCH        _FEXECSRCH
-
-/* POSIX-1.2008 specific flags */
-#if __POSIX_VISIBLE >= 200809
-#define O_CLOEXEC	_FNOINHERIT
-#define O_NOFOLLOW      _FNOFOLLOW
-#define O_DIRECTORY     _FDIRECTORY
-#endif
 
 /* Linux-specific flags */
 #if __GNU_VISIBLE
-#define O_DIRECT        _FDIRECT
 #define O_TMPFILE	_FTMPFILE
 #define O_NOATIME	_FNOATIME
 #endif
-- 
2.16.4
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.