xref: /wlan-dirver/qca-wifi-host-cmn/qdf/linux/src/qdf_hrtimer.c (revision 2f4b444fb7e689b83a4ab0e7b3b38f0bf4def8e0)
1 /*
2  * Copyright (c) 2021 The Linux Foundation. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for
5  * any purpose with or without fee is hereby granted, provided that the
6  * above copyright notice and this permission notice appear in all
7  * copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16  * PERFORMANCE OF THIS SOFTWARE.
17  */
18 
19 /**
20  * DOC: qdf_hrtimer
21  * QCA driver framework (QDF) high resolution timers timer APIs
22  */
23 
24 #include "i_qdf_hrtimer.h"
25 #include "qdf_hrtimer.h"
26 #include <qdf_module.h>
27 
28 void qdf_hrtimer_start(qdf_hrtimer_data_t *timer, qdf_ktime_t interval,
29 		       enum qdf_hrtimer_mode mode)
30 {
31 	__qdf_hrtimer_start(timer, interval, mode);
32 }
33 
34 qdf_export_symbol(qdf_hrtimer_start);
35 
36 int qdf_hrtimer_cancel(qdf_hrtimer_data_t *timer)
37 {
38 	return __qdf_hrtimer_cancel(timer);
39 }
40 
41 qdf_export_symbol(qdf_hrtimer_cancel);
42 
43 void qdf_hrtimer_init(qdf_hrtimer_data_t *timer,
44 		      qdf_hrtimer_func_t callback,
45 		      enum qdf_clock_id clock,
46 		      enum qdf_hrtimer_mode mode,
47 		      enum qdf_context_mode ctx)
48 {
49 	__qdf_hrtimer_init(timer, callback, clock, mode, ctx);
50 }
51 
52 qdf_export_symbol(qdf_hrtimer_init);
53 
54 void qdf_hrtimer_kill(qdf_hrtimer_data_t *timer)
55 {
56 	__qdf_hrtimer_kill(timer);
57 }
58 
59 qdf_export_symbol(qdf_hrtimer_kill);
60 
61 qdf_ktime_t qdf_hrtimer_get_remaining(qdf_hrtimer_data_t *timer)
62 {
63 	return __qdf_hrtimer_get_remaining(timer);
64 }
65 
66 qdf_export_symbol(qdf_hrtimer_get_remaining);
67 
68 bool qdf_hrtimer_is_queued(qdf_hrtimer_data_t *timer)
69 {
70 	return __qdf_hrtimer_is_queued(timer);
71 }
72 
73 qdf_export_symbol(qdf_hrtimer_is_queued);
74 
75 bool qdf_hrtimer_callback_running(qdf_hrtimer_data_t *timer)
76 {
77 	return __qdf_hrtimer_callback_running(timer);
78 }
79 
80 qdf_export_symbol(qdf_hrtimer_callback_running);
81 
82 bool qdf_hrtimer_active(qdf_hrtimer_data_t *timer)
83 {
84 	return __qdf_hrtimer_active(timer);
85 }
86 
87 qdf_export_symbol(qdf_hrtimer_active);
88 
89 qdf_ktime_t qdf_hrtimer_cb_get_time(qdf_hrtimer_data_t *timer)
90 {
91 	return __qdf_hrtimer_cb_get_time(timer);
92 }
93 
94 qdf_export_symbol(qdf_hrtimer_cb_get_time);
95 
96 uint64_t qdf_hrtimer_forward(qdf_hrtimer_data_t *timer,
97 			     qdf_ktime_t now,
98 			     qdf_ktime_t interval)
99 {
100 	return __qdf_hrtimer_forward(timer, now, interval);
101 }
102 
103 qdf_export_symbol(qdf_hrtimer_forward);
104