VSF Documented
ktime.h
Go to the documentation of this file.
1#include <linux/types.h>
2#include <linux/jiffies.h>
3
4static inline ktime_t ktime_set(const s64 secs, const unsigned long nsecs)
5{
6 return secs * NSEC_PER_SEC + (s64)nsecs;
7}
8
9#define ktime_sub(lhs, rhs) ((lhs) - (rhs))
10#define ktime_add(lhs, rhs) ((lhs) + (rhs))
11#define ktime_add_unsafe(lhs, rhs) ((u64) (lhs) + (rhs))
12#define ktime_add_ns(kt, nsval) ((kt) + (nsval))
13#define ktime_sub_ns(kt, nsval) ((kt) - (nsval))
14
15static inline int ktime_compare(const ktime_t cmp1, const ktime_t cmp2)
16{
17 if (cmp1 < cmp2) {
18 return -1;
19 } else if (cmp1 > cmp2) {
20 return 1;
21 } else {
22 return 0;
23 }
24}
25
26static inline bool ktime_after(const ktime_t cmp1, const ktime_t cmp2)
27{
28 return ktime_compare(cmp1, cmp2) > 0;
29}
30
31static inline bool ktime_before(const ktime_t cmp1, const ktime_t cmp2)
32{
33 return ktime_compare(cmp1, cmp2) < 0;
34}
35
36static inline s64 ktime_to_ns(const ktime_t kt)
37{
38 return vsf_systimer_tick_to_us(kt) * 1000;
39}
40
41static inline s64 ktime_to_us(const ktime_t kt)
42{
43 return vsf_systimer_tick_to_us(kt);
44}
45
46static inline s64 ktime_to_ms(const ktime_t kt)
47{
48 return vsf_systimer_tick_to_ms(kt);
49}
50
51static inline s64 ktime_us_delta(const ktime_t later, const ktime_t earlier)
52{
53 return ktime_to_us(ktime_sub(later, earlier));
54}
55
56static inline s64 ktime_ms_delta(const ktime_t later, const ktime_t earlier)
57{
58 return ktime_to_ms(ktime_sub(later, earlier));
59}
60
61static inline ktime_t ktime_add_us(const ktime_t kt, const u64 usec)
62{
63 return ktime_add_ns(kt, usec * NSEC_PER_USEC);
64}
65
66static inline ktime_t ktime_add_ms(const ktime_t kt, const u64 msec)
67{
68 return ktime_add_ns(kt, msec * NSEC_PER_MSEC);
69}
70
71static inline ktime_t ktime_sub_us(const ktime_t kt, const u64 usec)
72{
73 return ktime_sub_ns(kt, usec * NSEC_PER_USEC);
74}
75
76static inline ktime_t ktime_sub_ms(const ktime_t kt, const u64 msec)
77{
78 return ktime_sub_ns(kt, msec * NSEC_PER_MSEC);
79}
80
81static inline ktime_t us_to_ktime(u64 us)
82{
83 return vsf_systimer_us_to_tick(us);
84}
85
86static inline ktime_t ms_to_ktime(u64 ms)
87{
88 return vsf_systimer_ms_to_tick(ms);
89}
90
91static inline ktime_t ns_to_ktime(u64 ns)
92{
93 u64 us = ns / 1000;
94 if (!us) us++;
95 return us_to_ktime(us);
96}
#define ktime_add_ns(kt, nsval)
Definition ktime.h:12
#define ktime_sub_ns(kt, nsval)
Definition ktime.h:13
#define ktime_sub(lhs, rhs)
Definition ktime.h:9
#define NSEC_PER_SEC
Definition types.h:40
__u64 u64
Definition types.h:75
#define NSEC_PER_USEC
Definition types.h:37
__s64 s64
Definition types.h:76
#define NSEC_PER_MSEC
Definition types.h:38
signed long long ktime_t
Definition types.h:118
vsf_systimer_tick_t vsf_systimer_tick_to_us(vsf_systimer_tick_t tick)
Definition linux_generic.c:445
vsf_systimer_tick_t vsf_systimer_ms_to_tick(uint_fast32_t time_ms)
Definition linux_generic.c:440
vsf_systimer_tick_t vsf_systimer_us_to_tick(uint_fast32_t time_us)
Definition linux_generic.c:435
vsf_systimer_tick_t vsf_systimer_tick_to_ms(vsf_systimer_tick_t tick)
Definition linux_generic.c:450
Generated from commit: vsfteam/vsf@f33b89f