atomic.h File Reference


Detailed Description

Utilities for atomic integer operations.

#include <support/SupportDefs.h>
#include <SysThread.h>

Go to the source code of this file.

Classes

struct  SAtomicInt32
 Convenience wrapper for an atomic integer. More...

Functions

int32_t _IMPEXP_SUPPORT atomic_add (volatile int32_t *value, int32_t addvalue)
int32_t _IMPEXP_SUPPORT atomic_and (volatile int32_t *value, int32_t andvalue)
int32_t _IMPEXP_SUPPORT atomic_or (volatile int32_t *value, int32_t orvalue)
INLINE_FNC int cmpxchg32 (volatile int32_t *atom, int32_t *value, int32_t newValue)
 Perform a 32-bit atomic compare and swap.
INLINE_FNC int cmpxchg64 (volatile int64_t *atom, int64_t *value, int64_t newValue)
 Perform a 64-bit atomic compare and swap.
int32_t _IMPEXP_SUPPORT compare_and_swap32 (volatile int32_t *location, int32_t oldValue, int32_t newValue)
int32_t _IMPEXP_SUPPORT compare_and_swap64 (volatile int64_t *location, int64_t oldValue, int64_t newValue)
int32_t SysAtomicAdd32 (int32_t volatile *ioOperandP, int32_t iAddend)
uint32_t SysAtomicAnd32 (uint32_t volatile *ioOperandP, uint32_t iValue)
uint32_t SysAtomicCompareAndSwap32 (uint32_t volatile *ioOperandP, uint32_t iOldValue, uint32_t iNewValue)
uint32_t SysAtomicCompareAndSwap64 (uint64_t volatile *ioOperandP, uint64_t iOldValue, uint64_t iNewValue)
uint32_t SysAtomicOr32 (uint32_t volatile *ioOperandP, uint32_t iValue)
void _IMPEXP_SUPPORT SysConditionVariableBroadcast (SysConditionVariableType *iCV)
void _IMPEXP_SUPPORT SysConditionVariableClose (SysConditionVariableType *iCV)
void _IMPEXP_SUPPORT SysConditionVariableOpen (SysConditionVariableType *iCV)
void _IMPEXP_SUPPORT SysConditionVariableWait (SysConditionVariableType *iCV, SysCriticalSectionType *iOptionalCS)
void _IMPEXP_SUPPORT SysCriticalSectionEnter (SysCriticalSectionType *iCS)
void _IMPEXP_SUPPORT SysCriticalSectionExit (SysCriticalSectionType *iCS)


Function Documentation

int32_t _IMPEXP_SUPPORT atomic_add volatile int32_t *  value,
int32_t  addvalue
 

int32_t _IMPEXP_SUPPORT atomic_and volatile int32_t *  value,
int32_t  andvalue
 

int32_t _IMPEXP_SUPPORT atomic_or volatile int32_t *  value,
int32_t  orvalue
 

int32_t _IMPEXP_SUPPORT compare_and_swap32 volatile int32_t *  location,
int32_t  oldValue,
int32_t  newValue
 

int32_t _IMPEXP_SUPPORT compare_and_swap64 volatile int64_t *  location,
int64_t  oldValue,
int64_t  newValue
 

int32_t SysAtomicAdd32 int32_t volatile *  ioOperandP,
int32_t  iAddend
[inline]
 

uint32_t SysAtomicAnd32 uint32_t volatile *  ioOperandP,
uint32_t  iValue
[inline]
 

uint32_t SysAtomicCompareAndSwap32 uint32_t volatile *  ioOperandP,
uint32_t  iOldValue,
uint32_t  iNewValue
[inline]
 

uint32_t SysAtomicCompareAndSwap64 uint64_t volatile *  ioOperandP,
uint64_t  iOldValue,
uint64_t  iNewValue
[inline]
 

uint32_t SysAtomicOr32 uint32_t volatile *  ioOperandP,
uint32_t  iValue
[inline]
 

void _IMPEXP_SUPPORT SysConditionVariableBroadcast SysConditionVariableType iCV  ) 
 

void _IMPEXP_SUPPORT SysConditionVariableClose SysConditionVariableType iCV  ) 
 

void _IMPEXP_SUPPORT SysConditionVariableOpen SysConditionVariableType iCV  ) 
 

void _IMPEXP_SUPPORT SysConditionVariableWait SysConditionVariableType iCV,
SysCriticalSectionType iOptionalCS
 

void _IMPEXP_SUPPORT SysCriticalSectionEnter SysCriticalSectionType iCS  ) 
 

void _IMPEXP_SUPPORT SysCriticalSectionExit SysCriticalSectionType iCS  )