arm/atomics: Move cpu-specific memory barriers to arch_cpu
* Now matches the rest of the architectures. Change-Id: I6699e0c8f729923770f136f2c9599185a685336a Reviewed-on: https://review.haiku-os.org/c/1527 Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com> Reviewed-by: Adrien Destugues <pulkomandy@gmail.com> Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
This commit is contained in:
parent
37761761a0
commit
b313d63eae
@ -9,23 +9,7 @@
|
|||||||
#define _KERNEL_ARCH_ARM_ATOMIC_H
|
#define _KERNEL_ARCH_ARM_ATOMIC_H
|
||||||
|
|
||||||
|
|
||||||
#if __ARM_ARCH__ <= 5
|
#include <arch_cpu.h>
|
||||||
#define isb() __asm__ __volatile__("" : : : "memory")
|
|
||||||
#define dsb() __asm__ __volatile__("mcr p15, 0, %0, c7, c10, 4" \
|
|
||||||
: : "r" (0) : "memory")
|
|
||||||
#define dmb() __asm__ __volatile__("" : : : "memory")
|
|
||||||
#elif __ARM_ARCH__ == 6
|
|
||||||
#define isb() __asm__ __volatile__("mcr p15, 0, %0, c7, c5, 4" \
|
|
||||||
: : "r" (0) : "memory")
|
|
||||||
#define dsb() __asm__ __volatile__("mcr p15, 0, %0, c7, c10, 4" \
|
|
||||||
: : "r" (0) : "memory")
|
|
||||||
#define dmb() __asm__ __volatile__("mcr p15, 0, %0, c7, c10, 5" \
|
|
||||||
: : "r" (0) : "memory")
|
|
||||||
#else /* ARMv7+ */
|
|
||||||
#define isb() __asm__ __volatile__("isb" : : : "memory")
|
|
||||||
#define dsb() __asm__ __volatile__("dsb" : : : "memory")
|
|
||||||
#define dmb() __asm__ __volatile__("dmb" : : : "memory")
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
|
@ -11,6 +11,24 @@
|
|||||||
// TODO: Could be 32-bits sometimes?
|
// TODO: Could be 32-bits sometimes?
|
||||||
|
|
||||||
|
|
||||||
|
#if __ARM_ARCH__ <= 5
|
||||||
|
#define isb() __asm__ __volatile__("" : : : "memory")
|
||||||
|
#define dsb() __asm__ __volatile__("mcr p15, 0, %0, c7, c10, 4" \
|
||||||
|
: : "r" (0) : "memory")
|
||||||
|
#define dmb() __asm__ __volatile__("" : : : "memory")
|
||||||
|
#elif __ARM_ARCH__ == 6
|
||||||
|
#define isb() __asm__ __volatile__("mcr p15, 0, %0, c7, c5, 4" \
|
||||||
|
: : "r" (0) : "memory")
|
||||||
|
#define dsb() __asm__ __volatile__("mcr p15, 0, %0, c7, c10, 4" \
|
||||||
|
: : "r" (0) : "memory")
|
||||||
|
#define dmb() __asm__ __volatile__("mcr p15, 0, %0, c7, c10, 5" \
|
||||||
|
: : "r" (0) : "memory")
|
||||||
|
#else /* ARMv7+ */
|
||||||
|
#define isb() __asm__ __volatile__("isb" : : : "memory")
|
||||||
|
#define dsb() __asm__ __volatile__("dsb" : : : "memory")
|
||||||
|
#define dmb() __asm__ __volatile__("dmb" : : : "memory")
|
||||||
|
#endif
|
||||||
|
|
||||||
#define set_ac()
|
#define set_ac()
|
||||||
#define clear_ac()
|
#define clear_ac()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user