summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAKASHI Takahiro <takahiro.akashi@linaro.org>2019-11-13 09:44:50 +0900
committerTom Rini <trini@konsulko.com>2019-12-06 16:44:19 -0500
commit18723117271370e480f8ca9495f8850522fabb74 (patch)
treed882979cd6cfe470c3aa9c20d1f7eaa38d5cc95f
parent05429b6cf5b3f30f773b8e79fe4cd3688349d7d2 (diff)
downloadu-boot-18723117271370e480f8ca9495f8850522fabb74.tar.gz
u-boot-18723117271370e480f8ca9495f8850522fabb74.tar.bz2
u-boot-18723117271370e480f8ca9495f8850522fabb74.zip
lib: add mktime64() for linux compatibility
This function will be used in lib/crypto/x509_cert_parser.c, which will also be imported from linux code in a later commit. Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
-rw-r--r--include/linux/time.h10
-rw-r--r--lib/date.c20
2 files changed, 30 insertions, 0 deletions
diff --git a/include/linux/time.h b/include/linux/time.h
index b8d298eb4d..dc9344a6d9 100644
--- a/include/linux/time.h
+++ b/include/linux/time.h
@@ -1,6 +1,7 @@
#ifndef _LINUX_TIME_H
#define _LINUX_TIME_H
+#include <rtc.h>
#include <linux/types.h>
#define _DEFUN(a,b,c) a(c)
@@ -150,4 +151,13 @@ _DEFUN (ctime_r, (tim_p, result),
return asctime_r (localtime_r (tim_p, &tm), result);
}
+/* for compatibility with linux code */
+typedef __s64 time64_t;
+
+#ifdef CONFIG_LIB_DATE
+time64_t mktime64(const unsigned int year, const unsigned int mon,
+ const unsigned int day, const unsigned int hour,
+ const unsigned int min, const unsigned int sec);
+#endif
+
#endif
diff --git a/lib/date.c b/lib/date.c
index 63af4a1426..0456de78ab 100644
--- a/lib/date.c
+++ b/lib/date.c
@@ -8,6 +8,7 @@
#include <command.h>
#include <errno.h>
#include <rtc.h>
+#include <linux/time.h>
#if defined(CONFIG_LIB_DATE) || defined(CONFIG_TIMESTAMP)
@@ -97,3 +98,22 @@ unsigned long rtc_mktime(const struct rtc_time *tm)
}
#endif /* CONFIG_LIB_DATE || CONFIG_TIMESTAMP */
+
+#ifdef CONFIG_LIB_DATE
+/* for compatibility with linux code */
+time64_t mktime64(const unsigned int year, const unsigned int mon,
+ const unsigned int day, const unsigned int hour,
+ const unsigned int min, const unsigned int sec)
+{
+ struct rtc_time time;
+
+ time.tm_year = year;
+ time.tm_mon = mon;
+ time.tm_mday = day;
+ time.tm_hour = hour;
+ time.tm_min = min;
+ time.tm_sec = sec;
+
+ return (time64_t)rtc_mktime((const struct rtc_time *)&time);
+}
+#endif