14#ifndef VL_ATOMIC_PTR_H
15#define VL_ATOMIC_PTR_H
35#pragma warning(disable : 4324)
50#define VL_ATOMIC_PTR_ALIGN sizeof(vl_tagged_ptr)
58#pragma warning(disable : 4324)
87static inline void vlAtomicPtrStore(
vl_atomic_ptr* atomicPtr,
void* ptr)
165#define vlAtomicPtrCompareExchangeStrong(atPtr, atPtrExpected, valPtr) \
166 vlAtomicPtrCompareExchangeStrongExplicit(atPtr, atPtrExpected, valPtr, VL_MEMORY_ORDER_SEQ_CST, \
167 VL_MEMORY_ORDER_SEQ_CST)
180#define vlAtomicPtrCompareExchangeWeak(atPtr, atPtrExpected, valPtr) \
181 vlAtomicPtrCompareExchangeWeakExplicit(atPtr, atPtrExpected, valPtr, VL_MEMORY_ORDER_SEQ_CST, \
182 VL_MEMORY_ORDER_SEQ_CST)
#define vlAtomicStore(ptr, val)
Performs a generic atomic write operation.
Definition vl_atomic.h:208
#define VL_ATOMIC
Definition vl_atomic.h:40
#define vlAtomicCompareExchangeStrongExplicit(ptr, expectedPtr, desired, trueOrder, falseOrder)
Atomically compares the memory at ptr with. If *ptr == *expectedPtr, *ptr = desired.
Definition vl_atomic.h:462
#define vlAtomicCompareExchangeWeakExplicit(ptr, expectedPtr, desired, trueOrder, falseOrder)
Atomically compares the memory at ptr with. If *ptr == *expectedPtr, *ptr = desired.
Definition vl_atomic.h:439
#define vlAtomicLoad(ptr)
Performs a generic atomic read operation.
Definition vl_atomic.h:181
vl_memory_order_t
Memory order enumeration. Dictates reordering of memory accesses surrounding and including atomic ope...
Definition vl_atomic.h:114
vl_tagged_ptr
Definition vl_atomic_ptr.h:41
VL_API const vl_tagged_ptr VL_TAGPTR_NULL
Default initialization value for tagged/atomic pointers.
Definition vl_atomic_ptr.c:3
VL_ATOMIC vl_tagged_ptr vl_atomic_ptr
Atomic variant of vl_tagged_ptr.
Definition vl_atomic_ptr.h:60
#define VL_ALIGN_HINT(x)
Structure alignment hint.
Definition vl_memory.h:90
VL_UPTR_T vl_uintptr_t
Unsigned integer type suitable for expressing memory addresses.
Definition vl_numtypes.h:163
VL_BOOL_T vl_bool_t
Definition vl_numtypes.h:191
VL_ULARGE_T vl_ularge_t
Largest available unsigned integer type.
Definition vl_numtypes.h:136