1 /*
2  * Copyright (c) 2019 Carlo Caione <ccaione@baylibre.com>
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 /**
8  * @file
9  * @brief Cortex-A public kernel miscellaneous
10  *
11  * ARM64-specific kernel miscellaneous interface. Included by
12  * arm64/arch.h.
13  */
14 
15 #ifndef ZEPHYR_INCLUDE_ARCH_ARM64_MISC_H_
16 #define ZEPHYR_INCLUDE_ARCH_ARM64_MISC_H_
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22 #ifndef _ASMLANGUAGE
23 extern uint32_t sys_clock_cycle_get_32(void);
24 
arch_k_cycle_get_32(void)25 static inline uint32_t arch_k_cycle_get_32(void)
26 {
27 	return sys_clock_cycle_get_32();
28 }
29 
30 extern uint64_t sys_clock_cycle_get_64(void);
31 
arch_k_cycle_get_64(void)32 static inline uint64_t arch_k_cycle_get_64(void)
33 {
34 	return sys_clock_cycle_get_64();
35 }
36 
arch_nop(void)37 static ALWAYS_INLINE void arch_nop(void)
38 {
39 	__asm__ volatile("nop");
40 }
41 
42 #endif
43 
44 #ifdef __cplusplus
45 }
46 #endif
47 
48 #endif /* ZEPHYR_INCLUDE_ARCH_ARM64_MISC_H_ */
49