[OpenBSD]

Manual Page Search Parameters
ATOMIC_ADD_INT(9) Kernel Developer's Manual ATOMIC_ADD_INT(9)

NAME

atomic_add_int, atomic_add_int_nv, atomic_add_long, atomic_add_long_nvatomic addition operations

SYNOPSIS

#include <sys/atomic.h>
void
atomic_add_int(volatile unsigned int *p, unsigned int v);
unsigned int
atomic_add_int_nv(volatile unsigned int *p, unsigned int v);
void
atomic_add_long(volatile unsigned long *p, unsigned long v);
unsigned long
atomic_add_long_nv(volatile unsigned long *p, unsigned long v);

DESCRIPTION

The atomic_add set of functions provide an interface for atomically performing add and add-and-fetch operations with respect to interrupts and multiple processors in the system.
The value referenced by the pointer p is incremented by the value v.

CONTEXT

atomic_add_int(), atomic_add_int_nv(), atomic_add_long(), and atomic_add_long_nv() can all be called during autoconf, from process context, or from interrupt context.

RETURN VALUES

atomic_add_int and atomic_add_long perform the addition without returning any knowledge of the value at p.
atomic_add_int_nv and atomic_add_long_nv return the value at p after the addition was performed.

SEE ALSO

atomic_inc_int(9), atomic_sub_int(9)

HISTORY

The atomic_add functions first appeared in NetBSD 5.0 and OpenBSD 5.5.
February 13, 2014 OpenBSD-current