ATOMIC_SWAP(3) Library Functions Manual ATOMIC_SWAP(3)
NAME
atomic_swap, atomic_swap_32, atomic_swap_uint, atomic_swap_ulong,
atomic_swap_ptr, atomic_swap_64  atomic swap operations
SYNOPSIS
#include <<sys/atomic.h>>
uint32_t
atomic_swap_32(volatile uint32_t *ptr, uint32_t new);
unsigned int
atomic_swap_uint(volatile unsigned int *ptr, unsigned int new);
unsigned long
atomic_swap_ulong(volatile unsigned long *ptr, unsigned long new);
void *
atomic_swap_ptr(volatile void *ptr, void *new);
uint64_t
atomic_swap_64(volatile uint64_t *ptr, uint64_t new);
DESCRIPTION
The atomic_swap family of functions perform a swap operation in an atomic
fashion. The value of the variable referenced by ptr is replaced by new
and the old value returned.
The 64bit variants of these functions are available only on platforms
that can support atomic 64bit memory access. Applications can check for
the availability of 64bit atomic memory operations by testing if the
preprocessor macro __HAVE_ATOMIC64_OPS is defined.
SEE ALSO
atomic_ops(3)
HISTORY
The atomic_swap functions first appeared in NetBSD 5.0.
NetBSD 6.1.5 April 11, 2007 NetBSD 6.1.5
