AAX SDK  2.4.1
Avid Audio Extensions Development Kit
Macros | Functions
AAX_Atomic.h File Reference
#include "AAX.h"
#include <stdint.h>

Go to the source code of this file.

Description

Atomic operation utilities.

Macros

#define _AAX_ATOMIC_H_
 

Functions

uint32_t AAX_CALLBACK AAX_Atomic_IncThenGet_32 (uint32_t &ioData)
 Increments a 32-bit value and returns the result. More...
 
uint32_t AAX_CALLBACK AAX_Atomic_DecThenGet_32 (uint32_t &ioData)
 Decrements a 32-bit value and returns the result. More...
 
uint32_t AAX_CALLBACK AAX_Atomic_Exchange_32 (volatile uint32_t &ioValue, uint32_t inExchangeValue)
 Return the original value of ioValue and then set it to inExchangeValue. More...
 
uint64_t AAX_CALLBACK AAX_Atomic_Exchange_64 (volatile uint64_t &ioValue, uint64_t inExchangeValue)
 Return the original value of ioValue and then set it to inExchangeValue. More...
 
template<typename TPointer >
TPointer *AAX_CALLBACK AAX_Atomic_Exchange_Pointer (TPointer *&ioValue, TPointer *inExchangeValue)
 Perform an exchange operation on a pointer value. More...
 
bool AAX_CALLBACK AAX_Atomic_CompareAndExchange_32 (volatile uint32_t &ioValue, uint32_t inCompareValue, uint32_t inExchangeValue)
 Perform a compare and exchange operation on a 32-bit value. More...
 
bool AAX_CALLBACK AAX_Atomic_CompareAndExchange_64 (volatile uint64_t &ioValue, uint64_t inCompareValue, uint64_t inExchangeValue)
 Perform a compare and exchange operation on a 64-bit value. More...
 
template<typename TPointer >
bool AAX_CALLBACK AAX_Atomic_CompareAndExchange_Pointer (TPointer *&ioValue, TPointer *inCompareValue, TPointer *inExchangeValue)
 Perform a compare and exchange operation on a pointer value. More...
 
template<typename TPointer >
TPointer *AAX_CALLBACK AAX_Atomic_Load_Pointer (TPointer const *const volatile *inValue)
 Atomically loads a pointer value. More...
 

Macro Definition Documentation

◆ _AAX_ATOMIC_H_

#define _AAX_ATOMIC_H_

Function Documentation

◆ AAX_Atomic_IncThenGet_32()

uint32_t AAX_CALLBACK AAX_Atomic_IncThenGet_32 ( uint32_t &  ioData)

Increments a 32-bit value and returns the result.

◆ AAX_Atomic_DecThenGet_32()

uint32_t AAX_CALLBACK AAX_Atomic_DecThenGet_32 ( uint32_t &  ioData)

Decrements a 32-bit value and returns the result.

◆ AAX_Atomic_Exchange_32()

uint32_t AAX_CALLBACK AAX_Atomic_Exchange_32 ( volatile uint32_t &  ioValue,
uint32_t  inExchangeValue 
)

Return the original value of ioValue and then set it to inExchangeValue.

Referenced by AAX_Atomic_Exchange_Pointer().

Here is the caller graph for this function:

◆ AAX_Atomic_Exchange_64()

uint64_t AAX_CALLBACK AAX_Atomic_Exchange_64 ( volatile uint64_t &  ioValue,
uint64_t  inExchangeValue 
)

Return the original value of ioValue and then set it to inExchangeValue.

Referenced by AAX_Atomic_Exchange_Pointer().

Here is the caller graph for this function:

◆ AAX_Atomic_Exchange_Pointer()

template<typename TPointer >
TPointer* AAX_CALLBACK AAX_Atomic_Exchange_Pointer ( TPointer *&  ioValue,
TPointer *  inExchangeValue 
)

Perform an exchange operation on a pointer value.

References AAX_Atomic_Exchange_32(), and AAX_Atomic_Exchange_64().

Here is the call graph for this function:

◆ AAX_Atomic_CompareAndExchange_32()

bool AAX_CALLBACK AAX_Atomic_CompareAndExchange_32 ( volatile uint32_t &  ioValue,
uint32_t  inCompareValue,
uint32_t  inExchangeValue 
)

Perform a compare and exchange operation on a 32-bit value.

Referenced by AAX_Atomic_CompareAndExchange_Pointer().

Here is the caller graph for this function:

◆ AAX_Atomic_CompareAndExchange_64()

bool AAX_CALLBACK AAX_Atomic_CompareAndExchange_64 ( volatile uint64_t &  ioValue,
uint64_t  inCompareValue,
uint64_t  inExchangeValue 
)

Perform a compare and exchange operation on a 64-bit value.

Referenced by AAX_Atomic_CompareAndExchange_Pointer().

Here is the caller graph for this function:

◆ AAX_Atomic_CompareAndExchange_Pointer()

template<typename TPointer >
bool AAX_CALLBACK AAX_Atomic_CompareAndExchange_Pointer ( TPointer *&  ioValue,
TPointer *  inCompareValue,
TPointer *  inExchangeValue 
)

Perform a compare and exchange operation on a pointer value.

References AAX_Atomic_CompareAndExchange_32(), and AAX_Atomic_CompareAndExchange_64().

Here is the call graph for this function:

◆ AAX_Atomic_Load_Pointer()

template<typename TPointer >
TPointer* AAX_CALLBACK AAX_Atomic_Load_Pointer ( TPointer const *const volatile *  inValue)

Atomically loads a pointer value.