NAME
atomic_sub_int,
atomic_sub_int_nv,
atomic_sub_long,
atomic_sub_long_nv —
atomic subtraction
operations
SYNOPSIS
#include
<sys/atomic.h>
void
atomic_sub_int(volatile
unsigned int *p, unsigned
int v);
unsigned int
atomic_sub_int_nv(volatile
unsigned int *p, unsigned
int v);
void
atomic_sub_long(volatile
unsigned long *p,
unsigned long v);
unsigned long
atomic_sub_long_nv(volatile
unsigned long *p,
unsigned long v);
DESCRIPTION
The atomic_sub set of functions provide an interface for atomically performing sub and sub-and-fetch operations with respect to interrupts and multiple processors in the system.
The value referenced by the pointer p is decremented by the value v.
CONTEXT
atomic_sub_int(),
atomic_sub_int_nv(),
atomic_sub_long(), and
atomic_sub_long_nv() can all be called during
autoconf, from process context, or from interrupt context.
RETURN VALUES
atomic_sub_int and
atomic_sub_long perform the subtraction without
returning any knowledge of the value at p.
atomic_sub_int_nv and
atomic_sub_long_nv return the value at
p after the subtraction was performed.
SEE ALSO
HISTORY
The atomic_sub functions first appeared in OpenBSD 5.5.