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