From c7b04f713ad19008e52328627ff7e7fd95fccf6c Mon Sep 17 00:00:00 2001 From: cognet Date: Thu, 7 Apr 2005 22:06:05 +0000 Subject: Use the new atomic_cmpset_32(). --- lib/libkse/arch/arm/include/atomic_ops.h | 15 --------------- lib/libpthread/arch/arm/include/atomic_ops.h | 15 --------------- lib/libthr/arch/arm/Makefile.inc | 2 -- lib/libthr/arch/arm/include/pthread_md.h | 18 ------------------ 4 files changed, 50 deletions(-) (limited to 'lib') diff --git a/lib/libkse/arch/arm/include/atomic_ops.h b/lib/libkse/arch/arm/include/atomic_ops.h index 1ee5d80..3a209b3 100644 --- a/lib/libkse/arch/arm/include/atomic_ops.h +++ b/lib/libkse/arch/arm/include/atomic_ops.h @@ -51,18 +51,3 @@ atomic_swap32(intptr_t *dst, intptr_t val, intptr_t *res) atomic_swap32((intptr_t *)d, (intptr_t)v, (intptr_t *)r) #endif -static inline u_int32_t -atomic_cmpset_32(volatile u_int32_t *p, u_int32_t cmpval, u_int32_t newval) -{ - kse_critical_t crit = _kse_critical_enter(); - int ret; - - if (*p == cmpval) { - *p = newval; - ret = 1; - } else - ret = 0; - _kse_critical_leave(crit); - return (ret); -} - diff --git a/lib/libpthread/arch/arm/include/atomic_ops.h b/lib/libpthread/arch/arm/include/atomic_ops.h index 1ee5d80..3a209b3 100644 --- a/lib/libpthread/arch/arm/include/atomic_ops.h +++ b/lib/libpthread/arch/arm/include/atomic_ops.h @@ -51,18 +51,3 @@ atomic_swap32(intptr_t *dst, intptr_t val, intptr_t *res) atomic_swap32((intptr_t *)d, (intptr_t)v, (intptr_t *)r) #endif -static inline u_int32_t -atomic_cmpset_32(volatile u_int32_t *p, u_int32_t cmpval, u_int32_t newval) -{ - kse_critical_t crit = _kse_critical_enter(); - int ret; - - if (*p == cmpval) { - *p = newval; - ret = 1; - } else - ret = 0; - _kse_critical_leave(crit); - return (ret); -} - diff --git a/lib/libthr/arch/arm/Makefile.inc b/lib/libthr/arch/arm/Makefile.inc index 5a959d3..508d2b4 100644 --- a/lib/libthr/arch/arm/Makefile.inc +++ b/lib/libthr/arch/arm/Makefile.inc @@ -2,6 +2,4 @@ .PATH: ${.CURDIR}/arch/${MACHINE_ARCH}/${MACHINE_ARCH} -CFLAGS+= -DARM_HAS_ATOMIC_CMPSET_32 - SRCS+= pthread_md.c diff --git a/lib/libthr/arch/arm/include/pthread_md.h b/lib/libthr/arch/arm/include/pthread_md.h index 626d567..d9deff9 100644 --- a/lib/libthr/arch/arm/include/pthread_md.h +++ b/lib/libthr/arch/arm/include/pthread_md.h @@ -37,8 +37,6 @@ #include #include -static __inline int atomic_cmpset_32(volatile uint32_t *, uint32_t, uint32_t); - #include #define DTV_OFFSET offsetof(struct tcb, tcb_dtv) @@ -87,20 +85,4 @@ _get_curthread(void) extern struct umtx arm_umtx; -static __inline int -atomic_cmpset_32(volatile uint32_t *dst, uint32_t old, uint32_t newval) -{ - int ret; - - _umtx_lock(&arm_umtx); - arm_umtx.u_owner = (void*)((uint32_t)arm_umtx.u_owner | UMTX_CONTESTED); - if (*dst == old) { - *dst = newval; - ret = 1; - } else - ret = 0; - _umtx_unlock(&arm_umtx); - return (ret); -} - #endif /* _PTHREAD_MD_H_ */ -- cgit v1.1