Add Linux 4.13 constants to bits/fcntl-linux.h

Message ID alpine.DEB.2.20.1709072105390.32296@digraph.polyomino.org.uk
State New, archived
Headers

Commit Message

Joseph Myers Sept. 7, 2017, 9:06 p.m. UTC
  This patch, relative to a tree with
<https://sourceware.org/ml/libc-alpha/2017-09/msg00266.html> (pending
review) applied (but with only trivial dependence on that patch by
virtue of changing adjacent code), adds new interfaces (F_GET_RW_HINT
etc., and associated RW[FH]_WRITE_LIFE_*) from Linux 4.13 to
bits/fcntl-linux.h (conditional on __USE_GNU).

Tested for x86_64.

2017-09-07  Joseph Myers  <joseph@codesourcery.com>

	* sysdeps/unix/sysv/linux/bits/fcntl-linux.h [__USE_GNU]
	(F_GET_RW_HINT): New macro.
	[__USE_GNU] (F_SET_RW_HINT): Likewise.
	[__USE_GNU] (F_GET_FILE_RW_HINT): Likewise.
	[__USE_GNU] (F_SET_FILE_RW_HINT): Likewise.
	[__USE_GNU] (RWF_WRITE_LIFE_NOT_SET): Likewise.
	[__USE_GNU] (RWH_WRITE_LIFE_NONE): Likewise.
	[__USE_GNU] (RWH_WRITE_LIFE_SHORT): Likewise.
	[__USE_GNU] (RWH_WRITE_LIFE_MEDIUM): Likewise.
	[__USE_GNU] (RWH_WRITE_LIFE_LONG): Likewise.
	[__USE_GNU] (RWH_WRITE_LIFE_EXTREME): Likewise.
  

Comments

Dmitry V. Levin Sept. 8, 2017, 11:45 a.m. UTC | #1
On Thu, Sep 07, 2017 at 09:06:18PM +0000, Joseph Myers wrote:
> This patch, relative to a tree with
> <https://sourceware.org/ml/libc-alpha/2017-09/msg00266.html> (pending
> review) applied (but with only trivial dependence on that patch by
> virtue of changing adjacent code), adds new interfaces (F_GET_RW_HINT
> etc., and associated RW[FH]_WRITE_LIFE_*) from Linux 4.13 to
> bits/fcntl-linux.h (conditional on __USE_GNU).
> 
> Tested for x86_64.
> 
> 2017-09-07  Joseph Myers  <joseph@codesourcery.com>
> 
> 	* sysdeps/unix/sysv/linux/bits/fcntl-linux.h [__USE_GNU]
> 	(F_GET_RW_HINT): New macro.
> 	[__USE_GNU] (F_SET_RW_HINT): Likewise.
> 	[__USE_GNU] (F_GET_FILE_RW_HINT): Likewise.
> 	[__USE_GNU] (F_SET_FILE_RW_HINT): Likewise.
> 	[__USE_GNU] (RWF_WRITE_LIFE_NOT_SET): Likewise.
> 	[__USE_GNU] (RWH_WRITE_LIFE_NONE): Likewise.
> 	[__USE_GNU] (RWH_WRITE_LIFE_SHORT): Likewise.
> 	[__USE_GNU] (RWH_WRITE_LIFE_MEDIUM): Likewise.
> 	[__USE_GNU] (RWH_WRITE_LIFE_LONG): Likewise.
> 	[__USE_GNU] (RWH_WRITE_LIFE_EXTREME): Likewise.
> 
> diff --git a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
> index fc65fc2..0c1a303 100644
> --- a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
> +++ b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
> @@ -204,6 +204,11 @@
>  # define F_GETPIPE_SZ	1032	/* Set pipe page size array.  */
>  # define F_ADD_SEALS	1033	/* Add seals to file.  */
>  # define F_GET_SEALS	1034	/* Get seals for file.  */
> +/* Set / get write life time hints.  */
> +# define F_GET_RW_HINT	1035
> +# define F_SET_RW_HINT	1036
> +# define F_GET_FILE_RW_HINT	1037
> +# define F_SET_FILE_RW_HINT	1038
>  #endif
>  #ifdef __USE_XOPEN2K8
>  # define F_DUPFD_CLOEXEC 1030	/* Duplicate file descriptor with
> @@ -281,6 +286,16 @@ struct f_owner_ex
>  # define F_SEAL_WRITE	0x0008	/* Prevent writes.  */
>  #endif
>  
> +#ifdef __USE_GNU
> +/* Hint values for F_{GET,SET}_RW_HINT.  */
> +# define RWF_WRITE_LIFE_NOT_SET	0
> +# define RWH_WRITE_LIFE_NONE	1
> +# define RWH_WRITE_LIFE_SHORT	2
> +# define RWH_WRITE_LIFE_MEDIUM	3
> +# define RWH_WRITE_LIFE_LONG	4
> +# define RWH_WRITE_LIFE_EXTREME	5
> +#endif
> +

I bet these RWF/RWH names are going to be a source of confusion.  Said
that, if they are not going to be renamed in linux headers in the nearest
future, then the patch is OK.
  

Patch

diff --git a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
index fc65fc2..0c1a303 100644
--- a/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
+++ b/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
@@ -204,6 +204,11 @@ 
 # define F_GETPIPE_SZ	1032	/* Set pipe page size array.  */
 # define F_ADD_SEALS	1033	/* Add seals to file.  */
 # define F_GET_SEALS	1034	/* Get seals for file.  */
+/* Set / get write life time hints.  */
+# define F_GET_RW_HINT	1035
+# define F_SET_RW_HINT	1036
+# define F_GET_FILE_RW_HINT	1037
+# define F_SET_FILE_RW_HINT	1038
 #endif
 #ifdef __USE_XOPEN2K8
 # define F_DUPFD_CLOEXEC 1030	/* Duplicate file descriptor with
@@ -281,6 +286,16 @@  struct f_owner_ex
 # define F_SEAL_WRITE	0x0008	/* Prevent writes.  */
 #endif
 
+#ifdef __USE_GNU
+/* Hint values for F_{GET,SET}_RW_HINT.  */
+# define RWF_WRITE_LIFE_NOT_SET	0
+# define RWH_WRITE_LIFE_NONE	1
+# define RWH_WRITE_LIFE_SHORT	2
+# define RWH_WRITE_LIFE_MEDIUM	3
+# define RWH_WRITE_LIFE_LONG	4
+# define RWH_WRITE_LIFE_EXTREME	5
+#endif
+
 /* Define some more compatibility macros to be backward compatible with
    BSD systems which did not managed to hide these kernel macros.  */
 #ifdef	__USE_MISC