diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-03-05 11:51:25 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-03-05 11:51:25 +0100 |
commit | 7183f1cd8dd301101ad658d7c3276e67838e0f6e (patch) | |
tree | b339e989cddb13f03f1d7c1dda3e71baef77cf27 /cpukit | |
parent | score: Implement fine-grained locking for events (diff) | |
download | rtems-7183f1cd8dd301101ad658d7c3276e67838e0f6e.tar.bz2 |
score: Add compiler memory barrier to atomic ops
Diffstat (limited to 'cpukit')
-rw-r--r-- | cpukit/score/include/rtems/score/cpustdatomic.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/cpukit/score/include/rtems/score/cpustdatomic.h b/cpukit/score/include/rtems/score/cpustdatomic.h index 87ce129307..3f7c14f320 100644 --- a/cpukit/score/include/rtems/score/cpustdatomic.h +++ b/cpukit/score/include/rtems/score/cpustdatomic.h @@ -179,6 +179,7 @@ static inline unsigned int _CPU_atomic_Load_uint( const CPU_atomic_Uint *obj, CP return atomic_load_explicit( obj, order ); #else (void) order; + RTEMS_COMPILER_MEMORY_BARRIER(); return *obj; #endif } @@ -191,6 +192,7 @@ static inline unsigned long _CPU_atomic_Load_ulong( const CPU_atomic_Ulong *obj, return atomic_load_explicit( obj, order ); #else (void) order; + RTEMS_COMPILER_MEMORY_BARRIER(); return *obj; #endif } @@ -203,6 +205,7 @@ static inline void *_CPU_atomic_Load_ptr( const CPU_atomic_Pointer *obj, CPU_ato return (void *) atomic_load_explicit( obj, order ); #else (void) order; + RTEMS_COMPILER_MEMORY_BARRIER(); return (void *) *obj; #endif } @@ -216,6 +219,7 @@ static inline void _CPU_atomic_Store_uint( CPU_atomic_Uint *obj, unsigned int de #else (void) order; *obj = desired; + RTEMS_COMPILER_MEMORY_BARRIER(); #endif } @@ -228,6 +232,7 @@ static inline void _CPU_atomic_Store_ulong( CPU_atomic_Ulong *obj, unsigned long #else (void) order; *obj = desired; + RTEMS_COMPILER_MEMORY_BARRIER(); #endif } @@ -240,6 +245,7 @@ static inline void _CPU_atomic_Store_ptr( CPU_atomic_Pointer *obj, void *desired #else (void) order; *obj = (uintptr_t) desired; + RTEMS_COMPILER_MEMORY_BARRIER(); #endif } |