1 // © 2021 Qualcomm Innovation Center, Inc. All rights reserved.
2 //
3 // SPDX-License-Identifier: BSD-3-Clause
4 
5 void
6 arm_vm_timer_init(arm_vm_timer_type_t tt);
7 
8 bool
9 arm_vm_timer_get_is_expired(arm_vm_timer_type_t tt);
10 
11 bool
12 arm_vm_timer_is_irq_enabled(arm_vm_timer_type_t tt);
13 
14 bool
15 arm_vm_timer_is_irq_pending(arm_vm_timer_type_t tt);
16 
17 void
18 arm_vm_timer_load_state(thread_t *thread);
19 
20 void
21 arm_vm_timer_cancel_timeout(arm_vm_timer_type_t tt);
22 
23 uint32_t
24 arm_vm_timer_get_freqeuncy(void);
25 
26 ticks_t
27 arm_vm_timer_get_ticks(void);
28 
29 ticks_t
30 arm_vm_timer_get_timeout(arm_vm_timer_type_t tt);
31 
32 // Checks the timer control register in a thread's saved context.
33 // Returns true if the timer is enabled and its interrupt is not masked.
34 bool
35 arm_vm_timer_is_irq_enabled_thread(thread_t *thread, arm_vm_timer_type_t tt);
36 
37 ticks_t
38 arm_vm_timer_get_timeout_thread(thread_t *thread, arm_vm_timer_type_t tt);
39 
40 void
41 arm_vm_timer_arch_timer_hw_irq_activated(arm_vm_timer_type_t tt)
42 	REQUIRE_PREEMPT_DISABLED;
43 
44 void
45 arm_vm_timer_arch_timer_hw_irq_deactivate(arm_vm_timer_type_t tt)
46 	REQUIRE_PREEMPT_DISABLED;
47