Line data Source code
1 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 0 : extern uint32_t sys_clock_cycle_get_32(void);
24 :
25 0 : static inline uint32_t arch_k_cycle_get_32(void)
26 : {
27 : return sys_clock_cycle_get_32();
28 : }
29 :
30 0 : extern uint64_t sys_clock_cycle_get_64(void);
31 :
32 0 : static inline uint64_t arch_k_cycle_get_64(void)
33 : {
34 : return sys_clock_cycle_get_64();
35 : }
36 :
37 0 : 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_ */
|