summaryrefslogtreecommitdiffstats
path: root/sys/alpha
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2000-10-20 19:46:02 +0000
committerjhb <jhb@FreeBSD.org>2000-10-20 19:46:02 +0000
commitee25075f9c13857dc15b2d681c8c2c05b5bc860f (patch)
tree617ce2fb43e46ef0ea8dfa047689980df85fd3b3 /sys/alpha
parente289ab5029e4dc87e15c079d3fb2a8fe607bcc77 (diff)
downloadFreeBSD-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/alpha')
-rw-r--r--sys/alpha/include/atomic.h22
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)
OpenPOWER on IntegriCloud