diff options
author | cognet <cognet@FreeBSD.org> | 2005-04-07 22:06:05 +0000 |
---|---|---|
committer | cognet <cognet@FreeBSD.org> | 2005-04-07 22:06:05 +0000 |
commit | c7b04f713ad19008e52328627ff7e7fd95fccf6c (patch) | |
tree | a7a132fcb03b58da77324c636dadc7fe0ad7cb73 /lib/libthr | |
parent | 6bb6868e16cce899dd3916374ae46919f01ee618 (diff) | |
download | FreeBSD-src-c7b04f713ad19008e52328627ff7e7fd95fccf6c.zip FreeBSD-src-c7b04f713ad19008e52328627ff7e7fd95fccf6c.tar.gz |
Use the new atomic_cmpset_32().
Diffstat (limited to 'lib/libthr')
-rw-r--r-- | lib/libthr/arch/arm/Makefile.inc | 2 | ||||
-rw-r--r-- | lib/libthr/arch/arm/include/pthread_md.h | 18 |
2 files changed, 0 insertions, 20 deletions
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 <stddef.h> #include <errno.h> -static __inline int atomic_cmpset_32(volatile uint32_t *, uint32_t, uint32_t); - #include <sys/umtx.h> #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_ */ |