1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ****************************************************************************
11  ****************************************************************************/
12 #ifndef _LINUX_KTIME_H
13 #define _LINUX_KTIME_H
14 
15 #include <linux/time.h>
16 #include <linux/jiffies.h>
17 
18 typedef union {
19  s64 tv64;
20 #if BITS_PER_LONG != (64 && !defined(CONFIG_KTIME_SCALAR))
21  struct {
22 #ifdef __BIG_ENDIAN
23  s32 sec, nsec;
24 #else
25  s32 nsec, sec;
26 #endif
27  } tv;
28 #endif
29 } ktime_t;
30 
31 #define KTIME_MAX ((s64)~((u64)1 << 63))
32 #define KTIME_SEC_MAX (KTIME_MAX / NSEC_PER_SEC)
33 
34 #if BITS_PER_LONG == 64
35 
36 #if BITS_PER_LONG == 64
37 #endif
38 #define ktime_sub(lhs, rhs)   ({ (ktime_t){ .tv64 = (lhs).tv64 - (rhs).tv64 }; })
39 #define ktime_add(lhs, rhs)   ({ (ktime_t){ .tv64 = (lhs).tv64 + (rhs).tv64 }; })
40 #define ktime_add_ns(kt, nsval)   ({ (ktime_t){ .tv64 = (kt).tv64 + (nsval) }; })
41 #define ktime_to_timespec(kt) ns_to_timespec((kt).tv64)
42 #define ktime_to_timeval(kt) ns_to_timeval((kt).tv64)
43 #define ktime_to_ns(kt) ((kt).tv64)
44 #else
45 
46 #endif
47 #define KTIME_REALTIME_RES (ktime_t){ .tv64 = TICK_NSEC }
48 #define KTIME_MONOTONIC_RES (ktime_t){ .tv64 = TICK_NSEC }
49 
50 #define ktime_get_real_ts(ts) getnstimeofday(ts)
51 
52 #endif
53