ppc atomic: Fix asm format.
[urcu.git] / arch_atomic_ppc.h
index 231a57798598e3da844d6938a95d9502b402da86..88b366e4de54056ed3d5e2b9bf15374fb29f22f2 100644 (file)
 
 #ifndef _INCLUDE_API_H
 
+#define atomic_set(addr, v)                            \
+do {                                                   \
+       ACCESS_ONCE(*(addr)) = (v);                     \
+} while (0)
+
+#define atomic_read(addr)      ACCESS_ONCE(*(addr))
+
 /*
  * Using a isync as second barrier for exchange to provide acquire semantic.
  * According to atomic_ops/sysdeps/gcc/powerpc.h, the documentation is "fairly
@@ -46,7 +53,7 @@
 /* xchg */
 
 static __attribute__((always_inline))
-unsigned long _atomic_exchange(volatile void *addr, unsigned long val, int len)
+unsigned long _atomic_exchange(void *addr, unsigned long val, int len)
 {
        switch (len) {
        case 4:
@@ -96,7 +103,7 @@ unsigned long _atomic_exchange(volatile void *addr, unsigned long val, int len)
 /* cmpxchg */
 
 static __attribute__((always_inline))
-unsigned long _atomic_cmpxchg(volatile void *addr, unsigned long old,
+unsigned long _atomic_cmpxchg(void *addr, unsigned long old,
                              unsigned long _new, int len)
 {
        switch (len) {
@@ -113,7 +120,7 @@ unsigned long _atomic_cmpxchg(volatile void *addr, unsigned long old,
                        "bne- 1b\n"             /* retry if lost reservation */
                        "isync\n"
                "2:\n"
-                               : "=&r"(old_val),
+                               : "=&r"(old_val)
                                : "r"(addr), "r"((unsigned int)_new),
                                  "r"((unsigned int)old)
                                : "memory", "cc");
@@ -156,7 +163,7 @@ unsigned long _atomic_cmpxchg(volatile void *addr, unsigned long old,
 /* atomic_add_return */
 
 static __attribute__((always_inline))
-unsigned long _atomic_add_return(volatile void *addr, unsigned long val,
+unsigned long _atomic_add_return(void *addr, unsigned long val,
                                 int len)
 {
        switch (len) {
This page took 0.023262 seconds and 4 git commands to generate.