net/mlx5: Fix use-after-free in self-healing flow
[linux-2.6-block.git] / include / linux / timekeeping32.h
CommitLineData
6546911e
AB
1#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
6546911e
AB
12static inline struct timespec current_kernel_time(void)
13{
fb7fcc96
AB
14 struct timespec64 ts64;
15
16 ktime_get_coarse_real_ts64(&ts64);
6546911e 17
fb7fcc96 18 return timespec64_to_timespec(ts64);
6546911e
AB
19}
20
6546911e
AB
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
6546911e
AB
32static inline void getnstimeofday(struct timespec *ts)
33{
34 struct timespec64 ts64;
35
edca71fe 36 ktime_get_real_ts64(&ts64);
6546911e
AB
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
edca71fe 52 ktime_get_real_ts64(&ts64);
6546911e
AB
53 *ts = timespec64_to_timespec(ts64);
54}
55
56static inline void getrawmonotonic(struct timespec *ts)
57{
58 struct timespec64 ts64;
59
fb7fcc96 60 ktime_get_raw_ts64(&ts64);
6546911e
AB
61 *ts = timespec64_to_timespec(ts64);
62}
63
64static inline struct timespec get_monotonic_coarse(void)
65{
fb7fcc96
AB
66 struct timespec64 ts64;
67
68 ktime_get_coarse_ts64(&ts64);
69
70 return timespec64_to_timespec(ts64);
6546911e
AB
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}
6546911e
AB
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