[ltt-dev] [PATCH 07/12] use uatomic_generic.h for common fallback implementations
Mathieu Desnoyers
compudj at krystal.dyndns.org
Mon Mar 1 13:59:11 EST 2010
* Paolo Bonzini (pbonzini at redhat.com) wrote:
> And now, really remove the code for S390/SPARC, using the fallback
> implementation of uatomic_generic.h
Merged too.
Mathieu
>
> Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
> ---
> urcu/uatomic_arch_s390.h | 42 ----------------------
> urcu/uatomic_arch_sparc64.h | 83 -------------------------------------------
> 2 files changed, 0 insertions(+), 125 deletions(-)
>
> diff --git a/urcu/uatomic_arch_s390.h b/urcu/uatomic_arch_s390.h
> index 2378ebd..5942ffe 100644
> --- a/urcu/uatomic_arch_s390.h
> +++ b/urcu/uatomic_arch_s390.h
> @@ -163,48 +163,6 @@ unsigned long _uatomic_cmpxchg(void *addr, unsigned long old,
> (unsigned long)(_new), \
> sizeof(*(addr)))
>
> -/* uatomic_add_return */
> -
> -static inline __attribute__((always_inline))
> -unsigned long _uatomic_add_return(void *addr, unsigned long val, int len)
> -{
> - switch (len) {
> - case 4:
> - {
> - unsigned int old, oldt;
> -
> - oldt = uatomic_read((unsigned int *)addr);
> - do {
> - old = oldt;
> - oldt = _uatomic_cmpxchg(addr, old, old + val, 4);
> - } while (oldt != old);
> -
> - return old + val;
> - }
> -#if (BITS_PER_LONG == 64)
> - case 8:
> - {
> - unsigned long old, oldt;
> -
> - oldt = uatomic_read((unsigned long *)addr);
> - do {
> - old = oldt;
> - oldt = _uatomic_cmpxchg(addr, old, old + val, 8);
> - } while (oldt != old);
> -
> - return old + val;
> - }
> -#endif
> - }
> - __builtin_trap();
> - return 0;
> -}
> -
> -#define uatomic_add_return(addr, v) \
> - ((__typeof__(*(addr))) _uatomic_add_return((addr), \
> - (unsigned long)(v), \
> - sizeof(*(addr))))
> -
> #ifdef __cplusplus
> }
> #endif
> diff --git a/urcu/uatomic_arch_sparc64.h b/urcu/uatomic_arch_sparc64.h
> index ec9d8e8..81f95cb 100644
> --- a/urcu/uatomic_arch_sparc64.h
> +++ b/urcu/uatomic_arch_sparc64.h
> @@ -83,89 +83,6 @@ unsigned long _uatomic_cmpxchg(void *addr, unsigned long old,
> (unsigned long)(_new), \
> sizeof(*(addr))))
>
> -/* xchg */
> -
> -static inline __attribute__((always_inline))
> -unsigned long _uatomic_exchange(void *addr, unsigned long val, int len)
> -{
> - switch (len) {
> - case 4:
> - {
> - unsigned int old, oldt;
> -
> - oldt = uatomic_read((unsigned int *)addr);
> - do {
> - old = oldt;
> - oldt = _uatomic_cmpxchg(addr, old, val, 4);
> - } while (oldt != old);
> -
> - return old;
> - }
> -#if (BITS_PER_LONG == 64)
> - case 8:
> - {
> - unsigned long old, oldt;
> -
> - oldt = uatomic_read((unsigned long *)addr);
> - do {
> - old = oldt;
> - oldt = _uatomic_cmpxchg(addr, old, val, 8);
> - } while (oldt != old);
> -
> - return old;
> - }
> -#endif
> - }
> - __builtin_trap();
> - return 0;
> -}
> -
> -#define uatomic_xchg(addr, v) \
> - ((__typeof__(*(addr))) _uatomic_exchange((addr), (unsigned long)(v), \
> - sizeof(*(addr))))
> -
> -/* uatomic_add_return */
> -
> -static inline __attribute__((always_inline))
> -unsigned long _uatomic_add_return(void *addr, unsigned long val, int len)
> -{
> - switch (len) {
> - case 4:
> - {
> - unsigned int old, oldt;
> -
> - oldt = uatomic_read((unsigned int *)addr);
> - do {
> - old = oldt;
> - oldt = _uatomic_cmpxchg(addr, old, old + val, 4);
> - } while (oldt != old);
> -
> - return old + val;
> - }
> -#if (BITS_PER_LONG == 64)
> - case 8:
> - {
> - unsigned long old, oldt;
> -
> - oldt = uatomic_read((unsigned long *)addr);
> - do {
> - old = oldt;
> - oldt = _uatomic_cmpxchg(addr, old, old + val, 8);
> - } while (oldt != old);
> -
> - return old + val;
> - }
> -#endif
> - }
> - __builtin_trap();
> - return 0;
> -}
> -
> -#define uatomic_add_return(addr, v) \
> - ((__typeof__(*(addr))) _uatomic_add_return((addr), \
> - (unsigned long)(v), \
> - sizeof(*(addr))))
> -
> #ifdef __cplusplus
> }
> #endif
> --
> 1.6.6
>
>
>
> _______________________________________________
> ltt-dev mailing list
> ltt-dev at lists.casi.polymtl.ca
> http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
>
--
Mathieu Desnoyers
Operating System Efficiency Consultant
EfficiOS Inc.
http://www.efficios.com
More information about the lttng-dev
mailing list