blob: bd36ce431e32cbb57a1ec4e97964b78774787a2e [file] [log] [blame]
Davide Libenzib215e282007-05-10 22:23:16 -07001/*
2 * include/linux/timerfd.h
3 *
4 * Copyright (C) 2007 Davide Libenzi <davidel@xmailserver.org>
5 *
6 */
7
8#ifndef _LINUX_TIMERFD_H
9#define _LINUX_TIMERFD_H
10
Ulrich Drepper6b1ef0e2008-07-23 21:29:39 -070011/* For O_CLOEXEC and O_NONBLOCK */
Ulrich Drepper11fcb6c2008-07-23 21:29:26 -070012#include <linux/fcntl.h>
Davide Libenzib215e282007-05-10 22:23:16 -070013
Cyrill Gorcunov5442e9f2014-07-16 01:54:54 +040014/* For _IO helpers */
15#include <linux/ioctl.h>
16
Davide Libenzi610d18f2009-02-18 14:48:18 -080017/*
18 * CAREFUL: Check include/asm-generic/fcntl.h when defining
19 * new flags, since they might collide with O_* ones. We want
20 * to re-use O_* flags that couldn't possibly have a meaning
21 * from eventfd, in order to leave a free define-space for
22 * shared O_* flags.
23 */
Davide Libenzib215e282007-05-10 22:23:16 -070024#define TFD_TIMER_ABSTIME (1 << 0)
Thomas Gleixner9ec26902011-05-20 16:18:50 +020025#define TFD_TIMER_CANCEL_ON_SET (1 << 1)
Ulrich Drepper11fcb6c2008-07-23 21:29:26 -070026#define TFD_CLOEXEC O_CLOEXEC
Ulrich Drepper6b1ef0e2008-07-23 21:29:39 -070027#define TFD_NONBLOCK O_NONBLOCK
Davide Libenzib215e282007-05-10 22:23:16 -070028
Davide Libenzi610d18f2009-02-18 14:48:18 -080029#define TFD_SHARED_FCNTL_FLAGS (TFD_CLOEXEC | TFD_NONBLOCK)
30/* Flags for timerfd_create. */
31#define TFD_CREATE_FLAGS TFD_SHARED_FCNTL_FLAGS
32/* Flags for timerfd_settime. */
Thomas Gleixner9ec26902011-05-20 16:18:50 +020033#define TFD_SETTIME_FLAGS (TFD_TIMER_ABSTIME | TFD_TIMER_CANCEL_ON_SET)
Davide Libenzib215e282007-05-10 22:23:16 -070034
Cyrill Gorcunov5442e9f2014-07-16 01:54:54 +040035#define TFD_IOC_SET_TICKS _IOW('T', 0, u64)
36
Davide Libenzib215e282007-05-10 22:23:16 -070037#endif /* _LINUX_TIMERFD_H */