Standard C Library Functions atomic_add(3C)
NAME
atomic_add, atomic_add_8, atomic_add_char, atomic_add_16,
atomic_add_short, atomic_add_32, atomic_add_int,
atomic_add_long, atomic_add_64, atomic_add_ptr,
atomic_add_8_nv, atomic_add_char_nv, atomic_add_16_nv,
atomic_add_short_nv, atomic_add_32_nv, atomic_add_int_nv,
atomic_add_long_nv, atomic_add_64_nv, atomic_add_ptr_nv -
atomic add operationsSYNOPSIS
#include
void atomic_add_8(volatile uint8_t *target, int8_t delta);
void atomic_add_char(volatile uchar_t *target, signed char delta);
void atomic_add_16(volatile uint16_t *target, int16_t delta);
void atomic_add_short(volatile ushort_t *target, short delta);
void atomic_add_32(volatile uint32_t *target, int32_t delta);
void atomic_add_int(volatile uint_t *target, int delta);
void atomic_add_long(volatile ulong_t *target, long delta);
void atomic_add_64(volatile uint64_t *target, int64_t delta);
void atomic_add_ptr(volatile void *target, ssize_t delta);
uint8_t atomic_add_8_nv(volatile uint8_t *target, int8_t delta);
uchar_t atomic_add_char_nv(volatile uchar_t *target, signed char delta);
uint16_t atomic_add_16_nv(volatile uint16_t *target, int16_t delta);
ushort_t atomic_add_short_nv(volatile ushort_t *target, shortdelta);
SunOS 5.11 Last change: 13 May 2005 1
Standard C Library Functions atomic_add(3C)
uint32_t atomic_add_32_nv(volatile uint32_t *target, int32_t delta);
uint_t atomic_add_int_nv(volatile uint_t *target, int delta);
ulong_t atomic_add_long_nv(volatile ulong_t *target, long delta);
uint64_t atomic_add_64_nv(volatile uint64_t *target, int64_t delta);
void *atomic_add_ptr_nv(volatile void *target, ssize_t delta);
DESCRIPTION
These functions enable the addition of delta to the value stored in target to occur in an atomic manner.RETURN VALUES
The *_nv() variants of these functions return the new value
of target.ERRORS
No errors are defined.ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Interface Stability | Committed ||_____________________________|_____________________________|
| MT-Level | MT-Safe |
|_____________________________|_____________________________|
SEE ALSO
atomic_and(3C), atomic_bits(3C), atomic_cas(3C),
atomic_dec(3C), atomic_inc(3C), atomic_or(3C),
atomic_swap(3C), membar_ops(3C), attributes(5),
atomic_ops(9F)
NOTESThe *_nv() variants are substantially more expensive on some
platforms than the versions that do not return values. Donot use them unless you need to know the new value atomi-
cally (for example, when decrementing a reference count andSunOS 5.11 Last change: 13 May 2005 2
Standard C Library Functions atomic_add(3C)
checking whether it went to zero).SunOS 5.11 Last change: 13 May 2005 3