22 #ifndef LELY_LIBC_TIME_H_
23 #define LELY_LIBC_TIME_H_
29 #ifndef LELY_HAVE_ITIMERSPEC
30 #if defined(_POSIX_C_SOURCE) || defined(_POSIX_TIMERS) \
31 || defined(_TIMESPEC_DEFINED)
32 #define LELY_HAVE_ITIMERSPEC 1
36 #undef LELY_HAVE_TIMESPEC
37 #if __STDC_VERSION__ >= 201112L || _MSC_VER >= 1900 \
38 || _POSIX_C_SOURCE >= 199309L || defined(__CYGWIN__) \
39 || defined(_TIMESPEC_DEFINED) || defined(__timespec_defined)
40 #define LELY_HAVE_TIMESPEC 1
43 #ifndef LELY_HAVE_TIMESPEC_GET
44 #if (__STDC_VERSION__ >= 201112L || __USE_ISOC11 || _MSC_VER >= 1900) \
46 #define LELY_HAVE_TIMESPEC_GET 1
50 #if !defined(_POSIX_C_SOURCE) && !defined(_POSIX_TIMERS) \
51 && !defined(__MINGW32__)
54 #define CLOCK_REALTIME 0
61 #define CLOCK_MONOTONIC 1
67 #define CLOCK_PROCESS_CPUTIME_ID 2
73 #define CLOCK_THREAD_CPUTIME_ID 3
76 #define TIMER_ABSTIME 1
80 #if !LELY_HAVE_TIMESPEC
92 #if !LELY_HAVE_ITIMERSPEC
97 struct timespec it_interval;
99 struct timespec it_value;
108 #if !defined(_POSIX_TIMERS) && !defined(__MINGW32__)
125 int clock_getres(clockid_t clock_id,
struct timespec *res);
141 int clock_gettime(clockid_t clock_id,
struct timespec *tp);
173 int clock_nanosleep(clockid_t clock_id,
int flags,
const struct timespec *rqtp,
174 struct timespec *rmtp);
188 int clock_settime(clockid_t clock_id,
const struct timespec *tp);
194 int nanosleep(
const struct timespec *rqtp,
struct timespec *rmtp);
198 #if !LELY_HAVE_TIMESPEC_GET
int timespec_get(struct timespec *ts, int base)
Sets the interval at ts to hold the current calendar time based on the specified time base.
This header file is part of the C11 and POSIX compatibility library; it includes <sys/types....
This header file is part of the utilities library; it contains the time function declarations.