about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2014-02-05 16:34:23 -0500
committerRich Felker <dalias@aerifal.cx>2014-02-05 16:34:23 -0500
commitad87c2eecf70c6f2852a4908b04a6329cbebaf7d (patch)
treec9686b113ecb2c703c4af2d4a898510e10545835
parenta0351ee6a7b795808aa20c4b607bc7a0379422ef (diff)
downloadmusl-ad87c2eecf70c6f2852a4908b04a6329cbebaf7d.tar.gz
musl-ad87c2eecf70c6f2852a4908b04a6329cbebaf7d.tar.xz
musl-ad87c2eecf70c6f2852a4908b04a6329cbebaf7d.zip
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.
-rw-r--r--include/sys/time.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/sys/time.h b/include/sys/time.h
index b6787c3c..bfe1414e 100644
--- a/include/sys/time.h
+++ b/include/sys/time.h
@@ -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