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.


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


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

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  )