[PATCH] timerfd: expose uapi header

Subsystems: posix clocks and timers, the rest

STALE3991d

5 messages, 4 authors, 2015-10-05 · open the first message on its own page

[PATCH] timerfd: expose uapi header

From: Gabriel Laskar <hidden>
Date: 2015-10-05 14:53:59

this patch expose the timerfd apis to the userland. It is already in
glibc header sys/timerfd.h but not synchronised, and missing the ioctl
number definition.

Signed-off-by: Gabriel Laskar <redacted>
---
 include/linux/timerfd.h      | 20 +-------------------
 include/uapi/linux/Kbuild    |  1 +
 include/uapi/linux/timerfd.h | 31 +++++++++++++++++++++++++++++++
 3 files changed, 33 insertions(+), 19 deletions(-)
 create mode 100644 include/uapi/linux/timerfd.h
diff --git a/include/linux/timerfd.h b/include/linux/timerfd.h
index bd36ce4..bab0b1a 100644
--- a/include/linux/timerfd.h
+++ b/include/linux/timerfd.h
@@ -8,23 +8,7 @@
 #ifndef _LINUX_TIMERFD_H
 #define _LINUX_TIMERFD_H
 
-/* For O_CLOEXEC and O_NONBLOCK */
-#include <linux/fcntl.h>
-
-/* For _IO helpers */
-#include <linux/ioctl.h>
-
-/*
- * CAREFUL: Check include/asm-generic/fcntl.h when defining
- * new flags, since they might collide with O_* ones. We want
- * to re-use O_* flags that couldn't possibly have a meaning
- * from eventfd, in order to leave a free define-space for
- * shared O_* flags.
- */
-#define TFD_TIMER_ABSTIME (1 << 0)
-#define TFD_TIMER_CANCEL_ON_SET (1 << 1)
-#define TFD_CLOEXEC O_CLOEXEC
-#define TFD_NONBLOCK O_NONBLOCK
+#include <uapi/linux/timerfd.h>
 
 #define TFD_SHARED_FCNTL_FLAGS (TFD_CLOEXEC | TFD_NONBLOCK)
 /* Flags for timerfd_create.  */
@@ -32,6 +16,4 @@
 /* Flags for timerfd_settime.  */
 #define TFD_SETTIME_FLAGS (TFD_TIMER_ABSTIME | TFD_TIMER_CANCEL_ON_SET)
 
-#define TFD_IOC_SET_TICKS	_IOW('T', 0, u64)
-
 #endif /* _LINUX_TIMERFD_H */
diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild
index f7b2db4..874ac3f 100644
--- a/include/uapi/linux/Kbuild
+++ b/include/uapi/linux/Kbuild
@@ -395,6 +395,7 @@ header-y += tcp_metrics.h
 header-y += telephony.h
 header-y += termios.h
 header-y += thermal.h
+header-y += tiemrfd.h
 header-y += time.h
 header-y += times.h
 header-y += timex.h
diff --git a/include/uapi/linux/timerfd.h b/include/uapi/linux/timerfd.h
new file mode 100644
index 0000000..69a2f92
--- /dev/null
+++ b/include/uapi/linux/timerfd.h
@@ -0,0 +1,31 @@
+/*
+ *  include/uapi/linux/timerfd.h
+ *
+ *  Copyright (C) 2007  Davide Libenzi <davidel-AhlLAIvw+VEjIGhXcJzhZg@public.gmane.org>
+ *
+ */
+
+#ifndef _UAPI_LINUX_TIMERFD_H
+#define _UAPI_LINUX_TIMERFD_H
+
+/* For O_CLOEXEC and O_NONBLOCK */
+#include <linux/fcntl.h>
+
+/* For _IO helpers */
+#include <linux/ioctl.h>
+
+/*
+ * CAREFUL: Check include/asm-generic/fcntl.h when defining
+ * new flags, since they might collide with O_* ones. We want
+ * to re-use O_* flags that couldn't possibly have a meaning
+ * from eventfd, in order to leave a free define-space for
+ * shared O_* flags.
+ */
+#define TFD_TIMER_ABSTIME (1 << 0)
+#define TFD_TIMER_CANCEL_ON_SET (1 << 1)
+#define TFD_CLOEXEC O_CLOEXEC
+#define TFD_NONBLOCK O_NONBLOCK
+
+#define TFD_IOC_SET_TICKS	_IOW('T', 0, u64)
+
+#endif /* _UAPI_LINUX_TIMERFD_H */
-- 
2.6.0

Re: [PATCH] timerfd: expose uapi header

From: Arnd Bergmann <arnd@arndb.de>
Date: 2015-10-05 14:58:07

On Monday 05 October 2015 16:53:39 Gabriel Laskar wrote:
this patch expose the timerfd apis to the userland. It is already in
glibc header sys/timerfd.h but not synchronised, and missing the ioctl
number definition.

Signed-off-by: Gabriel Laskar <redacted>
What happens if you include both sys/timerfd.h and linux/timerfd.h then? 
header-y += telephony.h
header-y += termios.h
header-y += thermal.h
+header-y += tiemrfd.h
header-y += time.h
header-y += times.h
header-y += timex.h
s/tiemrfd/timerfd/

	Arnd

Re: [PATCH] timerfd: expose uapi header

From: Yann Droneaud <hidden>
Date: 2015-10-05 14:58:24

Hi,

Le lundi 05 octobre 2015 à 16:53 +0200, Gabriel Laskar a écrit :
quoted hunk
this patch expose the timerfd apis to the userland. It is already in
glibc header sys/timerfd.h but not synchronised, and missing the
ioctl
number definition.

Signed-off-by: Gabriel Laskar <redacted>
---
 include/linux/timerfd.h      | 20 +-------------------
 include/uapi/linux/Kbuild    |  1 +
 include/uapi/linux/timerfd.h | 31 +++++++++++++++++++++++++++++++
 3 files changed, 33 insertions(+), 19 deletions(-)
 create mode 100644 include/uapi/linux/timerfd.h
diff --git a/include/linux/timerfd.h b/include/linux/timerfd.h
index bd36ce4..bab0b1a 100644
--- a/include/linux/timerfd.h
+++ b/include/linux/timerfd.h
@@ -8,23 +8,7 @@
 #ifndef _LINUX_TIMERFD_H
 #define _LINUX_TIMERFD_H
 
-/* For O_CLOEXEC and O_NONBLOCK */
-#include <linux/fcntl.h>
-
-/* For _IO helpers */
-#include <linux/ioctl.h>
-
-/*
- * CAREFUL: Check include/asm-generic/fcntl.h when defining
- * new flags, since they might collide with O_* ones. We want
- * to re-use O_* flags that couldn't possibly have a meaning
- * from eventfd, in order to leave a free define-space for
- * shared O_* flags.
- */
-#define TFD_TIMER_ABSTIME (1 << 0)
-#define TFD_TIMER_CANCEL_ON_SET (1 << 1)
-#define TFD_CLOEXEC O_CLOEXEC
-#define TFD_NONBLOCK O_NONBLOCK
+#include <uapi/linux/timerfd.h>
 
 #define TFD_SHARED_FCNTL_FLAGS (TFD_CLOEXEC | TFD_NONBLOCK)
 /* Flags for timerfd_create.  */
@@ -32,6 +16,4 @@
 /* Flags for timerfd_settime.  */
 #define TFD_SETTIME_FLAGS (TFD_TIMER_ABSTIME |
TFD_TIMER_CANCEL_ON_SET)
 
-#define TFD_IOC_SET_TICKS	_IOW('T', 0, u64)
-
 #endif /* _LINUX_TIMERFD_H */
diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild
index f7b2db4..874ac3f 100644
--- a/include/uapi/linux/Kbuild
+++ b/include/uapi/linux/Kbuild
@@ -395,6 +395,7 @@ header-y += tcp_metrics.h
 header-y += telephony.h
 header-y += termios.h
 header-y += thermal.h
+header-y += tiemrfd.h
Typo here ...

That should have been caught with make headers_install
quoted hunk
 header-y += time.h
 header-y += times.h
 header-y += timex.h
diff --git a/include/uapi/linux/timerfd.h
b/include/uapi/linux/timerfd.h
new file mode 100644
index 0000000..69a2f92
--- /dev/null
+++ b/include/uapi/linux/timerfd.h
@@ -0,0 +1,31 @@
+/*
+ *  include/uapi/linux/timerfd.h
+ *
+ *  Copyright (C) 2007  Davide Libenzi <davidel-AhlLAIvw+VEjIGhXcJzhZg@public.gmane.org>
+ *
+ */
+
+#ifndef _UAPI_LINUX_TIMERFD_H
+#define _UAPI_LINUX_TIMERFD_H
+
+/* For O_CLOEXEC and O_NONBLOCK */
+#include <linux/fcntl.h>
+
+/* For _IO helpers */
+#include <linux/ioctl.h>
+
+/*
+ * CAREFUL: Check include/asm-generic/fcntl.h when defining
+ * new flags, since they might collide with O_* ones. We want
+ * to re-use O_* flags that couldn't possibly have a meaning
+ * from eventfd, in order to leave a free define-space for
+ * shared O_* flags.
+ */
+#define TFD_TIMER_ABSTIME (1 << 0)
+#define TFD_TIMER_CANCEL_ON_SET (1 << 1)
+#define TFD_CLOEXEC O_CLOEXEC
+#define TFD_NONBLOCK O_NONBLOCK
+
+#define TFD_IOC_SET_TICKS	_IOW('T', 0, u64)
+
+#endif /* _UAPI_LINUX_TIMERFD_H */

Regards.

-- 
Yann Droneaud
OPTEYA

Re: [PATCH] timerfd: expose uapi header

From: kbuild test robot <hidden>
Date: 2015-10-05 15:02:32

Hi Gabriel,

[auto build test ERROR on v4.3-rc4 -- if it's inappropriate base, please ignore]

config: x86_64-allnoconfig (attached as .config)
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):
quoted
scripts/Makefile.headersinst:55: *** Missing UAPI file include/uapi/linux/tiemrfd.h.  Stop.
--
quoted
scripts/Makefile.headersinst:55: *** Missing UAPI file include/uapi/linux/tiemrfd.h.  Stop.
   make[2]: *** [linux] Error 2
   make[2]: Target '__headersinst' not remade because of errors.
   make[1]: *** [headers_install] Error 2
   make: *** [sub-make] Error 2

vim +55 scripts/Makefile.headersinst

d8ecc5cd Sam Ravnborg    2011-04-27  39  
10b63956 David Howells   2012-10-02  40  srcdir        := $(srctree)/$(obj)
10b63956 David Howells   2012-10-02  41  gendir        := $(objtree)/$(gen)
10b63956 David Howells   2012-10-02  42  
10b63956 David Howells   2012-10-02  43  oldsrcdir     := $(srctree)/$(subst /uapi,,$(obj))
10b63956 David Howells   2012-10-02  44  
7712401a Sam Ravnborg    2008-06-15  45  # all headers files for this dir
d8ecc5cd Sam Ravnborg    2011-04-27  46  header-y      := $(filter-out $(generic-y), $(header-y))
40f1d4c2 David Howells   2012-10-02  47  all-files     := $(header-y) $(genhdr-y) $(wrapper-files)
10b63956 David Howells   2012-10-02  48  output-files  := $(addprefix $(installdir)/, $(all-files))
10b63956 David Howells   2012-10-02  49  
c0ff68f1 Nicolas Dichtel 2013-04-29  50  input-files1  := $(foreach hdr, $(header-y), \
c4619bc6 Sam Ravnborg    2013-03-04  51  		   $(if $(wildcard $(srcdir)/$(hdr)), \
c0ff68f1 Nicolas Dichtel 2013-04-29  52  			$(wildcard $(srcdir)/$(hdr))) \
c0ff68f1 Nicolas Dichtel 2013-04-29  53  		   )
c0ff68f1 Nicolas Dichtel 2013-04-29  54  input-files1-name := $(notdir $(input-files1))
c0ff68f1 Nicolas Dichtel 2013-04-29 @55  input-files2  := $(foreach hdr, $(header-y), \
c0ff68f1 Nicolas Dichtel 2013-04-29  56  		   $(if  $(wildcard $(srcdir)/$(hdr)),, \
c4619bc6 Sam Ravnborg    2013-03-04  57  			$(if $(wildcard $(oldsrcdir)/$(hdr)), \
10b63956 David Howells   2012-10-02  58  				$(wildcard $(oldsrcdir)/$(hdr)), \
c4619bc6 Sam Ravnborg    2013-03-04  59  				$(error Missing UAPI file $(srcdir)/$(hdr))) \
c0ff68f1 Nicolas Dichtel 2013-04-29  60  		   ))
c0ff68f1 Nicolas Dichtel 2013-04-29  61  input-files2-name := $(notdir $(input-files2))
c0ff68f1 Nicolas Dichtel 2013-04-29  62  input-files3  := $(foreach hdr, $(genhdr-y), \
c4619bc6 Sam Ravnborg    2013-03-04  63  		   $(if	$(wildcard $(gendir)/$(hdr)), \

:::::: The code at line 55 was first introduced by commit
:::::: c0ff68f1611d6855a06d672989ad5cfea160a4eb kbuild: fix make headers_install when path is too long

:::::: TO: Nicolas Dichtel [off-list ref]
:::::: CC: Michal Marek [off-list ref]

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Re: [PATCH] timerfd: expose uapi header

From: Gabriel Laskar <hidden>
Date: 2015-10-05 19:21:02

On Mon, 05 Oct 2015 16:57:21 +0200
Arnd Bergmann [off-list ref] wrote:
On Monday 05 October 2015 16:53:39 Gabriel Laskar wrote:
quoted
this patch expose the timerfd apis to the userland. It is already in
glibc header sys/timerfd.h but not synchronised, and missing the ioctl
number definition.

Signed-off-by: Gabriel Laskar <redacted>
What happens if you include both sys/timerfd.h and linux/timerfd.h then? 
It will conflict, yes, what should I do? make the kernel header in a
way that this will not conflict, or just patch the glibc headers too?
quoted
header-y += telephony.h
header-y += termios.h
header-y += thermal.h
+header-y += tiemrfd.h
header-y += time.h
header-y += times.h
header-y += timex.h
s/tiemrfd/timerfd/
I miss that, I really need to me more careful about this. Will send a
correction for this part.


-- 
Gabriel Laskar
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help