.TH "include/Zycore/Atomic.h" 3 "Version 1.5.0.0" "Zycore" \" -*- nroff -*-
.ad l
.nh
.SH NAME
include/Zycore/Atomic.h
.SH SYNOPSIS
.br
.PP
\fC#include <Zycore/Defines\&.h>\fP
.br
\fC#include <Zycore/Types\&.h>\fP
.br

.SS "Classes"

.in +1c
.ti -1c
.RI "struct \fBZyanAtomic32_\fP"
.br
.ti -1c
.RI "struct \fBZyanAtomic64_\fP"
.br
.ti -1c
.RI "struct \fBZyanAtomicPointer_\fP"
.br
.in -1c
.SS "Macros"

.in +1c
.ti -1c
.RI "#define \fBZYAN_ATOMIC_COMPARE_EXCHANGE\fP(destination,  comparand,  value)       ZyanAtomicCompareExchange((\fBZyanAtomicPointer\fP*)&(destination), (comparand), (value))"
.br
.ti -1c
.RI "#define \fBZYAN_ATOMIC_INCREMENT\fP(destination)       ZyanAtomicIncrement((\fBZyanAtomicPointer\fP*)&(destination));"
.br
.ti -1c
.RI "#define \fBZYAN_ATOMIC_DECREMENT\fP(destination)       ZyanAtomicDecrement((\fBZyanAtomicPointer\fP*)&(destination));"
.br
.ti -1c
.RI "#define \fBZYAN_ATOMIC_COMPARE_EXCHANGE32\fP(destination,  comparand,  value)       ZyanAtomicCompareExchange32((\fBZyanAtomic32\fP*)&(destination), (comparand), (value))"
.br
.ti -1c
.RI "#define \fBZYAN_ATOMIC_INCREMENT32\fP(destination)       ZyanAtomicIncrement32((\fBZyanAtomic32\fP*)&(destination));"
.br
.ti -1c
.RI "#define \fBZYAN_ATOMIC_DECREMENT32\fP(destination)       ZyanAtomicDecrement32((\fBZyanAtomic32\fP*)&(destination));"
.br
.ti -1c
.RI "#define \fBZYAN_ATOMIC_COMPARE_EXCHANGE64\fP(destination,  comparand,  value)       ZyanAtomicCompareExchange64((\fBZyanAtomic64\fP*)&(destination), (comparand), (value))"
.br
.ti -1c
.RI "#define \fBZYAN_ATOMIC_INCREMENT64\fP(destination)       ZyanAtomicIncrement64((\fBZyanAtomic64\fP*)&(destination));"
.br
.ti -1c
.RI "#define \fBZYAN_ATOMIC_DECREMENT64\fP(destination)       ZyanAtomicDecrement64((\fBZyanAtomic64\fP*)&(destination));"
.br
.in -1c
.SS "Typedefs"

.in +1c
.ti -1c
.RI "typedef struct \fBZyanAtomic32_\fP \fBZyanAtomic32\fP"
.br
.ti -1c
.RI "typedef struct \fBZyanAtomic64_\fP \fBZyanAtomic64\fP"
.br
.ti -1c
.RI "typedef struct \fBZyanAtomicPointer_\fP \fBZyanAtomicPointer\fP"
.br
.in -1c
.SH "Detailed Description"
.PP 
Cross compiler atomic intrinsics\&. 
.SH "Macro Definition Documentation"
.PP 
.SS "#define ZYAN_ATOMIC_COMPARE_EXCHANGE(destination, comparand, value)       ZyanAtomicCompareExchange((\fBZyanAtomicPointer\fP*)&(destination), (comparand), (value))"

.PP
Compares two values for equality and, if they are equal, replaces the first value\&.
.PP
\fBParameters\fP
.RS 4
\fIdestination\fP A pointer to the destination value\&. 
.br
\fIcomparand\fP The value to compare with\&. 
.br
\fIvalue\fP The replacement value\&.
.RE
.PP
\fBReturns\fP
.RS 4
The original value\&.   
.RE
.PP

.SS "#define ZYAN_ATOMIC_COMPARE_EXCHANGE32(destination, comparand, value)       ZyanAtomicCompareExchange32((\fBZyanAtomic32\fP*)&(destination), (comparand), (value))"

.PP
Compares two values for equality and, if they are equal, replaces the first value\&.
.PP
\fBParameters\fP
.RS 4
\fIdestination\fP A pointer to the destination value\&. 
.br
\fIcomparand\fP The value to compare with\&. 
.br
\fIvalue\fP The replacement value\&.
.RE
.PP
\fBReturns\fP
.RS 4
The original value\&.   
.RE
.PP

.SS "#define ZYAN_ATOMIC_COMPARE_EXCHANGE64(destination, comparand, value)       ZyanAtomicCompareExchange64((\fBZyanAtomic64\fP*)&(destination), (comparand), (value))"

.PP
Compares two values for equality and, if they are equal, replaces the first value\&.
.PP
\fBParameters\fP
.RS 4
\fIdestination\fP A pointer to the destination value\&. 
.br
\fIcomparand\fP The value to compare with\&. 
.br
\fIvalue\fP The replacement value\&.
.RE
.PP
\fBReturns\fP
.RS 4
The original value\&.   
.RE
.PP

.SS "#define ZYAN_ATOMIC_DECREMENT(destination)       ZyanAtomicDecrement((\fBZyanAtomicPointer\fP*)&(destination));"

.PP
Decrements the given value and stores the result, as an atomic operation\&.
.PP
\fBParameters\fP
.RS 4
\fIdestination\fP A pointer to the destination value\&.
.RE
.PP
\fBReturns\fP
.RS 4
The decremented value\&.   
.RE
.PP

.SS "#define ZYAN_ATOMIC_DECREMENT32(destination)       ZyanAtomicDecrement32((\fBZyanAtomic32\fP*)&(destination));"

.PP
Decrements the given value and stores the result, as an atomic operation\&.
.PP
\fBParameters\fP
.RS 4
\fIdestination\fP A pointer to the destination value\&.
.RE
.PP
\fBReturns\fP
.RS 4
The decremented value\&.   
.RE
.PP

.SS "#define ZYAN_ATOMIC_DECREMENT64(destination)       ZyanAtomicDecrement64((\fBZyanAtomic64\fP*)&(destination));"

.PP
Decrements the given value and stores the result, as an atomic operation\&.
.PP
\fBParameters\fP
.RS 4
\fIdestination\fP A pointer to the destination value\&.
.RE
.PP
\fBReturns\fP
.RS 4
The decremented value\&.   
.RE
.PP

.SS "#define ZYAN_ATOMIC_INCREMENT(destination)       ZyanAtomicIncrement((\fBZyanAtomicPointer\fP*)&(destination));"

.PP
Increments the given value and stores the result, as an atomic operation\&.
.PP
\fBParameters\fP
.RS 4
\fIdestination\fP A pointer to the destination value\&.
.RE
.PP
\fBReturns\fP
.RS 4
The incremented value\&.   
.RE
.PP

.SS "#define ZYAN_ATOMIC_INCREMENT32(destination)       ZyanAtomicIncrement32((\fBZyanAtomic32\fP*)&(destination));"

.PP
Increments the given value and stores the result, as an atomic operation\&.
.PP
\fBParameters\fP
.RS 4
\fIdestination\fP A pointer to the destination value\&.
.RE
.PP
\fBReturns\fP
.RS 4
The incremented value\&.   
.RE
.PP

.SS "#define ZYAN_ATOMIC_INCREMENT64(destination)       ZyanAtomicIncrement64((\fBZyanAtomic64\fP*)&(destination));"

.PP
Increments the given value and stores the result, as an atomic operation\&.
.PP
\fBParameters\fP
.RS 4
\fIdestination\fP A pointer to the destination value\&.
.RE
.PP
\fBReturns\fP
.RS 4
The incremented value\&.   
.RE
.PP

.SH "Author"
.PP 
Generated automatically by Doxygen for Zycore from the source code\&.
