CACAO
Functions
Atomic_md Namespace Reference

Functions

uint32_t compare_and_swap (volatile uint32_t *p, uint32_t oldval, uint32_t newval)
 An atomic compare and swap for 32-bit integer values. More...
 
uint64_t compare_and_swap (volatile uint64_t *p, uint64_t oldval, uint64_t newval)
 An atomic compare and swap for 64-bit integer values. More...
 
void memory_barrier (void)
 A memory barrier. More...
 
void write_memory_barrier (void)
 A write memory barrier. More...
 
void instruction_barrier (void)
 An instruction barrier. More...
 

Function Documentation

uint32_t Atomic_md::compare_and_swap ( volatile uint32_t *  p,
uint32_t  oldval,
uint32_t  newval 
)
inline

An atomic compare and swap for 32-bit integer values.

Parameters
pPointer to memory address.
oldvalOld value to be expected.
newvalNew value to be stored.
Returns
value of the memory location before the store

Definition at line 48 of file md-atomic.hpp.

uint64_t Atomic_md::compare_and_swap ( volatile uint64_t *  p,
uint64_t  oldval,
uint64_t  newval 
)
inline

An atomic compare and swap for 64-bit integer values.

Parameters
pPointer to memory address.
oldvalOld value to be expected.
newvalNew value to be stored.
Returns
value of the memory location before the store

Definition at line 79 of file md-atomic.hpp.

void Atomic_md::instruction_barrier ( void  )
inline

An instruction barrier.

An instruction memory barrier.

Definition at line 124 of file md-atomic.hpp.

void Atomic_md::memory_barrier ( void  )
inline

A memory barrier.

Definition at line 104 of file md-atomic.hpp.

void Atomic_md::write_memory_barrier ( void  )
inline

A write memory barrier.

Definition at line 114 of file md-atomic.hpp.