Wwise SDK
_platforms_2_windows_2_ak_atomic_8h_source
バージョン
menu_open
警告:あなたのメジャーリリース ( 2022.1.13.8454 ) に該当する最新ドキュメンテーションが表示されています。特定バージョンのドキュメンテーションにアクセスするには、Audiokinetic Launcherでオフラインドキュメンテーションをダウンロードし、Wwise AuthoringのOffline Documentationオプションにチェックを入れてください。
link
ターゲットプラットフォーム:
Wwise SDK 2022.1.13
|
AkAtomic.h
[詳解]
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 AkAtomicExchange32(AkAtomic32 *pDest, long value)
Definition: AkAtomic.h:62
__forceinline int AkAtomicCasPtr(AkAtomicPtr *pDest, void *proposed, void *expected)
Definition: AkAtomic.h:102