CACAO
Data Structures | Functions
Atomic Namespace Reference

Data Structures

struct  CAS_32_functor
 
struct  CAS_64_functor
 
class  CAS_chooser
 
class  CAS_chooser< 4 >
 
class  CAS_chooser< 8 >
 
class  CAS
 

Functions

uint32_t generic_compare_and_swap (volatile uint32_t *p, uint32_t oldval, uint32_t newval)
 A generic atomic compare and swap for 32-bit integer values. More...
 
uint64_t generic_compare_and_swap (volatile uint64_t *p, uint64_t oldval, uint64_t newval)
 A generic atomic compare and swap for 64-bit integer values. More...
 
voidgeneric_compare_and_swap (volatile void **p, void *oldval, void *newval)
 A generic atomic compare and swap for pointer values. More...
 
void generic_memory_barrier (void)
 A generic memory barrier. More...
 
template<class T >
compare_and_swap (T *p, T o, T n)
 
void memory_barrier (void)
 
void write_memory_barrier (void)
 
void instruction_barrier (void)
 

Function Documentation

template<class T >
T Atomic::compare_and_swap ( T *  p,
o,
n 
)

Definition at line 92 of file atomic.hpp.

uint32_t Atomic::generic_compare_and_swap ( volatile uint32_t *  p,
uint32_t  oldval,
uint32_t  newval 
)

A generic atomic compare and swap for 32-bit integer values.

This function is using a mutex to provide atomicity.

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 atomic.cpp.

uint64_t Atomic::generic_compare_and_swap ( volatile uint64_t *  p,
uint64_t  oldval,
uint64_t  newval 
)

A generic atomic compare and swap for 64-bit integer values.

This function is using a mutex to provide atomicity.

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 77 of file atomic.cpp.

void * Atomic::generic_compare_and_swap ( volatile void **  p,
void oldval,
void newval 
)

A generic atomic compare and swap for pointer values.

This function is using a mutex to provide atomicity.

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 106 of file atomic.cpp.

void Atomic::generic_memory_barrier ( void  )

A generic memory barrier.

This function is using a mutex to provide atomicity.

Definition at line 129 of file atomic.cpp.

void Atomic::instruction_barrier ( void  )
inline

Definition at line 98 of file atomic.hpp.

void Atomic::memory_barrier ( void  )
inline

Definition at line 96 of file atomic.hpp.

void Atomic::write_memory_barrier ( void  )
inline

Definition at line 97 of file atomic.hpp.