1 /* Copyright (C) 2008-2022 Free Software Foundation, Inc. 2 This file is part of the GNU C Library. 3 4 The GNU C Library is free software; you can redistribute it and/or 5 modify it under the terms of the GNU Lesser General Public 6 License as published by the Free Software Foundation; either 7 version 2.1 of the License, or (at your option) any later version. 8 9 The GNU C Library is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 Lesser General Public License for more details. 13 14 You should have received a copy of the GNU Lesser General Public 15 License along with the GNU C Library; if not, see 16 <https://www.gnu.org/licenses/>. */ 17 18 #ifndef _SYS_TIMERFD_H 19 #define _SYS_TIMERFD_H 1 20 21 #include <time.h> 22 #include <bits/types/struct_itimerspec.h> 23 24 /* Get the platform-dependent flags. */ 25 #include <bits/timerfd.h> 26 27 28 /* Bits to be set in the FLAGS parameter of `timerfd_settime'. */ 29 enum 30 { 31 TFD_TIMER_ABSTIME = 1 << 0, 32 #define TFD_TIMER_ABSTIME TFD_TIMER_ABSTIME 33 TFD_TIMER_CANCEL_ON_SET = 1 << 1 34 #define TFD_TIMER_CANCEL_ON_SET TFD_TIMER_CANCEL_ON_SET 35 }; 36 37 38 __BEGIN_DECLS 39 40 /* Return file descriptor for new interval timer source. */ 41 extern int timerfd_create (__clockid_t __clock_id, int __flags) __THROW; 42 43 /* Set next expiration time of interval timer source UFD to UTMR. If 44 FLAGS has the TFD_TIMER_ABSTIME flag set the timeout value is 45 absolute. Optionally return the old expiration time in OTMR. */ 46 extern int timerfd_settime (int __ufd, int __flags, 47 const struct itimerspec *__utmr, 48 struct itimerspec *__otmr) __THROW; 49 50 #ifdef __USE_TIME_BITS64 51 # if defined(__REDIRECT_NTH) 52 extern int __REDIRECT_NTH (timerfd_settime, 53 (int __ufd, int __flags, 54 const struct itimerspec *__restrict __value, 55 struct itimerspec *__restrict __ovalue), 56 __timerfd_settime64); 57 # else 58 # define timerfd_settime __timerfd_settime64 59 # endif 60 #endif 61 62 /* Return the next expiration time of UFD. */ 63 extern int timerfd_gettime (int __ufd, struct itimerspec *__otmr) __THROW; 64 65 #ifdef __USE_TIME_BITS64 66 # if defined(__REDIRECT_NTH) 67 extern int __REDIRECT_NTH (timerfd_gettime, (int __ufd, 68 struct itimerspec *__otmr), 69 __timerfd_gettime64); 70 # else 71 # define timerfd_gettime __timerfd_gettime64 72 # endif 73 #endif 74 75 __END_DECLS 76 77 #endif /* sys/timerfd.h */ 78