[Xenomai-git] Gilles Chanteperdrix : arm: make atomic.h implementation C++ friendly
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
[Xenomai-git] Gilles Chanteperdrix : arm: make atomic.h implementation C++ friendly
Module: xenomai-2.5 Branch: master Commit: e1c0a704bd11ef21a4d650f7a49fd276a678256a URL: http://git.xenomai.org/?p=xenomai-2.5.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
[Xenomai-git] Gilles Chanteperdrix : arm: make atomic.h implementation C++ friendly
Module: xenomai-head Branch: master Commit: b0b7000e22c25759785425af43c0e9707621b991 URL: http://git.xenomai.org/?p=xenomai-head.git;a=commit;h=b0b7000e22c25759785425af43c0e9707621b991 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