diff options
author | jhb <jhb@FreeBSD.org> | 2000-10-20 19:46:02 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2000-10-20 19:46:02 +0000 |
commit | ee25075f9c13857dc15b2d681c8c2c05b5bc860f (patch) | |
tree | 617ce2fb43e46ef0ea8dfa047689980df85fd3b3 /sys | |
parent | e289ab5029e4dc87e15c079d3fb2a8fe607bcc77 (diff) | |
download | FreeBSD-src-ee25075f9c13857dc15b2d681c8c2c05b5bc860f.zip FreeBSD-src-ee25075f9c13857dc15b2d681c8c2c05b5bc860f.tar.gz |
Fix the atomic_cmpset_{acq,rel}_ptr() functions to do proper type-casting.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/alpha/include/atomic.h | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/sys/alpha/include/atomic.h b/sys/alpha/include/atomic.h index 9a6adc9..d1756d8 100644 --- a/sys/alpha/include/atomic.h +++ b/sys/alpha/include/atomic.h @@ -401,8 +401,8 @@ static __inline int atomic_cmpset_ptr(volatile void *dst, void *exp, void *src) { - return ( - atomic_cmpset_long((volatile u_long *)dst, (u_long)exp, (u_long)src)); + return (atomic_cmpset_long((volatile u_long *)dst, (u_long)exp, + (u_long)src)); } static __inline u_int32_t @@ -439,12 +439,26 @@ atomic_cmpset_rel_64(volatile u_int64_t *p, u_int64_t cmpval, u_int64_t newval) return (retval); } +static __inline int +atomic_cmpset_acq_ptr(volatile void *dst, void *exp, void *src) +{ + + return (atomic_cmpset_acq_long((volatile u_long *)dst, (u_long)exp, + (u_long)src)); +} + +static __inline int +atomic_cmpset_rel_ptr(volatile void *dst, void *exp, void *src) +{ + + return (atomic_cmpset_rel_long((volatile u_long *)dst, (u_long)exp, + (u_long)src)); +} + #define atomic_cmpset_acq_int atomic_cmpset_acq_32 #define atomic_cmpset_rel_int atomic_cmpset_rel_32 #define atomic_cmpset_acq_long atomic_cmpset_acq_64 #define atomic_cmpset_rel_long atomic_cmpset_rel_64 -#define atomic_cmpset_acq_ptr atomic_cmpset_acq_long -#define atomic_cmpset_rel_ptr atomic_cmpset_rel_long static __inline void * atomic_load_acq_ptr(volatile void *p) |