X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=urcu%2Fuatomic_arch_sparc64.h;h=28829d285811bfabce58ffc00847ff645f70e460;hb=795d506a10a06e05380ff275f31c588ca1e2cee8;hp=87deacd1a064366bceb799cf8620485c06ba6206;hpb=58de5a4bc81e0b64f4fbd46973b5c8b0cd06cda6;p=urcu.git diff --git a/urcu/uatomic_arch_sparc64.h b/urcu/uatomic_arch_sparc64.h index 87deacd..28829d2 100644 --- a/urcu/uatomic_arch_sparc64.h +++ b/urcu/uatomic_arch_sparc64.h @@ -24,7 +24,7 @@ #include #ifndef __SIZEOF_LONG__ -#if (defined(__sparc_v8__) || defined(__sparc_v9__)) +#ifdef __LP64__ #define __SIZEOF_LONG__ 8 #else #define __SIZEOF_LONG__ 4 @@ -90,9 +90,9 @@ unsigned long _uatomic_exchange(void *addr, unsigned long val, int len) switch (len) { case 4: { - unsigned int old; + unsigned int old, oldt; - oldt = uatomic_read(addr); + oldt = uatomic_read((unsigned int *)addr); do { old = oldt; oldt = _uatomic_cmpxchg(addr, old, val, 4); @@ -103,9 +103,9 @@ unsigned long _uatomic_exchange(void *addr, unsigned long val, int len) #if (BITS_PER_LONG == 64) case 8: { - unsigned long old; + unsigned long old, oldt; - oldt = uatomic_read(addr); + oldt = uatomic_read((unsigned long *)addr); do { old = oldt; oldt = _uatomic_cmpxchg(addr, old, val, 8); @@ -132,9 +132,9 @@ unsigned long _uatomic_add_return(void *addr, unsigned long val, switch (len) { case 4: { - unsigned int old; + unsigned int old, oldt; - oldt = uatomic_read(addr); + oldt = uatomic_read((unsigned int *)addr); do { old = oldt; oldt = _uatomic_cmpxchg(addr, old, old + val, 4); @@ -145,9 +145,9 @@ unsigned long _uatomic_add_return(void *addr, unsigned long val, #if (BITS_PER_LONG == 64) case 8: { - unsigned long old; + unsigned long old, oldt; - oldt = uatomic_read(addr); + oldt = uatomic_read((unsigned long *)addr); do { old = oldt; oldt = _uatomic_cmpxchg(addr, old, old + val, 8);