Wwise SDK 2022.1.7
_platforms_2_windows_2_ak_atomic_8h_source
Version
menu_open
link
Target Platform(s):

Wwise SDK 2022.1.7
|
AkAtomic.h
Go to the documentation of this file.
55 __forceinline long AkAtomicLoad32( AkAtomic32* pSrc ) { long tmp; tmp = *pSrc; AK_ATOMIC_FENCE_FULL_BARRIER(); return tmp; }
59 __forceinline void AkAtomicStore32( AkAtomic32* pDest, long value ) { InterlockedExchange(pDest, value); }
60 __forceinline long AkAtomicInc32( AkAtomic32* pValue ) { return InterlockedExchangeAdd( pValue, 1 ) + 1; }
61 __forceinline long AkAtomicDec32( AkAtomic32* pValue ) { return InterlockedExchangeAdd( pValue, -1 ) - 1; }
62 __forceinline long AkAtomicExchange32( AkAtomic32* pDest, long value ) { return InterlockedExchange( pDest, value ); }
63 __forceinline long AkAtomicAdd32( AkAtomic32* pDest, long value ) { return InterlockedExchangeAdd( pDest, value ) + value; }
64 __forceinline long AkAtomicSub32( AkAtomic32* pDest, long value ) { return InterlockedExchangeAdd( pDest, -value ) - value; }
65 __forceinline long AkAtomicAnd32( AkAtomic32* pDest, long value ) { return InterlockedAnd(pDest, value) & value; }
66 __forceinline long AkAtomicOr32( AkAtomic32* pDest, long value ) { return InterlockedOr(pDest, value) | value; }
67 __forceinline int AkAtomicCas32( AkAtomic32* pDest, long proposed, long expected ) { return InterlockedCompareExchange( pDest, proposed, expected ) == expected ? 1 : 0; }
71 __forceinline long long AkAtomicLoad64( AkAtomic64* pSrc ) { long long tmp; tmp = *pSrc; AK_ATOMIC_FENCE_FULL_BARRIER(); return tmp; }
76 __forceinline long long AkAtomicLoad64( AkAtomic64* pSrc ) { return InterlockedCompareExchange64( pSrc, 0, 0 ); }
79 __forceinline void AkAtomicStore64( AkAtomic64* pDest, long long value ) { InterlockedExchange64(pDest, value); }
80 __forceinline long long AkAtomicInc64( AkAtomic64* pValue ) { return InterlockedExchangeAdd64( pValue, 1 ) + 1; }
81 __forceinline long long AkAtomicDec64( AkAtomic64* pValue ) { return InterlockedExchangeAdd64( pValue, - 1 ) - 1; }
82 __forceinline long long AkAtomicExchange64( AkAtomic64* pDest, long long value ) { return InterlockedExchange64( pDest, value ); }
83 __forceinline long long AkAtomicAdd64( AkAtomic64* pDest, long long value ) { return InterlockedExchangeAdd64( pDest, value ) + value; }
84 __forceinline long long AkAtomicSub64( AkAtomic64* pDest, long long value ) { return InterlockedExchangeAdd64( pDest, -value ) - value; }
85 __forceinline long long AkAtomicAnd64( AkAtomic64* pDest, long long value ) { return InterlockedAnd64(pDest, value) & value; }
86 __forceinline long long AkAtomicOr64( AkAtomic64* pDest, long long value ) { return InterlockedOr64(pDest, value) | value; }
87 __forceinline int AkAtomicCas64( AkAtomic64* pDest, long long proposed, long long expected ) { return InterlockedCompareExchange64( pDest, proposed, expected ) == expected ? 1 : 0; }
90 __forceinline void* AkAtomicLoadPtr( AkAtomicPtr* pSrc ) { void* tmp; tmp = ( void* )*pSrc; AK_ATOMIC_FENCE_FULL_BARRIER(); return tmp; }
96 __forceinline void AkAtomicStorePtr( AkAtomicPtr* pDest, void* value ) { InterlockedExchangePointer( ( volatile PVOID* )pDest, value ); }
97 __forceinline void* AkAtomicExchangePtr( AkAtomicPtr* pDest, void* value ) { return InterlockedExchangePointer( ( volatile PVOID* )pDest, value ); }
98 __forceinline int AkAtomicCasPtr( AkAtomicPtr* pDest, void* proposed, void* expected ) { return InterlockedCompareExchangePointer( ( volatile PVOID* )pDest, proposed, expected ) == expected ? 1 : 0; }
100 __forceinline void AkAtomicStorePtr( AkAtomicPtr* pDest, void* value ) { InterlockedExchangePointer( ( void** )pDest, value ); }
101 __forceinline void* AkAtomicExchangePtr(AkAtomicPtr* pDest, void* value) { return InterlockedExchangePointer( ( void** )pDest, value ); }
102 __forceinline int AkAtomicCasPtr(AkAtomicPtr* pDest, void* proposed, void* expected) { return InterlockedCompareExchangePointer( ( void** )pDest, proposed, expected ) == expected ? 1 : 0; }
__forceinline long AkAtomicAdd32(AkAtomic32 *pDest, long value)
Definition: AkAtomic.h:63
__forceinline int AkAtomicCas64(AkAtomic64 *pDest, long long proposed, long long expected)
Definition: AkAtomic.h:87
__forceinline void * AkAtomicExchangePtr(AkAtomicPtr *pDest, void *value)
Definition: AkAtomic.h:101
__forceinline void AkAtomicStore64(AkAtomic64 *pDest, long long value)
Definition: AkAtomic.h:79
__forceinline long long AkAtomicOr64(AkAtomic64 *pDest, long long value)
Definition: AkAtomic.h:86
__forceinline int AkAtomicCas32(AkAtomic32 *pDest, long proposed, long expected)
Definition: AkAtomic.h:67
__forceinline void AkAtomicStorePtr(AkAtomicPtr *pDest, void *value)
Definition: AkAtomic.h:100
__forceinline long long AkAtomicAnd64(AkAtomic64 *pDest, long long value)
Definition: AkAtomic.h:85
__forceinline void AkAtomicStore32(AkAtomic32 *pDest, long value)
Definition: AkAtomic.h:59
__forceinline long long AkAtomicSub64(AkAtomic64 *pDest, long long value)
Definition: AkAtomic.h:84
__forceinline long long AkAtomicExchange64(AkAtomic64 *pDest, long long value)
Definition: AkAtomic.h:82
__forceinline long long AkAtomicAdd64(AkAtomic64 *pDest, long long value)
Definition: AkAtomic.h:83
__forceinline long AkAtomicAnd32(AkAtomic32 *pDest, long value)
Definition: AkAtomic.h:65
__forceinline long AkAtomicSub32(AkAtomic32 *pDest, long value)
Definition: AkAtomic.h:64
__forceinline long AkAtomicOr32(AkAtomic32 *pDest, long value)
Definition: AkAtomic.h:66
__forceinline long AkAtomicExchange32(AkAtomic32 *pDest, long value)
Definition: AkAtomic.h:62
__forceinline int AkAtomicCasPtr(AkAtomicPtr *pDest, void *proposed, void *expected)
Definition: AkAtomic.h:102
Was this page helpful?
Need Support?
Questions? Problems? Need more info? Contact us, and we can help!
Visit our Support pageTell us about your project. We're here to help.
Register your project and we'll help you get started with no strings attached!
Get started with Wwise