add nonstandard timespec/timeval conversion macros in sys/time.h

these are poorly designed (illogical argument order) and even poorly
implemented (brace issues) on glibc, but unfortunately some software
is using them. we could consider removing them again in the future at
some point if they're documented as deprecated, but for now the
simplest thing to do is just to provide them under _GNU_SOURCE.
This commit is contained in:
Rich Felker 2014-02-05 16:34:23 -05:00
parent a0351ee6a7
commit ad87c2eecf
1 changed files with 11 additions and 0 deletions

View File

@ -51,6 +51,17 @@ int adjtime (const struct timeval *, struct timeval *);
((a)->tv_usec += 1000000, (a)->tv_sec--) )
#endif
#if defined(_GNU_SOURCE)
#define TIMEVAL_TO_TIMESPEC(tv, ts) ( \
(ts)->tv_sec = (tv)->tv_sec, \
(ts)->tv_nsec = (tv)->tv_usec * 1000, \
(void)0 )
#define TIMESPEC_TO_TIMEVAL(tv, ts) ( \
(tv)->tv_sec = (ts)->tv_sec, \
(tv)->tv_usec = (ts)->tv_nsec / 1000, \
(void)0 )
#endif
#ifdef __cplusplus
}
#endif