.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 \fP .br \fC#include \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\&.