Current File : //usr/man/man3c/atomic_inc.3c
'\" te
.\" Copyright (c) 2009, Sun Microsystems, Inc. All Rights Reserved.
.TH atomic_inc 3C "13 May 2005" "SunOS 5.11" "Standard C Library Functions"
.SH NAME
atomic_inc, atomic_inc_8, atomic_inc_uchar, atomic_inc_16, atomic_inc_ushort, atomic_inc_32, atomic_inc_uint, atomic_inc_ulong, atomic_inc_64, atomic_inc_ptr, atomic_inc_8_nv, atomic_inc_uchar_nv, atomic_inc_16_nv, atomic_inc_ushort_nv, atomic_inc_32_nv, atomic_inc_uint_nv, atomic_inc_ulong_nv, atomic_inc_64_nv, atomic_inc_ptr_nv \- atomic increment operations
.SH SYNOPSIS
.LP
.nf
#include <atomic.h>

\fBvoid\fR \fBatomic_inc_8\fR(\fBvolatile uint8_t *\fR\fItarget\fR);
.fi

.LP
.nf
\fBvoid\fR \fBatomic_inc_uchar\fR(\fBvolatile uchar_t *\fR\fItarget\fR);
.fi

.LP
.nf
\fBvoid\fR \fBatomic_inc_16\fR(\fBvolatile uint16_t *\fR\fItarget\fR);
.fi

.LP
.nf
\fBvoid\fR \fBatomic_inc_ushort\fR(\fBvolatile ushort_t *\fR\fItarget\fR);
.fi

.LP
.nf
\fBvoid\fR \fBatomic_inc_32\fR(\fBvolatile uint32_t *\fR\fItarget\fR);
.fi

.LP
.nf
\fBvoid\fR \fBatomic_inc_uint\fR(\fBvolatile uint_t *\fR\fItarget\fR);
.fi

.LP
.nf
\fBvoid\fR \fBatomic_inc_ulong\fR(\fBvolatile ulong_t *\fR\fItarget\fR);
.fi

.LP
.nf
\fBvoid\fR \fBatomic_inc_64\fR(\fBvolatile uint64_t *\fR\fItarget\fR);
.fi

.LP
.nf
\fBvoid\fR \fBatomic_inc_ptr\fR(\fBvolatile void *\fR\fItarget\fR);
.fi

.LP
.nf
\fBuint8_t\fR \fBatomic_inc_8_nv\fR(\fBvolatile uint8_t *\fR\fItarget\fR);
.fi

.LP
.nf
\fBuchar_t\fR \fBatomic_inc_uchar_nv\fR(\fBvolatile uchar_t *\fR\fItarget\fR);
.fi

.LP
.nf
\fBuint16_t\fR \fBatomic_inc_16_nv\fR(\fBvolatile uint16_t *\fR\fItarget\fR);
.fi

.LP
.nf
\fBushort_t\fR \fBatomic_inc_ushort_nv\fR(\fBvolatile ushort_t *\fR\fItarget\fR);
.fi

.LP
.nf
\fBuint32_t\fR \fBatomic_inc_32_nv\fR(\fBvolatile uint32_t *\fR\fItarget\fR);
.fi

.LP
.nf
\fBuint_t\fR \fBatomic_inc_uint_nv\fR(\fBvolatile uint_t *\fR\fItarget\fR);
.fi

.LP
.nf
\fBulong_t\fR \fBatomic_inc_ulong_nv\fR(\fBvolatile ulong_t *\fR\fItarget\fR);
.fi

.LP
.nf
\fBuint64_t\fR \fBatomic_inc_64_nv\fR(\fBvolatile uint64_t *\fR\fItarget\fR);
.fi

.LP
.nf
\fBvoid *\fR\fBatomic_inc_ptr_nv\fR(\fBvolatile void *\fR\fItarget\fR);
.fi

.SH DESCRIPTION
.sp
.LP
These functions enable the incrementing (by one) of the value stored in \fItarget\fR to occur in an atomic manner.
.SH RETURN VALUES
.sp
.LP
The *\fB_nv()\fR variants of these functions return the new value of \fItarget\fR.
.SH ERRORS
.sp
.LP
No errors are defined.
.SH ATTRIBUTES
.sp
.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp

.sp
.TS
tab() box;
cw(2.75i) |cw(2.75i) 
lw(2.75i) |lw(2.75i) 
.
ATTRIBUTE TYPEATTRIBUTE VALUE
_
Interface StabilityCommitted
_
MT-LevelMT-Safe
.TE

.SH SEE ALSO
.sp
.LP
\fBatomic_add\fR(3C), \fBatomic_and\fR(3C), \fBatomic_bits\fR(3C), \fBatomic_cas\fR(3C), \fBatomic_dec\fR(3C), \fBatomic_or\fR(3C), \fBatomic_swap\fR(3C), \fBmembar_ops\fR(3C), \fBattributes\fR(5), \fBatomic_ops\fR(9F)
.SH NOTES
.sp
.LP
The *\fB_nv()\fR variants are substantially more expensive on some platforms than the versions that do not return values. Do not use them unless you need to know the new value \fBatomically\fR.