Miosix  2.01
atomic_ops.h File Reference

Namespaces

 miosix
 c++11
 

Functions

int miosix::atomicSwap (volatile int *p, int v)
 
void miosix::atomicAdd (volatile int *p, int incr)
 
int miosix::atomicAddExchange (volatile int *p, int incr)
 
int miosix::atomicCompareAndSwap (volatile int *p, int prev, int next)
 
void * miosix::atomicFetchAndIncrement (void *const volatile *p, int offset, int incr)
 

Detailed Description

This file contains various atomic operations useful for implementing lock-free algorithms.

For architectures without hardware support for these operations, they are emulated by disabling interrupts. Note that these functions should be safe to be called also with interrupts disabled, so implementations that disable interrupts should be careful not to accidentally re-enable them if these functions are called with interupts disabled.