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