Module: xenomai-head
Branch: master
Commit: e1c0a704bd11ef21a4d650f7a49fd276a678256a
URL:    
http://git.xenomai.org/?p=xenomai-head.git;a=commit;h=e1c0a704bd11ef21a4d650f7a49fd276a678256a

Author: Gilles Chanteperdrix <gilles.chanteperd...@xenomai.org>
Date:   Wed Oct 20 05:53:00 2010 +0200

arm: make atomic.h implementation C++ friendly

It gets included by pthread.h.

---

 include/asm-arm/atomic.h |   22 +++++++++++-----------
 1 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/include/asm-arm/atomic.h b/include/asm-arm/atomic.h
index 3701e41..98a7ca5 100644
--- a/include/asm-arm/atomic.h
+++ b/include/asm-arm/atomic.h
@@ -172,9 +172,9 @@ xnarch_atomic_clear_mask(unsigned long *addr, unsigned long 
mask)
 
 static inline unsigned long
 xnarch_atomic_cmpxchg(xnarch_atomic_t *ptr,
-                     unsigned long old, unsigned long new)
+                     unsigned long oldval, unsigned long newval)
 {
-       unsigned long oldval, res;
+       unsigned long curval, res;
 
        xnarch_memory_barrier();
 
@@ -184,14 +184,14 @@ xnarch_atomic_cmpxchg(xnarch_atomic_t *ptr,
                "mov    %0, #0\n"
                "teq    %1, %4\n"
                "strexeq %0, %5, [%3]\n"
-                   : "=&r" (res), "=&r" (oldval), "+Qo" (ptr->counter)
-                   : "r" (&ptr->counter), "Ir" (old), "r" (new)
+                   : "=&r" (res), "=&r" (curval), "+Qo" (ptr->counter)
+                   : "r" (&ptr->counter), "Ir" (oldval), "r" (newval)
                    : "cc");
        } while (res);
 
        xnarch_memory_barrier();
 
-       return oldval;
+       return curval;
 }
 
 static inline int xnarch_atomic_inc_and_test(xnarch_atomic_t *v)
@@ -263,8 +263,8 @@ xnarch_atomic_set_mask(unsigned long *addr, unsigned long 
mask)
        atomic_dec((atomic_t *)pcounter)
 #define xnarch_atomic_clear_mask(addr, mask) \
        atomic_clear_mask((mask), (addr))
-#define xnarch_atomic_cmpxchg(pcounter, old, new) \
-       atomic_cmpxchg((atomic_t *)(pcounter), (old), (new))
+#define xnarch_atomic_cmpxchg(pcounter, oldval, newval) \
+       atomic_cmpxchg((atomic_t *)(pcounter), (oldval), (newval))
 #define xnarch_atomic_inc_and_test(pcounter) \
        atomic_inc_and_test((atomic_t *)pcounter)
 #define xnarch_atomic_dec_and_test(pcounter) \
@@ -347,9 +347,9 @@ xnarch_atomic_clear_mask(unsigned long *addr, unsigned long 
mask)
 
 static __inline__ unsigned long
 xnarch_atomic_cmpxchg(xnarch_atomic_t *ptr,
-                     unsigned long old, unsigned long newval)
+                     unsigned long oldval, unsigned long newval)
 {
-       register unsigned long asm_old asm("r0") = old;
+       register unsigned long asm_old asm("r0") = oldval;
        register unsigned long asm_new asm("r1") = newval;
        register unsigned long *asm_ptr asm("r2") =
                (unsigned long *)&ptr->counter;
@@ -365,8 +365,8 @@ xnarch_atomic_cmpxchg(xnarch_atomic_t *ptr,
                        : "r"(asm_new), "r"(asm_ptr)
                        : "ip", "cc", "memory");
                if (likely(!asm_old))
-                       return old;
-       } while ((asm_old = *asm_ptr) == old);
+                       return oldval;
+       } while ((asm_old = *asm_ptr) == oldval);
        return asm_old;
 }
 


_______________________________________________
Xenomai-git mailing list
Xenomai-git@gna.org
https://mail.gna.org/listinfo/xenomai-git

Reply via email to