From 245baebd9d4fda2cc824781298863aafb32eef89 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Thu, 12 Oct 2017 14:36:48 +0200 Subject: backports: add mktime64() Signed-off-by: Johannes Berg --- backport/backport-include/linux/time64.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/backport/backport-include/linux/time64.h b/backport/backport-include/linux/time64.h index 609b8904..49805da9 100644 --- a/backport/backport-include/linux/time64.h +++ b/backport/backport-include/linux/time64.h @@ -21,4 +21,26 @@ #define timespec64 timespec #endif /* LINUX_VERSION_IS_LESS(3,17,0) */ +#if LINUX_VERSION_IS_LESS(3,19,0) +static inline time64_t mktime64(const unsigned int year0, const unsigned int mon0, + const unsigned int day, const unsigned int hour, + const unsigned int min, const unsigned int sec) +{ + unsigned int mon = mon0, year = year0; + + /* 1..12 -> 11,12,1..10 */ + if (0 >= (int) (mon -= 2)) { + mon += 12; /* Puts Feb last since it has leap day */ + year -= 1; + } + + return ((((time64_t) + (year/4 - year/100 + year/400 + 367*mon/12 + day) + + year*365 - 719499 + )*24 + hour /* now have hours - midnight tomorrow handled here */ + )*60 + min /* now have minutes */ + )*60 + sec; /* finally seconds */ +} +#endif + #endif /* __BACKPORT_LINUX_TIME64_H */ -- cgit v1.2.3