1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2015 RehiveTech. All rights reserved.
5 #ifndef _RTE_ATOMIC_ARM32_H_
6 #define _RTE_ATOMIC_ARM32_H_
8 #ifndef RTE_FORCE_INTRINSICS
9 # error Platform must be built with CONFIG_RTE_FORCE_INTRINSICS
16 #include "generic/rte_atomic.h"
18 #define rte_mb() __sync_synchronize()
20 #define rte_wmb() do { asm volatile ("dmb st" : : : "memory"); } while (0)
22 #define rte_rmb() __sync_synchronize()
24 #define rte_smp_mb() rte_mb()
26 #define rte_smp_wmb() rte_wmb()
28 #define rte_smp_rmb() rte_rmb()
30 #define rte_io_mb() rte_mb()
32 #define rte_io_wmb() rte_wmb()
34 #define rte_io_rmb() rte_rmb()
36 #define rte_cio_wmb() rte_wmb()
38 #define rte_cio_rmb() rte_rmb()
44 #endif /* _RTE_ATOMIC_ARM32_H_ */