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 64-bit variants of these functions are available only on platforms that can
support atomic 64-bit memory access. Applications can check for the
availability of 64-bit atomic memory operations by testing if the
pre-processor macro
__HAVE_ATOMIC64_OPS
is defined.
SEE ALSO
atomic_ops(3)
HISTORY
The
atomic_swap functions first appeared in
NetBSD 5.0.