[v2] Make some standard open() flags visible

Message ID 20190218130634.11603-1-sebastian.huber@embedded-brains.de
State New
Headers show
Series
  • [v2] Make some standard open() flags visible
Related show

Commit Message

Sebastian Huber Feb. 18, 2019, 1:06 p.m.
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 <sebastian.huber@embedded-brains.de>

---
 newlib/libc/include/sys/_default_fcntl.h | 48 ++++++++++++++++++--------------
 1 file changed, 27 insertions(+), 21 deletions(-)

-- 
2.16.4

Comments

Sebastian Huber Feb. 18, 2019, 1:08 p.m. | #1
On 18/02/2019 14:06, Sebastian Huber wrote:
> 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<sebastian.huber@embedded-brains.de>

> ---

>   newlib/libc/include/sys/_default_fcntl.h | 48 ++++++++++++++++++--------------

>   1 file changed, 27 insertions(+), 21 deletions(-)


Sorry, this was a left over patch file. It is already included in Newlib.

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber@embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
Corinna Vinschen Feb. 18, 2019, 2:22 p.m. | #2
On Feb 18 14:06, Sebastian Huber wrote:
> 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 <sebastian.huber@embedded-brains.de>

> ---

>  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


This patch looks a bit... outdated?


Corinna

-- 
Corinna Vinschen
Cygwin Maintainer
Red Hat
Corinna Vinschen Feb. 18, 2019, 2:26 p.m. | #3
On Feb 18 15:22, Corinna Vinschen wrote:
> On Feb 18 14:06, Sebastian Huber wrote:

> > 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 <sebastian.huber@embedded-brains.de>

> > ---

> >  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

> 

> This patch looks a bit... outdated?


I missed to read the whole thread before replying, sorry.

The other patches look ok, please push.


Thanks,
Corinna

-- 
Corinna Vinschen
Cygwin Maintainer
Red Hat

Patch

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