diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-03-06 13:20:44 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-03-06 13:20:44 +0100 |
commit | da06fe948c0878057e5f563ebd3dfe40c0f1b0d2 (patch) | |
tree | 1cdcc2be8050fe8584d49bd92c36d76b2a4c5620 /cpukit/score/include/rtems/score/cpustdatomic.h | |
parent | bsps: Use interrupt lock for interrupt server (diff) | |
download | rtems-da06fe948c0878057e5f563ebd3dfe40c0f1b0d2.tar.bz2 |
score: Fix SMP lock implementation
See also:
https://nahratzah.wordpress.com/2012/10/12/a-trivial-fair-spinlock/
http://concurrencyfreaks.blogspot.de/2014/05/relaxed-atomics-optimizations-for.html
Diffstat (limited to 'cpukit/score/include/rtems/score/cpustdatomic.h')
-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 3f7c14f320..d27c75f381 100644 --- a/cpukit/score/include/rtems/score/cpustdatomic.h +++ b/cpukit/score/include/rtems/score/cpustdatomic.h @@ -56,6 +56,8 @@ typedef std::memory_order CPU_atomic_Order; #define CPU_ATOMIC_ORDER_RELEASE std::memory_order_release +#define CPU_ATOMIC_ORDER_ACQ_REL std::memory_order_acq_rel + #define CPU_ATOMIC_ORDER_SEQ_CST std::memory_order_seq_cst #define CPU_ATOMIC_INITIALIZER_UINT( value ) ATOMIC_VAR_INIT( value ) @@ -85,6 +87,8 @@ typedef memory_order CPU_atomic_Order; #define CPU_ATOMIC_ORDER_RELEASE memory_order_release +#define CPU_ATOMIC_ORDER_ACQ_REL memory_order_acq_rel + #define CPU_ATOMIC_ORDER_SEQ_CST memory_order_seq_cst #define CPU_ATOMIC_INITIALIZER_UINT( value ) ATOMIC_VAR_INIT( value ) @@ -114,6 +118,8 @@ typedef int CPU_atomic_Order; #define CPU_ATOMIC_ORDER_RELEASE 3 +#define CPU_ATOMIC_ORDER_ACQ_REL 4 + #define CPU_ATOMIC_ORDER_SEQ_CST 5 #define CPU_ATOMIC_INITIALIZER_UINT( value ) ( value ) |