#include <intrin.h>
Go to the source code of this file.
◆ pg_compiler_barrier_impl
#define pg_compiler_barrier_impl |
( |
| ) |
_ReadWriteBarrier() |
◆ PG_HAVE_ATOMIC_COMPARE_EXCHANGE_U32
#define PG_HAVE_ATOMIC_COMPARE_EXCHANGE_U32 |
◆ PG_HAVE_ATOMIC_COMPARE_EXCHANGE_U64
#define PG_HAVE_ATOMIC_COMPARE_EXCHANGE_U64 |
◆ PG_HAVE_ATOMIC_EXCHANGE_U32
#define PG_HAVE_ATOMIC_EXCHANGE_U32 |
◆ PG_HAVE_ATOMIC_FETCH_ADD_U32
#define PG_HAVE_ATOMIC_FETCH_ADD_U32 |
◆ PG_HAVE_ATOMIC_U32_SUPPORT
#define PG_HAVE_ATOMIC_U32_SUPPORT |
◆ PG_HAVE_ATOMIC_U64_SUPPORT
#define PG_HAVE_ATOMIC_U64_SUPPORT |
◆ pg_memory_barrier_impl
#define pg_memory_barrier_impl |
( |
| ) |
MemoryBarrier() |
◆ pg_atomic_uint32
◆ pg_atomic_compare_exchange_u32_impl()
Definition at line 48 of file generic-msvc.h.
50{
51 bool ret;
53 current = InterlockedCompareExchange(&ptr->value,
newval, *expected);
54 ret = current == *expected;
55 *expected = current;
56 return ret;
57}
References newval, and pg_atomic_uint32::value.
◆ pg_atomic_compare_exchange_u64_impl()
Definition at line 83 of file generic-msvc.h.
85{
86 bool ret;
88 current = _InterlockedCompareExchange64(&ptr->value,
newval, *expected);
89 ret = current == *expected;
90 *expected = current;
91 return ret;
92}
References newval, and pg_atomic_uint64::value.
◆ pg_atomic_exchange_u32_impl()
◆ pg_atomic_fetch_add_u32_impl()
◆ pg_attribute_aligned()
struct pg_attribute_aligned |
( |
8 |
| ) |
|
◆ pg_atomic_uint64