From 1a246d7e059cd8cde810045553343fb835bb30c9 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 22 Aug 2013 13:19:06 +0200 Subject: [PATCH] arm: Make barrier operations more visible --- cpukit/score/cpu/arm/rtems/score/cpu.h | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/cpukit/score/cpu/arm/rtems/score/cpu.h b/cpukit/score/cpu/arm/rtems/score/cpu.h index a11de9a4c9..205e41fd67 100644 --- a/cpukit/score/cpu/arm/rtems/score/cpu.h +++ b/cpukit/score/cpu/arm/rtems/score/cpu.h @@ -285,6 +285,21 @@ typedef struct { extern uint32_t arm_cpu_mode; +static inline void _ARM_Data_memory_barrier( void ) +{ + __asm__ volatile ( "dmb" : : : "memory" ); +} + +static inline void _ARM_Data_synchronization_barrier( void ) +{ + __asm__ volatile ( "dsb" : : : "memory" ); +} + +static inline void _ARM_Instruction_synchronization_barrier( void ) +{ + __asm__ volatile ( "isb" : : : "memory" ); +} + static inline uint32_t arm_interrupt_disable( void ) { uint32_t level; @@ -465,16 +480,6 @@ void _CPU_Context_validate( uintptr_t pattern ); void _CPU_SMP_Send_interrupt( uint32_t target_processor_index ); - static inline void _ARM_Data_memory_barrier( void ) - { - __asm__ volatile ( "dmb" : : : "memory" ); - } - - static inline void _ARM_Data_synchronization_barrier( void ) - { - __asm__ volatile ( "dsb" : : : "memory" ); - } - static inline void _ARM_Send_event( void ) { __asm__ volatile ( "sev" : : : "memory" );