blob: 8762c2f45f8bf1b1ac13b5b15891115df8223dd8 [file] [log] [blame]
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00001#ifndef _LINUX_TIMEKEEPING32_H
2#define _LINUX_TIMEKEEPING32_H
3/*
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.
7 */
8
9extern void do_gettimeofday(struct timeval *tv);
10unsigned long get_seconds(void);
11
12static inline struct timespec current_kernel_time(void)
13{
14 struct timespec64 ts64;
15
16 ktime_get_coarse_real_ts64(&ts64);
17
18 return timespec64_to_timespec(ts64);
19}
20
21/**
22 * Deprecated. Use do_settimeofday64().
23 */
24static inline int do_settimeofday(const struct timespec *ts)
25{
26 struct timespec64 ts64;
27
28 ts64 = timespec_to_timespec64(*ts);
29 return do_settimeofday64(&ts64);
30}
31
32static inline void getnstimeofday(struct timespec *ts)
33{
34 struct timespec64 ts64;
35
36 ktime_get_real_ts64(&ts64);
37 *ts = timespec64_to_timespec(ts64);
38}
39
40static inline void ktime_get_ts(struct timespec *ts)
41{
42 struct timespec64 ts64;
43
44 ktime_get_ts64(&ts64);
45 *ts = timespec64_to_timespec(ts64);
46}
47
48static inline void ktime_get_real_ts(struct timespec *ts)
49{
50 struct timespec64 ts64;
51
52 ktime_get_real_ts64(&ts64);
53 *ts = timespec64_to_timespec(ts64);
54}
55
56static inline void getrawmonotonic(struct timespec *ts)
57{
58 struct timespec64 ts64;
59
60 ktime_get_raw_ts64(&ts64);
61 *ts = timespec64_to_timespec(ts64);
62}
63
64static inline struct timespec get_monotonic_coarse(void)
65{
66 struct timespec64 ts64;
67
68 ktime_get_coarse_ts64(&ts64);
69
70 return timespec64_to_timespec(ts64);
71}
72
73static inline void getboottime(struct timespec *ts)
74{
75 struct timespec64 ts64;
76
77 getboottime64(&ts64);
78 *ts = timespec64_to_timespec(ts64);
79}
80
81/*
82 * Timespec interfaces utilizing the ktime based ones
83 */
84static inline void get_monotonic_boottime(struct timespec *ts)
85{
86 *ts = ktime_to_timespec(ktime_get_boottime());
87}
88
89static inline void timekeeping_clocktai(struct timespec *ts)
90{
91 *ts = ktime_to_timespec(ktime_get_clocktai());
92}
93
94/*
95 * Persistent clock related interfaces
96 */
97extern void read_persistent_clock(struct timespec *ts);
98extern int update_persistent_clock(struct timespec now);
99
100#endif