Line data Source code
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 0 : 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 */