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 9 extern void do_gettimeofday(struct timeval *tv); 10 unsigned long get_seconds(void); 11 current_kernel_time(void)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 */ do_settimeofday(const struct timespec * ts)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 getnstimeofday(struct timespec * ts)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 ktime_get_ts(struct timespec * ts)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 ktime_get_real_ts(struct timespec * ts)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 getrawmonotonic(struct timespec * ts)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 get_monotonic_coarse(void)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 getboottime(struct timespec * ts)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 */ get_monotonic_boottime(struct timespec * ts)84static inline void get_monotonic_boottime(struct timespec *ts) 85 { 86 *ts = ktime_to_timespec(ktime_get_boottime()); 87 } 88 timekeeping_clocktai(struct timespec * ts)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 */ 97 extern void read_persistent_clock(struct timespec *ts); 98 extern int update_persistent_clock(struct timespec now); 99 100 #endif 101