blob: a502616f7e1c517e057682a45b80dad433c36a29 [file] [log] [blame]
Arnd Bergmann65469112017-10-19 13:14:49 +02001#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
Arnd Bergmann33e26412018-08-14 15:18:20 +02009static inline void do_gettimeofday(struct timeval *tv)
10{
11 struct timespec64 now;
12
13 ktime_get_real_ts64(&now);
14 tv->tv_sec = now.tv_sec;
15 tv->tv_usec = now.tv_nsec/1000;
16}
17
18static inline unsigned long get_seconds(void)
19{
20 return ktime_get_real_seconds();
21}
Arnd Bergmann65469112017-10-19 13:14:49 +020022
Arnd Bergmann65469112017-10-19 13:14:49 +020023static inline void getnstimeofday(struct timespec *ts)
24{
25 struct timespec64 ts64;
26
Arnd Bergmannedca71f2018-04-27 15:40:13 +020027 ktime_get_real_ts64(&ts64);
Arnd Bergmann65469112017-10-19 13:14:49 +020028 *ts = timespec64_to_timespec(ts64);
29}
30
31static inline void ktime_get_ts(struct timespec *ts)
32{
33 struct timespec64 ts64;
34
35 ktime_get_ts64(&ts64);
36 *ts = timespec64_to_timespec(ts64);
37}
38
Arnd Bergmann65469112017-10-19 13:14:49 +020039static inline void getrawmonotonic(struct timespec *ts)
40{
41 struct timespec64 ts64;
42
Arnd Bergmannfb7fcc92018-04-27 15:40:14 +020043 ktime_get_raw_ts64(&ts64);
Arnd Bergmann65469112017-10-19 13:14:49 +020044 *ts = timespec64_to_timespec(ts64);
45}
46
Arnd Bergmann65469112017-10-19 13:14:49 +020047static inline void getboottime(struct timespec *ts)
48{
49 struct timespec64 ts64;
50
51 getboottime64(&ts64);
52 *ts = timespec64_to_timespec(ts64);
53}
Arnd Bergmann65469112017-10-19 13:14:49 +020054
55/*
Arnd Bergmann65469112017-10-19 13:14:49 +020056 * Persistent clock related interfaces
57 */
58extern void read_persistent_clock(struct timespec *ts);
59extern int update_persistent_clock(struct timespec now);
60
61#endif