PostgreSQL Source Code
git master
|
Go to the source code of this file.
Data Structures | |
struct | pg_atomic_flag |
struct | pg_atomic_uint32 |
struct | pg_atomic_uint64 |
Macros | |
#define | PG_HAVE_MEMORY_BARRIER_EMULATION |
#define | pg_memory_barrier_impl pg_spinlock_barrier |
#define | PG_HAVE_COMPILER_BARRIER_EMULATION |
#define | pg_compiler_barrier_impl pg_extern_compiler_barrier |
#define | PG_HAVE_ATOMIC_FLAG_SIMULATION |
#define | PG_HAVE_ATOMIC_FLAG_SUPPORT |
#define | PG_HAVE_ATOMIC_U32_SIMULATION |
#define | PG_HAVE_ATOMIC_U32_SUPPORT |
#define | PG_HAVE_ATOMIC_U64_SIMULATION |
#define | PG_HAVE_ATOMIC_U64_SUPPORT |
#define | PG_HAVE_ATOMIC_INIT_FLAG |
#define | PG_HAVE_ATOMIC_TEST_SET_FLAG |
#define | PG_HAVE_ATOMIC_CLEAR_FLAG |
#define | PG_HAVE_ATOMIC_UNLOCKED_TEST_FLAG |
#define | PG_HAVE_ATOMIC_INIT_U32 |
#define | PG_HAVE_ATOMIC_WRITE_U32 |
#define | PG_HAVE_ATOMIC_COMPARE_EXCHANGE_U32 |
#define | PG_HAVE_ATOMIC_FETCH_ADD_U32 |
#define | PG_HAVE_ATOMIC_INIT_U64 |
#define | PG_HAVE_ATOMIC_COMPARE_EXCHANGE_U64 |
#define | PG_HAVE_ATOMIC_FETCH_ADD_U64 |
Typedefs | |
typedef struct pg_atomic_flag | pg_atomic_flag |
typedef struct pg_atomic_uint32 | pg_atomic_uint32 |
typedef struct pg_atomic_uint64 | pg_atomic_uint64 |
Functions | |
void | pg_spinlock_barrier (void) |
void | pg_extern_compiler_barrier (void) |
void | pg_atomic_init_flag_impl (volatile pg_atomic_flag *ptr) |
bool | pg_atomic_test_set_flag_impl (volatile pg_atomic_flag *ptr) |
void | pg_atomic_clear_flag_impl (volatile pg_atomic_flag *ptr) |
bool | pg_atomic_unlocked_test_flag_impl (volatile pg_atomic_flag *ptr) |
void | pg_atomic_init_u32_impl (volatile pg_atomic_uint32 *ptr, uint32 val_) |
void | pg_atomic_write_u32_impl (volatile pg_atomic_uint32 *ptr, uint32 val) |
bool | pg_atomic_compare_exchange_u32_impl (volatile pg_atomic_uint32 *ptr, uint32 *expected, uint32 newval) |
uint32 | pg_atomic_fetch_add_u32_impl (volatile pg_atomic_uint32 *ptr, int32 add_) |
void | pg_atomic_init_u64_impl (volatile pg_atomic_uint64 *ptr, uint64 val_) |
bool | pg_atomic_compare_exchange_u64_impl (volatile pg_atomic_uint64 *ptr, uint64 *expected, uint64 newval) |
uint64 | pg_atomic_fetch_add_u64_impl (volatile pg_atomic_uint64 *ptr, int64 add_) |
#define pg_compiler_barrier_impl pg_extern_compiler_barrier |
Definition at line 50 of file fallback.h.
#define PG_HAVE_ATOMIC_CLEAR_FLAG |
Definition at line 132 of file fallback.h.
#define PG_HAVE_ATOMIC_COMPARE_EXCHANGE_U32 |
Definition at line 148 of file fallback.h.
#define PG_HAVE_ATOMIC_COMPARE_EXCHANGE_U64 |
Definition at line 163 of file fallback.h.
#define PG_HAVE_ATOMIC_FETCH_ADD_U32 |
Definition at line 152 of file fallback.h.
#define PG_HAVE_ATOMIC_FETCH_ADD_U64 |
Definition at line 167 of file fallback.h.
#define PG_HAVE_ATOMIC_FLAG_SIMULATION |
Definition at line 67 of file fallback.h.
#define PG_HAVE_ATOMIC_FLAG_SUPPORT |
Definition at line 68 of file fallback.h.
#define PG_HAVE_ATOMIC_INIT_FLAG |
Definition at line 126 of file fallback.h.
#define PG_HAVE_ATOMIC_INIT_U32 |
Definition at line 142 of file fallback.h.
#define PG_HAVE_ATOMIC_INIT_U64 |
Definition at line 160 of file fallback.h.
#define PG_HAVE_ATOMIC_TEST_SET_FLAG |
Definition at line 129 of file fallback.h.
#define PG_HAVE_ATOMIC_U32_SIMULATION |
Definition at line 90 of file fallback.h.
#define PG_HAVE_ATOMIC_U32_SUPPORT |
Definition at line 92 of file fallback.h.
#define PG_HAVE_ATOMIC_U64_SIMULATION |
Definition at line 108 of file fallback.h.
#define PG_HAVE_ATOMIC_U64_SUPPORT |
Definition at line 110 of file fallback.h.
#define PG_HAVE_ATOMIC_UNLOCKED_TEST_FLAG |
Definition at line 135 of file fallback.h.
#define PG_HAVE_ATOMIC_WRITE_U32 |
Definition at line 145 of file fallback.h.
#define PG_HAVE_COMPILER_BARRIER_EMULATION |
Definition at line 48 of file fallback.h.
#define PG_HAVE_MEMORY_BARRIER_EMULATION |
Definition at line 32 of file fallback.h.
#define pg_memory_barrier_impl pg_spinlock_barrier |
Definition at line 35 of file fallback.h.
typedef struct pg_atomic_flag pg_atomic_flag |
typedef struct pg_atomic_uint32 pg_atomic_uint32 |
typedef struct pg_atomic_uint64 pg_atomic_uint64 |
void pg_atomic_clear_flag_impl | ( | volatile pg_atomic_flag * | ptr | ) |
Definition at line 89 of file atomics.c.
References pg_atomic_flag::sema, SpinLockAcquire, SpinLockRelease, and pg_atomic_flag::value.
Referenced by pg_atomic_clear_flag().
bool pg_atomic_compare_exchange_u32_impl | ( | volatile pg_atomic_uint32 * | ptr, |
uint32 * | expected, | ||
uint32 | newval | ||
) |
Definition at line 137 of file atomics.c.
References newval, pg_atomic_uint32::sema, SpinLockAcquire, SpinLockRelease, and pg_atomic_uint32::value.
Referenced by pg_atomic_compare_exchange_u32().
bool pg_atomic_compare_exchange_u64_impl | ( | volatile pg_atomic_uint64 * | ptr, |
uint64 * | expected, | ||
uint64 | newval | ||
) |
Definition at line 200 of file atomics.c.
References newval, pg_atomic_uint64::sema, SpinLockAcquire, SpinLockRelease, and pg_atomic_uint64::value.
Referenced by pg_atomic_compare_exchange_u64(), and pg_atomic_read_u64_impl().
uint32 pg_atomic_fetch_add_u32_impl | ( | volatile pg_atomic_uint32 * | ptr, |
int32 | add_ | ||
) |
Definition at line 165 of file atomics.c.
References pg_atomic_uint32::sema, SpinLockAcquire, SpinLockRelease, and pg_atomic_uint32::value.
Referenced by pg_atomic_fetch_add_u32().
uint64 pg_atomic_fetch_add_u64_impl | ( | volatile pg_atomic_uint64 * | ptr, |
int64 | add_ | ||
) |
Definition at line 228 of file atomics.c.
References pg_atomic_uint64::sema, SpinLockAcquire, SpinLockRelease, and pg_atomic_uint64::value.
Referenced by pg_atomic_fetch_add_u64().
void pg_atomic_init_flag_impl | ( | volatile pg_atomic_flag * | ptr | ) |
Definition at line 55 of file atomics.c.
References s_init_lock_sema(), pg_atomic_flag::sema, SpinLockInit, StaticAssertDecl, and pg_atomic_flag::value.
Referenced by pg_atomic_init_flag().
void pg_atomic_init_u32_impl | ( | volatile pg_atomic_uint32 * | ptr, |
uint32 | val_ | ||
) |
Definition at line 106 of file atomics.c.
References s_init_lock_sema(), pg_atomic_uint32::sema, SpinLockInit, StaticAssertDecl, and pg_atomic_uint32::value.
Referenced by pg_atomic_init_u32().
void pg_atomic_init_u64_impl | ( | volatile pg_atomic_uint64 * | ptr, |
uint64 | val_ | ||
) |
Definition at line 182 of file atomics.c.
References s_init_lock_sema(), pg_atomic_uint64::sema, SpinLockInit, StaticAssertDecl, and pg_atomic_uint64::value.
Referenced by pg_atomic_init_u64().
bool pg_atomic_test_set_flag_impl | ( | volatile pg_atomic_flag * | ptr | ) |
Definition at line 76 of file atomics.c.
References pg_atomic_flag::sema, SpinLockAcquire, SpinLockRelease, and pg_atomic_flag::value.
Referenced by pg_atomic_test_set_flag().
bool pg_atomic_unlocked_test_flag_impl | ( | volatile pg_atomic_flag * | ptr | ) |
Definition at line 97 of file atomics.c.
References pg_atomic_flag::value.
Referenced by pg_atomic_unlocked_test_flag().
void pg_atomic_write_u32_impl | ( | volatile pg_atomic_uint32 * | ptr, |
uint32 | val | ||
) |
Definition at line 124 of file atomics.c.
References pg_atomic_uint32::sema, SpinLockAcquire, SpinLockRelease, val, and pg_atomic_uint32::value.
Referenced by pg_atomic_write_u32().
void pg_extern_compiler_barrier | ( | void | ) |
void pg_spinlock_barrier | ( | void | ) |