[PATCH 01/11] linux/time64.h:Introduce the 'struct itimerspec64' for 64bit

Baolin Wang
2015-04-20T05:57:29Z

This patch introduces the 'struct itimerspec64' for 64bit to replace itimerspec,
and also introduces the conversion methods: itimerspec64_to_itimerspec() and
itimerspec_to_itimerspec64(), that makes itimerspec to ready for 2038 year.

Signed-off-by: Baolin Wang <baolin.wang@linaro.org>
---
include/linux/time64.h | 13 +++++++++++++
1 file changed, 13 insertions(+)

diff --git a/include/linux/time64.h b/include/linux/time64.h
index a383147..3647bdd 100644
--- a/include/linux/time64.h
+++ b/include/linux/time64.h
@@ -18,6 +18,11 @@ struct timespec64 {
};
#endif

+struct itimerspec64 {
+ struct timespec64 it_interval; /* timer period */
+ struct timespec64 it_value; /* timer expiration */
+};
+
/* Parameters used to convert the timespec values: */
#define MSEC_PER_SEC 1000L
#define USEC_PER_MSEC 1000L
@@ -187,4 +192,12 @@ static __always_inline void timespec64_add_ns(struct timespec64 *a, u64 ns)

#endif

+#define itimerspec64_to_itimerspec(its64) \
+ ({ (struct itimerspec){ .it_interval = timespec64_to_timespec((its64).it_interval), \
+ .it_value = timespec64_to_timespec((its64).it_value) }; })
+
+#define itimerspec_to_itimerspec64(its) \
+ ({ (struct itimerspec64){ .it_interval = timespec_to_timespec64((its).it_interval), \
+ .it_value = timespec_to_timespec64((its).it_value) }; })
+
#endif /* _LINUX_TIME64_H */
--
1.7.9.5