MU Library
atomic.hpp File Reference
#include <cstdint>
Include dependency graph for atomic.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 mu
 

Functions

int32_t mu::atomicAdd (int32_t *address, int32_t val)
 Atomically adds a value to memory. More...
 
int32_t mu::atomicAddAsync (int32_t *address, int32_t val)
 Atomically adds a value to memory asynchronously. More...
 
uint32_t mu::atomicAnd (uint32_t *address, uint32_t val)
 Atomically performs bitwise AND operation with memory. More...
 
uint32_t mu::atomicAndAsync (uint32_t *address, uint32_t val)
 Atomically performs bitwise AND operation with memory asynchronously. More...
 
uint32_t mu::atomicOr (uint32_t *address, uint32_t val)
 Atomically performs bitwise OR operation with memory. More...
 
uint32_t mu::atomicOrAsync (uint32_t *address, uint32_t val)
 Atomically performs bitwise OR operation with memory asynchronously. More...
 
uint32_t mu::atomicXor (uint32_t *address, uint32_t val)
 Atomically performs bitwise XOR operation with memory. More...
 
uint32_t mu::atomicXorAsync (uint32_t *address, uint32_t val)
 Atomically performs bitwise XOR operation with memory asynchronously. More...
 
int32_t mu::atomicInc (int32_t *address, int32_t val)
 Atomically increments memory value. More...
 
int32_t mu::atomicIncAsync (int32_t *address, int32_t val)
 Atomically increments memory value asynchronously. More...
 
int32_t mu::atomicDec (int32_t *address, int32_t val)
 Atomically decrements memory value. More...
 
int32_t mu::atomicDecAsync (int32_t *address, int32_t val)
 Atomically decrements memory value asynchronously. More...
 
int32_t mu::atomicMin (int32_t *address, int32_t val)
 Atomically sets memory to minimum of current and new value. More...
 
int32_t mu::atomicMax (int32_t *address, int32_t val)
 Atomically sets memory to maximum of current and new value. More...
 
int32_t mu::atomicSwap (int32_t *address, int32_t val)
 Atomically exchanges memory value with new value. More...
 
int32_t mu::atomicCAS (int32_t *address, int32_t val, int32_t compare)
 Atomically compares and swaps memory value. More...
 
int64_t mu::atomicSwap58 (int64_t *address, int64_t val)
 Atomically exchanges memory value with new value (58-bit) More...
 
uint64_t mu::atomicOr58 (uint64_t *address, uint64_t val)
 Atomically performs bitwise OR operation with memory (58-bit) More...
 
uint64_t mu::atomicAnd58 (uint64_t *address, uint64_t val)
 Atomically performs bitwise AND operation with memory (58-bit) More...
 
uint64_t mu::atomicXor58 (uint64_t *address, uint64_t val)
 Atomically performs bitwise XOR operation with memory (58-bit) More...
 
int32_t mu::atomicLoad (int32_t *address)
 Atomically reads a value from memory. More...
 
int64_t mu::atomicLoad58 (int64_t *address)
 Atomically reads a value from memory (58-bit) More...
 
int32_t mu::atomicStoreAsync (int32_t *address, int32_t val)
 Atomically stores a value to memory asynchronously. More...
 
int64_t mu::atomicStore58Async (int64_t *address, int64_t val)
 Atomically stores a value to memory asynchronously (58-bit) More...