summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/arm/rtems/score/cpu.h
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-08-22 13:19:06 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-08-22 14:20:35 +0200
commit1a246d7e059cd8cde810045553343fb835bb30c9 (patch)
tree19c73a651152262ce16f8e9aacd41ae9a76db695 /cpukit/score/cpu/arm/rtems/score/cpu.h
parentdosfs: Use unprotected chain operations (diff)
downloadrtems-1a246d7e059cd8cde810045553343fb835bb30c9.tar.bz2
arm: Make barrier operations more visible
Diffstat (limited to 'cpukit/score/cpu/arm/rtems/score/cpu.h')
-rw-r--r--cpukit/score/cpu/arm/rtems/score/cpu.h25
1 files 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" );