X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;ds=sidebyside;f=urcu%2Fuatomic%2Fgeneric.h;h=bf7cc6aa05172b5072368ae381d60fc1aa31a6d3;hb=92cfe223501f564d3bd726a6c580702daeef4198;hp=4a5705198b1a81fa48713b41c743a10c2feedd22;hpb=e6e5957d053147ab7d31517efb91e246e64b2927;p=urcu.git diff --git a/urcu/uatomic/generic.h b/urcu/uatomic/generic.h index 4a57051..bf7cc6a 100644 --- a/urcu/uatomic/generic.h +++ b/urcu/uatomic/generic.h @@ -98,20 +98,23 @@ void _uatomic_and(void *addr, unsigned long val, #ifdef UATOMIC_HAS_ATOMIC_BYTE case 1: __sync_and_and_fetch_1(addr, val); + return; #endif #ifdef UATOMIC_HAS_ATOMIC_SHORT case 2: __sync_and_and_fetch_2(addr, val); + return; #endif case 4: __sync_and_and_fetch_4(addr, val); + return; #if (CAA_BITS_PER_LONG == 64) case 8: __sync_and_and_fetch_8(addr, val); + return; #endif } _uatomic_link_error(); - return 0; } #define uatomic_and(addr, v) \ @@ -131,20 +134,24 @@ void _uatomic_or(void *addr, unsigned long val, #ifdef UATOMIC_HAS_ATOMIC_BYTE case 1: __sync_or_and_fetch_1(addr, val); + return; #endif #ifdef UATOMIC_HAS_ATOMIC_SHORT case 2: __sync_or_and_fetch_2(addr, val); + return; #endif case 4: __sync_or_and_fetch_4(addr, val); + return; #if (CAA_BITS_PER_LONG == 64) case 8: __sync_or_and_fetch_8(addr, val); + return; #endif } _uatomic_link_error(); - return 0; + return; } #define uatomic_or(addr, v) \ @@ -316,7 +323,7 @@ void _uatomic_and(void *addr, unsigned long val, int len) } #define uatomic_and(addr, v) \ - (uatomic_and((addr), \ + (_uatomic_and((addr), \ (unsigned long)(v), \ sizeof(*(addr)))) #endif /* #ifndef uatomic_and */ @@ -387,9 +394,9 @@ void _uatomic_or(void *addr, unsigned long val, int len) } #define uatomic_or(addr, v) \ - (uatomic_or((addr), \ - (unsigned long)(v), \ - sizeof(*(addr)))) + (_uatomic_or((addr), \ + (unsigned long)(v),\ + sizeof(*(addr)))) #endif /* #ifndef uatomic_or */ #ifndef uatomic_add_return