atomic Reference

File
lib/system/include/system/atomic.h
Date
Wednesday, June 25, 2014
Includes
  • <stdint.h>
  • <stdbool.h>

Tasks

System_Atomic_Add32

int32_t System_Atomic_Add32( int32_t amount, volatile int32_t *value );

System_Atomic_Add64

int64_t System_Atomic_Add64( int64_t amount, volatile int64_t *value );

System_Atomic_And32

int32_t System_Atomic_And32( uint32_t mask, volatile uint32_t *value );

System_Atomic_CompareAndSwap16

bool System_Atomic_CompareAndSwap16( int16_t oldValue, int16_t newValue, volatile int16_t *value );

System_Atomic_CompareAndSwap32

bool System_Atomic_CompareAndSwap32( int32_t oldValue, int32_t newValue, volatile int32_t *value );

System_Atomic_CompareAndSwap64

bool System_Atomic_CompareAndSwap64( int64_t oldValue, int64_t newValue, volatile int64_t *value );

System_Atomic_CompareAndSwap8

bool System_Atomic_CompareAndSwap8( int8_t oldValue, int8_t newValue, volatile int8_t *value );

System_Atomic_CompareAndSwapChar

bool System_Atomic_CompareAndSwapChar( char oldValue, char newValue, volatile char *value );

System_Atomic_CompareAndSwapInt

bool System_Atomic_CompareAndSwapInt( int oldValue, int newValue, volatile int *value );

System_Atomic_CompareAndSwapLong

bool System_Atomic_CompareAndSwapLong( long oldValue, long newValue, volatile long *value );

System_Atomic_CompareAndSwapPtr

bool System_Atomic_CompareAndSwapPtr( void *oldValue, void *newValue, void *volatile * value );

System_Atomic_CompareAndSwapShort

bool System_Atomic_CompareAndSwapShort( short oldValue, short newValue, volatile short *value );

System_Atomic_Decrement32

int32_t System_Atomic_Decrement32( volatile int32_t *value );

System_Atomic_Decrement64

int64_t System_Atomic_Decrement64( volatile int64_t *value );

System_Atomic_Increment32

int32_t System_Atomic_Increment32( volatile int32_t *value );

System_Atomic_Increment64

int64_t System_Atomic_Increment64( volatile int64_t *value );

System_Atomic_MemoryBarrier

void System_Atomic_MemoryBarrier( void );

System_Atomic_Or32

int32_t System_Atomic_Or32( uint32_t mask, volatile uint32_t *value );

System_Atomic_SpinLockLock

void System_Atomic_SpinLockLock( System_Atomic_SpinLock *lock );

System_Atomic_SpinLockTry

bool System_Atomic_SpinLockTry( System_Atomic_SpinLock *lock );

System_Atomic_SpinLockUnlock

void System_Atomic_SpinLockUnlock( System_Atomic_SpinLock *lock );

System_Atomic_TestAndClear

bool System_Atomic_TestAndClear( uint32_t n, volatile void *address );

System_Atomic_TestAndSet

bool System_Atomic_TestAndSet( uint32_t n, volatile void *address );

System_Atomic_Xor32

int32_t System_Atomic_Xor32( uint32_t mask, volatile uint32_t *value );

Types

System_Atomic_SpinLock

typedef int32_t System_Atomic_SpinLock;

Macros

__XEOS_LIB_SYSTEM_ATOMIC_H__

#define __XEOS_LIB_SYSTEM_ATOMIC_H__