1 /**
2  * Copyright (c) 2023 Carlo Caione <ccaione@baylibre.com>
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 #ifndef ZEPHYR_INCLUDE_BARRIER_ARM_H_
7 #define ZEPHYR_INCLUDE_BARRIER_ARM_H_
8 
9 #ifndef ZEPHYR_INCLUDE_SYS_BARRIER_H_
10 #error Please include <zephyr/sys/barrier.h>
11 #endif
12 
13 #include <cmsis_core.h>
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
z_barrier_dmem_fence_full(void)19 static ALWAYS_INLINE void z_barrier_dmem_fence_full(void)
20 {
21 	__DMB();
22 }
23 
z_barrier_dsync_fence_full(void)24 static ALWAYS_INLINE void z_barrier_dsync_fence_full(void)
25 {
26 	__DSB();
27 }
28 
z_barrier_isync_fence_full(void)29 static ALWAYS_INLINE void z_barrier_isync_fence_full(void)
30 {
31 	__ISB();
32 }
33 
34 #ifdef __cplusplus
35 }
36 #endif
37 
38 #endif /* ZEPHYR_INCLUDE_BARRIER_ARM_H_ */
39