ATOMIC_AND(3) Library Functions Manual ATOMIC_AND(3)
NAME
atomic_and, atomic_and_32, atomic_and_uint, atomic_and_ulong,
atomic_and_64, atomic_and_32_nv, atomic_and_uint_nv, atomic_and_ulong_nv,
atomic_and_64_nv  atomic logical `and' operations
SYNOPSIS
#include <<sys/atomic.h>>
void
atomic_and_32(volatile uint32_t *ptr, uint32_t bits);
void
atomic_and_uint(volatile unsigned int *ptr, unsigned int bits);
void
atomic_and_ulong(volatile unsigned long *ptr, unsigned long bits);
void
atomic_and_64(volatile uint64_t *ptr, uint64_t bits);
uint32_t
atomic_and_32_nv(volatile uint32_t *ptr, uint32_t bits);
unsigned int
atomic_and_uint_nv(volatile unsigned int *ptr, unsigned int bits);
unsigned long
atomic_and_ulong_nv(volatile unsigned long *ptr, unsigned long bits);
uint64_t
atomic_and_64_nv(volatile uint64_t *ptr, uint64_t bits);
DESCRIPTION
The atomic_and family of functions load the value of the variable
referenced by ptr, perform a logical `and' with the value bits, and store
the result back to the variable referenced by ptr in an atomic fashion.
The *_nv() variants of these functions return the new value.
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_and functions first appeared in NetBSD 5.0.
NetBSD 6.1.5 April 11, 2007 NetBSD 6.1.5
