diff options
Diffstat (limited to 'libexec/rtld-elf/arm')
-rw-r--r-- | libexec/rtld-elf/arm/rtld_machdep.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/libexec/rtld-elf/arm/rtld_machdep.h b/libexec/rtld-elf/arm/rtld_machdep.h index 8e841e0..cc1410c 100644 --- a/libexec/rtld-elf/arm/rtld_machdep.h +++ b/libexec/rtld-elf/arm/rtld_machdep.h @@ -70,4 +70,15 @@ typedef struct { void _rtld_bind_start(void); extern void *__tls_get_addr(tls_index *ti); + +static __inline u_int32_t +atomic_cmpset_32(volatile u_int32_t *p, u_int32_t cmpval, u_int32_t newval) +{ + + if (*p == cmpval) { + *p = newval; + return (1); + } + return (0); +} #endif |