1 #ifndef _LINUX_TIMEKEEPING32_H
2 #define _LINUX_TIMEKEEPING32_H
4 * These interfaces are all based on the old timespec type
5 * and should get replaced with the timespec64 based versions
6 * over time so we can remove the file here.
9 extern void do_gettimeofday(struct timeval *tv);
10 unsigned long get_seconds(void);
12 static inline struct timespec current_kernel_time(void)
14 struct timespec64 ts64;
16 ktime_get_coarse_real_ts64(&ts64);
18 return timespec64_to_timespec(ts64);
22 * Deprecated. Use do_settimeofday64().
24 static inline int do_settimeofday(const struct timespec *ts)
26 struct timespec64 ts64;
28 ts64 = timespec_to_timespec64(*ts);
29 return do_settimeofday64(&ts64);
32 static inline void getnstimeofday(struct timespec *ts)
34 struct timespec64 ts64;
36 ktime_get_real_ts64(&ts64);
37 *ts = timespec64_to_timespec(ts64);
40 static inline void ktime_get_ts(struct timespec *ts)
42 struct timespec64 ts64;
44 ktime_get_ts64(&ts64);
45 *ts = timespec64_to_timespec(ts64);
48 static inline void ktime_get_real_ts(struct timespec *ts)
50 struct timespec64 ts64;
52 ktime_get_real_ts64(&ts64);
53 *ts = timespec64_to_timespec(ts64);
56 static inline void getrawmonotonic(struct timespec *ts)
58 struct timespec64 ts64;
60 ktime_get_raw_ts64(&ts64);
61 *ts = timespec64_to_timespec(ts64);
64 static inline struct timespec get_monotonic_coarse(void)
66 struct timespec64 ts64;
68 ktime_get_coarse_ts64(&ts64);
70 return timespec64_to_timespec(ts64);
73 static inline void getboottime(struct timespec *ts)
75 struct timespec64 ts64;
78 *ts = timespec64_to_timespec(ts64);
82 * Timespec interfaces utilizing the ktime based ones
84 static inline void get_monotonic_boottime(struct timespec *ts)
86 *ts = ktime_to_timespec(ktime_get_boottime());
89 static inline void timekeeping_clocktai(struct timespec *ts)
91 *ts = ktime_to_timespec(ktime_get_clocktai());
95 * Persistent clock related interfaces
97 extern void read_persistent_clock(struct timespec *ts);
98 extern int update_persistent_clock(struct timespec now);