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  )