]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blame - include/linux/timekeeping32.h
iommu/vt-d: Fix QI_DEV_IOTLB_PFSID and QI_DEV_EIOTLB_PFSID macros
[mirror_ubuntu-bionic-kernel.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
12/* does not take xtime_lock */
13struct timespec __current_kernel_time(void);
14
15static inline struct timespec current_kernel_time(void)
16{
17 struct timespec64 now = current_kernel_time64();
18
19 return timespec64_to_timespec(now);
20}
21
22#if BITS_PER_LONG == 64
23/**
24 * Deprecated. Use do_settimeofday64().
25 */
26static inline int do_settimeofday(const struct timespec *ts)
27{
28 return do_settimeofday64(ts);
29}
30
31static inline int __getnstimeofday(struct timespec *ts)
32{
33 return __getnstimeofday64(ts);
34}
35
36static inline void getnstimeofday(struct timespec *ts)
37{
38 getnstimeofday64(ts);
39}
40
41static inline void ktime_get_ts(struct timespec *ts)
42{
43 ktime_get_ts64(ts);
44}
45
46static inline void ktime_get_real_ts(struct timespec *ts)
47{
48 getnstimeofday64(ts);
49}
50
51static inline void getrawmonotonic(struct timespec *ts)
52{
53 getrawmonotonic64(ts);
54}
55
56static inline struct timespec get_monotonic_coarse(void)
57{
58 return get_monotonic_coarse64();
59}
60
61static inline void getboottime(struct timespec *ts)
62{
63 return getboottime64(ts);
64}
65#else
66/**
67 * Deprecated. Use do_settimeofday64().
68 */
69static inline int do_settimeofday(const struct timespec *ts)
70{
71 struct timespec64 ts64;
72
73 ts64 = timespec_to_timespec64(*ts);
74 return do_settimeofday64(&ts64);
75}
76
77static inline int __getnstimeofday(struct timespec *ts)
78{
79 struct timespec64 ts64;
80 int ret = __getnstimeofday64(&ts64);
81
82 *ts = timespec64_to_timespec(ts64);
83 return ret;
84}
85
86static inline void getnstimeofday(struct timespec *ts)
87{
88 struct timespec64 ts64;
89
90 getnstimeofday64(&ts64);
91 *ts = timespec64_to_timespec(ts64);
92}
93
94static inline void ktime_get_ts(struct timespec *ts)
95{
96 struct timespec64 ts64;
97
98 ktime_get_ts64(&ts64);
99 *ts = timespec64_to_timespec(ts64);
100}
101
102static inline void ktime_get_real_ts(struct timespec *ts)
103{
104 struct timespec64 ts64;
105
106 getnstimeofday64(&ts64);
107 *ts = timespec64_to_timespec(ts64);
108}
109
110static inline void getrawmonotonic(struct timespec *ts)
111{
112 struct timespec64 ts64;
113
114 getrawmonotonic64(&ts64);
115 *ts = timespec64_to_timespec(ts64);
116}
117
118static inline struct timespec get_monotonic_coarse(void)
119{
120 return timespec64_to_timespec(get_monotonic_coarse64());
121}
122
123static inline void getboottime(struct timespec *ts)
124{
125 struct timespec64 ts64;
126
127 getboottime64(&ts64);
128 *ts = timespec64_to_timespec(ts64);
129}
130#endif
131
132/*
133 * Timespec interfaces utilizing the ktime based ones
134 */
135static inline void get_monotonic_boottime(struct timespec *ts)
136{
137 *ts = ktime_to_timespec(ktime_get_boottime());
138}
139
140static inline void timekeeping_clocktai(struct timespec *ts)
141{
142 *ts = ktime_to_timespec(ktime_get_clocktai());
143}
144
145/*
146 * Persistent clock related interfaces
147 */
148extern void read_persistent_clock(struct timespec *ts);
149extern int update_persistent_clock(struct timespec now);
150
151#endif