aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Houchard <cognet@FreeBSD.org>2005-12-09 22:58:07 +0000
committerOlivier Houchard <cognet@FreeBSD.org>2005-12-09 22:58:07 +0000
commitb34658e8a9c1c6532d9ee2b8d1981669adf3d1f7 (patch)
tree31e012dc62919d5b4687259f395a1eb12adc0911
parent858b811f3486e071de3fb88d361757791d2ee815 (diff)
downloadsrc-b34658e8a9c1c6532d9ee2b8d1981669adf3d1f7.tar.gz
src-b34658e8a9c1c6532d9ee2b8d1981669adf3d1f7.zip
A #define is not enough, we need to cast from u_long * to uint32_t *.
Notes
Notes: svn path=/head/; revision=153276
-rw-r--r--sys/arm/include/atomic.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/arm/include/atomic.h b/sys/arm/include/atomic.h
index 42713a60f413..aae130ab5195 100644
--- a/sys/arm/include/atomic.h
+++ b/sys/arm/include/atomic.h
@@ -310,6 +310,13 @@ atomic_readandclear_32(volatile u_int32_t *p)
#endif /* _LOCORE */
+static __inline int
+atomic_cmpset_long(volatile u_long *dst, u_long exp, u_long src)
+{
+ return (atomic_cmpset_32((volatile u_int *)dst, (u_int)exp,
+ (u_int)src));
+}
+
#define atomic_set_rel_int atomic_set_32
#define atomic_set_acq_long atomic_set_32
#define atomic_set_int atomic_set_32
@@ -328,7 +335,7 @@ atomic_readandclear_32(volatile u_int32_t *p)
#define atomic_cmpset_rel_ptr atomic_cmpset_ptr
#define atomic_cmpset_acq_int atomic_cmpset_32
#define atomic_cmpset_acq_ptr atomic_cmpset_ptr
-#define atomic_cmpset_acq_long atomic_cmpset_ptr
+#define atomic_cmpset_acq_long atomic_cmpset_long
#define atomic_store_rel_ptr atomic_store_ptr
#define atomic_store_rel_int atomic_store_32
#define atomic_cmpset_rel_32 atomic_cmpset_32