X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=urcu%2Fuatomic%2Fsparc64.h;h=a9f27954657cdf6b0b8ad1a9c1a720b695a8b248;hp=d9ecada5aa56c3891c2f34624a60247f02c5168e;hb=67ecffc0f530a7b5c4dd5111ea7dd3213da8eb91;hpb=bc2433a9853a945a825c244e9ccfe341b73b2ceb diff --git a/urcu/uatomic/sparc64.h b/urcu/uatomic/sparc64.h index d9ecada..a9f2795 100644 --- a/urcu/uatomic/sparc64.h +++ b/urcu/uatomic/sparc64.h @@ -1,7 +1,7 @@ #ifndef _URCU_ARCH_UATOMIC_SPARC64_H #define _URCU_ARCH_UATOMIC_SPARC64_H -/* +/* * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved. * Copyright (c) 1996-1999 by Silicon Graphics. All rights reserved. * Copyright (c) 1999-2003 by Hewlett-Packard Company. All rights reserved. @@ -25,7 +25,7 @@ #ifdef __cplusplus extern "C" { -#endif +#endif /* cmpxchg */ @@ -66,12 +66,13 @@ unsigned long _uatomic_cmpxchg(void *addr, unsigned long old, } -#define uatomic_cmpxchg(addr, old, _new) \ - ((__typeof__(*(addr))) _uatomic_cmpxchg((addr), (unsigned long)(old),\ - (unsigned long)(_new), \ +#define uatomic_cmpxchg(addr, old, _new) \ + ((__typeof__(*(addr))) _uatomic_cmpxchg((addr), \ + caa_cast_long_keep_sign(old), \ + caa_cast_long_keep_sign(_new), \ sizeof(*(addr)))) -#ifdef __cplusplus +#ifdef __cplusplus } #endif