VSF Documented
hrtimer.h
Go to the documentation of this file.
1#include <linux/ktime.h>
2
3#include <kernel/vsf_kernel.h>
4
5#if VSF_KERNEL_CFG_EDA_SUPPORT_TIMER == ENABLED && VSF_KERNEL_CFG_SUPPORT_CALLBACK_TIMER == ENABLED
6
10};
11
15};
16
17struct hrtimer {
19 enum hrtimer_restart (*function)(struct hrtimer *);
20 struct hrtimer_clock_base *base;
23};
24
26
27static inline void hrtimer_init(struct hrtimer *timer, clockid_t clock_id, enum hrtimer_mode mode)
28{
29 memset(timer, 0, sizeof(*timer));
32}
33
34static inline int hrtimer_cancel(struct hrtimer *timer)
35{
37 return 0;
38}
39
40static inline int hrtimer_try_to_cancel(struct hrtimer *timer)
41{
42 return hrtimer_cancel(timer);
43}
44
45static inline ktime_t hrtimer_cb_get_time(const struct hrtimer *timer)
46{
47 return (ktime_t)vsf_systimer_get();
48}
49
50static inline u64 hrtimer_forward(struct hrtimer *timer, ktime_t now, ktime_t interval)
51{
52 timer->due = now + interval;
53 return 0;
54}
55
56static inline u64 hrtimer_forward_now(struct hrtimer *timer, ktime_t interval)
57{
58 return hrtimer_forward(timer, hrtimer_cb_get_time(timer), interval);
59}
60
61static void hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim, u64 range_ns, const enum hrtimer_mode mode)
62{
64 if (mode == HRTIMER_MODE_REL) {
66 } else {
67 due = (vsf_systimer_tick_t)tim;
68 }
70}
71
72static inline void hrtimer_start(struct hrtimer *timer, ktime_t tim, const enum hrtimer_mode mode)
73{
74 hrtimer_start_range_ns(timer, tim, 0, mode);
75}
76
77#endif
Definition vsf_eda.h:851
void(* on_timer)(vsf_callback_timer_t *timer)
Definition vsf_eda.h:854
uint64_t vsf_systimer_tick_t
Definition cortex_a_generic.h:73
hrtimer_mode
Definition hrtimer.h:12
@ HRTIMER_MODE_ABS
Definition hrtimer.h:14
@ HRTIMER_MODE_REL
Definition hrtimer.h:13
hrtimer_restart
Definition hrtimer.h:7
@ HRTIMER_RESTART
Definition hrtimer.h:9
@ HRTIMER_NORESTART
Definition hrtimer.h:8
void __hrtimer_on_timer(vsf_callback_timer_t *timer)
Definition vsf_linux.c:3371
__u64 u64
Definition types.h:75
clockid_t
Definition types.h:148
signed long long ktime_t
Definition types.h:118
vsf_systimer_tick_t vsf_systimer_get(void)
Definition linux_generic.c:402
uint8_t u8
Definition lvgl.h:40
Definition hrtimer.h:17
enum hrtimer_restart(* function)(struct hrtimer *)
Definition hrtimer.h:19
ktime_t due
Definition hrtimer.h:21
struct hrtimer_clock_base * base
Definition hrtimer.h:20
vsf_callback_timer_t callback_timer
Definition hrtimer.h:18
u8 state
Definition hrtimer.h:22
void * memset(void *s, int ch, size_t n)
void vsf_callback_timer_init(vsf_callback_timer_t *timer)
vsf_err_t vsf_callback_timer_add_due(vsf_callback_timer_t *timer, vsf_systimer_tick_t due)
vsf_err_t vsf_callback_timer_remove(vsf_callback_timer_t *timer)
Generated from commit: vsfteam/vsf@f33b89f