This patch introduces the timespec64_to_jiffies() and jiffies_to_timespec64()
functions, that implement the conversion between cputime and timespec64.

Signed-off-by: Baolin Wang <[email protected]>
---
 include/linux/jiffies.h |    3 +++
 kernel/time/time.c      |   23 +++++++++++++++++++----
 2 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/include/linux/jiffies.h b/include/linux/jiffies.h
index c367cbd..dbaa4ee 100644
--- a/include/linux/jiffies.h
+++ b/include/linux/jiffies.h
@@ -293,6 +293,9 @@ extern unsigned long usecs_to_jiffies(const unsigned int u);
 extern unsigned long timespec_to_jiffies(const struct timespec *value);
 extern void jiffies_to_timespec(const unsigned long jiffies,
                                struct timespec *value);
+extern unsigned long timespec64_to_jiffies(const struct timespec64 *value);
+extern void jiffies_to_timespec64(const unsigned long jiffies,
+                               struct timespec64 *value);
 extern unsigned long timeval_to_jiffies(const struct timeval *value);
 extern void jiffies_to_timeval(const unsigned long jiffies,
                               struct timeval *value);
diff --git a/kernel/time/time.c b/kernel/time/time.c
index fe65e7d..b711f54 100644
--- a/kernel/time/time.c
+++ b/kernel/time/time.c
@@ -593,17 +593,16 @@ __timespec_to_jiffies(unsigned long sec, long nsec)
                 (NSEC_JIFFIE_SC - SEC_JIFFIE_SC))) >> SEC_JIFFIE_SC;
 
 }
+EXPORT_SYMBOL(__timespec_to_jiffies);
 
 unsigned long
-timespec_to_jiffies(const struct timespec *value)
+timespec64_to_jiffies(const struct timespec64 *value)
 {
        return __timespec_to_jiffies(value->tv_sec, value->tv_nsec);
 }
 
-EXPORT_SYMBOL(timespec_to_jiffies);
-
 void
-jiffies_to_timespec(const unsigned long jiffies, struct timespec *value)
+jiffies_to_timespec64(const unsigned long jiffies, struct timespec64 *value)
 {
        /*
         * Convert jiffies to nanoseconds and separate with
@@ -614,6 +613,22 @@ jiffies_to_timespec(const unsigned long jiffies, struct 
timespec *value)
                                    NSEC_PER_SEC, &rem);
        value->tv_nsec = rem;
 }
+EXPORT_SYMBOL(jiffies_to_timespec64);
+
+unsigned long
+timespec_to_jiffies(const struct timespec *value)
+{
+       return __timespec_to_jiffies(value->tv_sec, value->tv_nsec);
+}
+
+void
+jiffies_to_timespec(const unsigned long jiffies, struct timespec *value)
+{
+       struct timespec64 *ts;
+
+       *ts = timespec_to_timespec64(*value);
+       jiffies_to_timespec64(jiffies, ts);
+}
 EXPORT_SYMBOL(jiffies_to_timespec);
 
 /*
-- 
1.7.9.5

_______________________________________________
Y2038 mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/y2038

Reply via email to