From 4c96372591ebd02dd6c0f612d29b915ba99d3747 Mon Sep 17 00:00:00 2001 From: WeiY Date: Sat, 26 Jan 2013 00:34:57 +0800 Subject: score: atomic support for RTEMS. Cleanup. --- cpukit/score/inline/rtems/score/atomic.inl | 156 ++++++++++++++--------------- 1 file changed, 74 insertions(+), 82 deletions(-) (limited to 'cpukit/score/inline/rtems/score') diff --git a/cpukit/score/inline/rtems/score/atomic.inl b/cpukit/score/inline/rtems/score/atomic.inl index 7deec01729..313366c79f 100644 --- a/cpukit/score/inline/rtems/score/atomic.inl +++ b/cpukit/score/inline/rtems/score/atomic.inl @@ -6,7 +6,9 @@ * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at * http://www.rtems.com/license/LICENSE. - * + */ + +/* * * The functions in this file implement the API to the RTEMS Atomic Manager and * The API is designed to be compatable with C1X atomic definition as far as @@ -16,8 +18,8 @@ * * rtems/cpukit/score/cpu/xxx/rtems/score/cpuatomic.h * - * In the event that a CPU does not support a specific atomic function it has, the - * CPU dependent routine does nothing (but does exist). + * In the event that a CPU does not support a specific atomic function it has, + * the CPU dependent routine does nothing (but does exist). */ #ifndef _RTEMS_SCORE_ATOMIC_H @@ -36,8 +38,7 @@ RTEMS_INLINE_ROUTINE Atomic_Int _Atomic_Load_int( { if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Load_acq_int(address); - else - return _CPU_Atomic_Load_int(address); + return _CPU_Atomic_Load_int(address); } RTEMS_INLINE_ROUTINE Atomic_Long _Atomic_Load_long( @@ -45,10 +46,9 @@ RTEMS_INLINE_ROUTINE Atomic_Long _Atomic_Load_long( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Load_acq_long(address); - else - return _CPU_Atomic_Load_long(address); + return _CPU_Atomic_Load_long(address); } RTEMS_INLINE_ROUTINE Atomic_Pointer _Atomic_Load_ptr( @@ -56,10 +56,9 @@ RTEMS_INLINE_ROUTINE Atomic_Pointer _Atomic_Load_ptr( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Load_acq_ptr(address); - else - return _CPU_Atomic_Load_ptr(address); + return _CPU_Atomic_Load_ptr(address); } RTEMS_INLINE_ROUTINE Atomic_Int32 _Atomic_Load_32( @@ -67,10 +66,9 @@ RTEMS_INLINE_ROUTINE Atomic_Int32 _Atomic_Load_32( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Load_acq_32(address); - else - return _CPU_Atomic_Load_32(address); + return _CPU_Atomic_Load_32(address); } RTEMS_INLINE_ROUTINE Atomic_Int64 _Atomic_Load_64( @@ -78,10 +76,9 @@ RTEMS_INLINE_ROUTINE Atomic_Int64 _Atomic_Load_64( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Load_acq_64(address); - else - return _CPU_Atomic_Load_64(address); + return _CPU_Atomic_Load_64(address); } @@ -91,10 +88,9 @@ RTEMS_INLINE_ROUTINE void _Atomic_Store_int( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_RELEASE_BARRIER == memory_barrier) + if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Store_rel_int(address, value); - else - return _CPU_Atomic_Store_int(address, value); + return _CPU_Atomic_Store_int(address, value); } RTEMS_INLINE_ROUTINE void _Atomic_Store_long( @@ -103,10 +99,9 @@ RTEMS_INLINE_ROUTINE void _Atomic_Store_long( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_RELEASE_BARRIER == memory_barrier) + if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Store_rel_long(address, value); - else - return _CPU_Atomic_Store_long(address, value); + return _CPU_Atomic_Store_long(address, value); } RTEMS_INLINE_ROUTINE void _Atomic_Store_ptr( @@ -115,10 +110,9 @@ RTEMS_INLINE_ROUTINE void _Atomic_Store_ptr( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_RELEASE_BARRIER == memory_barrier) + if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Store_rel_ptr(address, value); - else - return _CPU_Atomic_Store_ptr(address, value); + return _CPU_Atomic_Store_ptr(address, value); } RTEMS_INLINE_ROUTINE void _Atomic_Store_32( @@ -127,10 +121,9 @@ RTEMS_INLINE_ROUTINE void _Atomic_Store_32( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_RELEASE_BARRIER == memory_barrier) + if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Store_rel_32(address, value); - else - return _CPU_Atomic_Store_32(address, value); + return _CPU_Atomic_Store_32(address, value); } RTEMS_INLINE_ROUTINE void _Atomic_Store_64( @@ -139,10 +132,9 @@ RTEMS_INLINE_ROUTINE void _Atomic_Store_64( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_RELEASE_BARRIER == memory_barrier) + if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Store_rel_64(address, value); - else - return _CPU_Atomic_Store_64(address, value); + return _CPU_Atomic_Store_64(address, value); } RTEMS_INLINE_ROUTINE void _Atomic_Fetch_add_int( @@ -151,9 +143,9 @@ RTEMS_INLINE_ROUTINE void _Atomic_Fetch_add_int( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_add_acq_int(address, value); - else if(ATOMIC_RELEASE_BARRIER == memory_barrier) + else if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_add_rel_int(address, value); else return _CPU_Atomic_Fetch_add_int(address, value); @@ -165,9 +157,9 @@ RTEMS_INLINE_ROUTINE void _Atomic_Fetch_add_long( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_add_acq_long(address, value); - else if(ATOMIC_RELEASE_BARRIER == memory_barrier) + else if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_add_rel_long(address, value); else return _CPU_Atomic_Fetch_add_long(address, value); @@ -179,9 +171,9 @@ RTEMS_INLINE_ROUTINE void _Atomic_Fetch_add_ptr( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_add_acq_ptr(address, value); - else if(ATOMIC_RELEASE_BARRIER == memory_barrier) + else if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_add_rel_ptr(address, value); else return _CPU_Atomic_Fetch_add_ptr(address, value); @@ -193,9 +185,9 @@ RTEMS_INLINE_ROUTINE void _Atomic_Fetch_add_32( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_add_acq_32(address, value); - else if(ATOMIC_RELEASE_BARRIER == memory_barrier) + else if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_add_rel_32(address, value); else return _CPU_Atomic_Fetch_add_32(address, value); @@ -207,9 +199,9 @@ RTEMS_INLINE_ROUTINE void _Atomic_Fetch_add_64( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_add_acq_64(address, value); - else if(ATOMIC_RELEASE_BARRIER == memory_barrier) + else if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_add_rel_64(address, value); else return _CPU_Atomic_Fetch_add_64(address, value); @@ -221,9 +213,9 @@ RTEMS_INLINE_ROUTINE void _Atomic_Fetch_sub_int( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_sub_acq_int(address, value); - else if(ATOMIC_RELEASE_BARRIER == memory_barrier) + else if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_sub_rel_int(address, value); else return _CPU_Atomic_Fetch_sub_int(address, value); @@ -235,9 +227,9 @@ RTEMS_INLINE_ROUTINE void _Atomic_Fetch_sub_long( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_sub_acq_long(address, value); - else if(ATOMIC_RELEASE_BARRIER == memory_barrier) + else if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_sub_rel_long(address, value); else return _CPU_Atomic_Fetch_sub_long(address, value); @@ -249,9 +241,9 @@ RTEMS_INLINE_ROUTINE void _Atomic_Fetch_sub_ptr( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_sub_acq_ptr(address, value); - else if(ATOMIC_RELEASE_BARRIER == memory_barrier) + else if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_sub_rel_ptr(address, value); else return _CPU_Atomic_Fetch_sub_ptr(address, value); @@ -263,9 +255,9 @@ RTEMS_INLINE_ROUTINE void _Atomic_Fetch_sub_32( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_sub_acq_32(address, value); - else if(ATOMIC_RELEASE_BARRIER == memory_barrier) + else if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_sub_rel_32(address, value); else return _CPU_Atomic_Fetch_sub_32(address, value); @@ -277,9 +269,9 @@ RTEMS_INLINE_ROUTINE void _Atomic_Fetch_sub_64( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_sub_acq_64(address, value); - else if(ATOMIC_RELEASE_BARRIER == memory_barrier) + else if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_sub_rel_64(address, value); else return _CPU_Atomic_Fetch_sub_64(address, value); @@ -291,9 +283,9 @@ RTEMS_INLINE_ROUTINE void _Atomic_Fetch_or_int( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_or_acq_int(address, value); - else if(ATOMIC_RELEASE_BARRIER == memory_barrier) + else if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_or_rel_int(address, value); else return _CPU_Atomic_Fetch_or_int(address, value); @@ -305,9 +297,9 @@ RTEMS_INLINE_ROUTINE void _Atomic_Fetch_or_long( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_or_acq_long(address, value); - else if(ATOMIC_RELEASE_BARRIER == memory_barrier) + else if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_or_rel_long(address, value); else return _CPU_Atomic_Fetch_or_long(address, value); @@ -319,9 +311,9 @@ RTEMS_INLINE_ROUTINE void _Atomic_Fetch_or_ptr( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_or_acq_ptr(address, value); - else if(ATOMIC_RELEASE_BARRIER == memory_barrier) + else if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_or_rel_ptr(address, value); else return _CPU_Atomic_Fetch_or_ptr(address, value); @@ -333,9 +325,9 @@ RTEMS_INLINE_ROUTINE void _Atomic_Fetch_or_32( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_or_acq_32(address, value); - else if(ATOMIC_RELEASE_BARRIER == memory_barrier) + else if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_or_rel_32(address, value); else return _CPU_Atomic_Fetch_or_32(address, value); @@ -347,9 +339,9 @@ RTEMS_INLINE_ROUTINE void _Atomic_Fetch_or_64( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_or_acq_64(address, value); - else if(ATOMIC_RELEASE_BARRIER == memory_barrier) + else if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_or_rel_64(address, value); else return _CPU_Atomic_Fetch_or_64(address, value); @@ -361,9 +353,9 @@ RTEMS_INLINE_ROUTINE void _Atomic_Fetch_and_int( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_and_acq_int(address, value); - else if(ATOMIC_RELEASE_BARRIER == memory_barrier) + else if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_and_rel_int(address, value); else return _CPU_Atomic_Fetch_and_int(address, value); @@ -375,9 +367,9 @@ RTEMS_INLINE_ROUTINE void _Atomic_Fetch_and_long( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_and_acq_long(address, value); - else if(ATOMIC_RELEASE_BARRIER == memory_barrier) + else if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_and_rel_long(address, value); else return _CPU_Atomic_Fetch_and_long(address, value); @@ -389,9 +381,9 @@ RTEMS_INLINE_ROUTINE void _Atomic_Fetch_and_ptr( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_and_acq_ptr(address, value); - else if(ATOMIC_RELEASE_BARRIER == memory_barrier) + else if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_and_rel_ptr(address, value); else return _CPU_Atomic_Fetch_and_ptr(address, value); @@ -403,9 +395,9 @@ RTEMS_INLINE_ROUTINE void _Atomic_Fetch_and_32( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_and_acq_32(address, value); - else if(ATOMIC_RELEASE_BARRIER == memory_barrier) + else if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_and_rel_32(address, value); else return _CPU_Atomic_Fetch_and_32(address, value); @@ -417,9 +409,9 @@ RTEMS_INLINE_ROUTINE void _Atomic_Fetch_and_64( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_and_acq_64(address, value); - else if(ATOMIC_RELEASE_BARRIER == memory_barrier) + else if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Fetch_and_rel_64(address, value); else return _CPU_Atomic_Fetch_and_64(address, value); @@ -432,9 +424,9 @@ RTEMS_INLINE_ROUTINE int _Atomic_Compare_exchange_int( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Compare_exchange_acq_int(address, old_value, new_value); - else if(ATOMIC_RELEASE_BARRIER == memory_barrier) + else if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Compare_exchange_rel_int(address, old_value, new_value); else return _CPU_Atomic_Compare_exchange_int(address, old_value, new_value); @@ -447,9 +439,9 @@ RTEMS_INLINE_ROUTINE int _Atomic_Compare_exchange_long( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Compare_exchange_acq_long(address, old_value, new_value); - else if(ATOMIC_RELEASE_BARRIER == memory_barrier) + else if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Compare_exchange_rel_long(address, old_value, new_value); else return _CPU_Atomic_Compare_exchange_long(address, old_value, new_value); @@ -462,9 +454,9 @@ RTEMS_INLINE_ROUTINE int _Atomic_Compare_exchange_ptr( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Compare_exchange_acq_ptr(address, old_value, new_value); - else if(ATOMIC_RELEASE_BARRIER == memory_barrier) + else if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Compare_exchange_rel_ptr(address, old_value, new_value); else return _CPU_Atomic_Compare_exchange_ptr(address, old_value, new_value); @@ -477,9 +469,9 @@ RTEMS_INLINE_ROUTINE int _Atomic_Compare_exchange_32( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Compare_exchange_acq_32(address, old_value, new_value); - else if(ATOMIC_RELEASE_BARRIER == memory_barrier) + else if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Compare_exchange_rel_32(address, old_value, new_value); else return _CPU_Atomic_Compare_exchange_32(address, old_value, new_value); @@ -492,9 +484,9 @@ RTEMS_INLINE_ROUTINE int _Atomic_Compare_exchange_64( Atomic_Memory_barrier memory_barrier ) { - if(ATOMIC_ACQUIRE_BARRIER == memory_barrier) + if (ATOMIC_ACQUIRE_BARRIER == memory_barrier) return _CPU_Atomic_Compare_exchange_acq_64(address, old_value, new_value); - else if(ATOMIC_RELEASE_BARRIER == memory_barrier) + else if (ATOMIC_RELEASE_BARRIER == memory_barrier) return _CPU_Atomic_Compare_exchange_rel_64(address, old_value, new_value); else return _CPU_Atomic_Compare_exchange_64(address, old_value, new_value); -- cgit v1.2.3