linux-api.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] timerfd: expose uapi header
@ 2015-10-05 14:53 Gabriel Laskar
  2015-10-05 14:57 ` Arnd Bergmann
       [not found] ` <1444056829-9118-1-git-send-email-gabriel-tU7rkvAWjlwhT4uAktR2oQ@public.gmane.org>
  0 siblings, 2 replies; 5+ messages in thread
From: Gabriel Laskar @ 2015-10-05 14:53 UTC (permalink / raw)
  To: Thomas Gleixner, David S. Miller, Hans Verkuil,
	Michael S. Tsirkin, Greg Kroah-Hartman, Mauro Carvalho Chehab,
	stephen hemminger, Nicolas Dichtel, Masahiro Yamada,
	Gabriel Laskar, open list, open list:ABI/API

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 <gabriel-tU7rkvAWjlwhT4uAktR2oQ@public.gmane.org>
---
 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

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] timerfd: expose uapi header
  2015-10-05 14:53 [PATCH] timerfd: expose uapi header Gabriel Laskar
@ 2015-10-05 14:57 ` Arnd Bergmann
  2015-10-05 19:20   ` Gabriel Laskar
       [not found] ` <1444056829-9118-1-git-send-email-gabriel-tU7rkvAWjlwhT4uAktR2oQ@public.gmane.org>
  1 sibling, 1 reply; 5+ messages in thread
From: Arnd Bergmann @ 2015-10-05 14:57 UTC (permalink / raw)
  To: Gabriel Laskar
  Cc: Thomas Gleixner, David S. Miller, Hans Verkuil,
	Michael S. Tsirkin, Greg Kroah-Hartman, Mauro Carvalho Chehab,
	stephen hemminger, Nicolas Dichtel, Masahiro Yamada, open list,
	open list:ABI/API

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 <gabriel@lse.epita.fr>
> 

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] timerfd: expose uapi header
       [not found] ` <1444056829-9118-1-git-send-email-gabriel-tU7rkvAWjlwhT4uAktR2oQ@public.gmane.org>
@ 2015-10-05 14:57   ` Yann Droneaud
  2015-10-05 15:02   ` kbuild test robot
  1 sibling, 0 replies; 5+ messages in thread
From: Yann Droneaud @ 2015-10-05 14:57 UTC (permalink / raw)
  To: Gabriel Laskar
  Cc: Thomas Gleixner, David S. Miller, Hans Verkuil,
	Michael S. Tsirkin, Greg Kroah-Hartman, Mauro Carvalho Chehab,
	stephen hemminger, Nicolas Dichtel, Masahiro Yamada, open list,
	open list:ABI/API

Hi,

Le lundi 05 octobre 2015 à 16:53 +0200, Gabriel Laskar a écrit :
> 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 <gabriel-tU7rkvAWjlwhT4uAktR2oQ@public.gmane.org>
> ---
>  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

>  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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] timerfd: expose uapi header
       [not found] ` <1444056829-9118-1-git-send-email-gabriel-tU7rkvAWjlwhT4uAktR2oQ@public.gmane.org>
  2015-10-05 14:57   ` Yann Droneaud
@ 2015-10-05 15:02   ` kbuild test robot
  1 sibling, 0 replies; 5+ messages in thread
From: kbuild test robot @ 2015-10-05 15:02 UTC (permalink / raw)
  Cc: kbuild-all-JC7UmRfGjtg, Thomas Gleixner, David S. Miller,
	Hans Verkuil, Michael S. Tsirkin, Greg Kroah-Hartman,
	Mauro Carvalho Chehab, stephen hemminger, Nicolas Dichtel,
	Masahiro Yamada, Gabriel Laskar, open list, open list:ABI/API

[-- Attachment #1: Type: text/plain, Size: 3054 bytes --]

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

>> scripts/Makefile.headersinst:55: *** Missing UAPI file include/uapi/linux/tiemrfd.h.  Stop.
--
>> 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 <nicolas.dichtel-pdR9zngts4EAvxtiuMwx3w@public.gmane.org>
:::::: CC: Michal Marek <mmarek-AlSwsSmVLrQ@public.gmane.org>

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

[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 6030 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] timerfd: expose uapi header
  2015-10-05 14:57 ` Arnd Bergmann
@ 2015-10-05 19:20   ` Gabriel Laskar
  0 siblings, 0 replies; 5+ messages in thread
From: Gabriel Laskar @ 2015-10-05 19:20 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Thomas Gleixner, David S. Miller, Hans Verkuil,
	Michael S. Tsirkin, Greg Kroah-Hartman, Mauro Carvalho Chehab,
	stephen hemminger, Nicolas Dichtel, Masahiro Yamada, open list,
	open list:ABI/API

On Mon, 05 Oct 2015 16:57:21 +0200
Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org> wrote:

> 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 <gabriel-tU7rkvAWjlwhT4uAktR2oQ@public.gmane.org>
> > 
> 
> 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?

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-10-05 19:20 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-05 14:53 [PATCH] timerfd: expose uapi header Gabriel Laskar
2015-10-05 14:57 ` Arnd Bergmann
2015-10-05 19:20   ` Gabriel Laskar
     [not found] ` <1444056829-9118-1-git-send-email-gabriel-tU7rkvAWjlwhT4uAktR2oQ@public.gmane.org>
2015-10-05 14:57   ` Yann Droneaud
2015-10-05 15:02   ` kbuild test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).