X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=urcu%2Fuatomic_arch_ppc.h;h=08a622dfe6f93cd547b0684ebfd398bf9284fe92;hb=58de5a4bc81e0b64f4fbd46973b5c8b0cd06cda6;hp=40de9ff9909dc10327bb75e29aca9e33f7743f41;hpb=48d848c7291ec22da6258ac03cd9c1dafec1fdfb;p=urcu.git diff --git a/urcu/uatomic_arch_ppc.h b/urcu/uatomic_arch_ppc.h index 40de9ff..08a622d 100644 --- a/urcu/uatomic_arch_ppc.h +++ b/urcu/uatomic_arch_ppc.h @@ -21,6 +21,7 @@ */ #include +#include #ifndef __SIZEOF_LONG__ #ifdef __powerpc64__ @@ -36,12 +37,8 @@ #define ILLEGAL_INSTR ".long 0xd00d00" -#define uatomic_set(addr, v) \ -do { \ - ACCESS_ONCE(*(addr)) = (v); \ -} while (0) - -#define uatomic_read(addr) ACCESS_ONCE(*(addr)) +#define uatomic_set(addr, v) STORE_SHARED(*(addr), (v)) +#define uatomic_read(addr) LOAD_SHARED(*(addr)) /* * Using a isync as second barrier for exchange to provide acquire semantic. @@ -228,4 +225,7 @@ unsigned long _uatomic_add_return(void *addr, unsigned long val, #define uatomic_inc(addr) uatomic_add((addr), 1) #define uatomic_dec(addr) uatomic_add((addr), -1) +#define URCU_CAS_AVAIL() 1 +#define compat_uatomic_cmpxchg(ptr, old, _new) uatomic_cmpxchg(ptr, old, _new) + #endif /* _URCU_ARCH_UATOMIC_PPC_H */