diff mbox series

[U-Boot,v3,04/16] lib: add mktime64() for linux compatibility

Message ID 20191113004502.29986-5-takahiro.akashi@linaro.org
State Accepted
Commit 18723117271370e480f8ca9495f8850522fabb74
Delegated to: Tom Rini
Headers show
Series import x509/pkcs7 parsers from linux | expand

Commit Message

Takahiro Akashi Nov. 13, 2019, 12:44 a.m. UTC
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>
---
 include/linux/time.h | 10 ++++++++++
 lib/date.c           | 20 ++++++++++++++++++++
 2 files changed, 30 insertions(+)

Comments

Tom Rini Dec. 6, 2019, 9:49 p.m. UTC | #1
On Wed, Nov 13, 2019 at 09:44:50AM +0900, AKASHI Takahiro wrote:

> 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>

Applied to u-boot/master, thanks!
diff mbox series

Patch

diff --git a/include/linux/time.h b/include/linux/time.h
index b8d298eb4d68..dc9344a6d97b 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 63af4a142612..0456de78ab14 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