--- sys/cddl/compat/opensolaris/sys/atomic.h +++ sys/cddl/compat/opensolaris/sys/atomic.h @@ -39,10 +39,9 @@ #ifndef __LP64__ extern void atomic_add_64(volatile uint64_t *target, int64_t delta); extern void atomic_dec_64(volatile uint64_t *target); -extern void *atomic_cas_ptr(volatile void *target, void *cmp, void *newval); #endif #ifndef __sparc64__ -extern uint64_t atomic_cas_32(volatile uint32_t *target, uint32_t cmp, +extern uint32_t atomic_cas_32(volatile uint32_t *target, uint32_t cmp, uint32_t newval); extern uint64_t atomic_cas_64(volatile uint64_t *target, uint64_t cmp, uint64_t newval); @@ -119,21 +118,19 @@ } #ifndef COMPAT_32BIT -#if defined(__LP64__) +#ifdef __LP64__ static __inline void * atomic_cas_ptr(volatile void *target, void *cmp, void *newval) { - return ((void *)atomic_cas_64((volatile uint64_t *)target, (uint64_t)cmp, - (uint64_t)newval)); + return ((void *)atomic_cas_64(target, (uint64_t)cmp, (uint64_t)newval)); } #else static __inline void * atomic_cas_ptr(volatile void *target, void *cmp, void *newval) { - return ((void *)atomic_cas_32((volatile uint64_t *)target, (uint64_t)cmp, - (uint64_t)newval)); + return ((void *)atomic_cas_32(target, (uint32_t)cmp, (uint32_t)newval)); } #endif -#endif +#endif /* !COMPAT_32BIT */ #endif /* !_OPENSOLARIS_SYS_ATOMIC_H_ */