PostgreSQL Source Code
git master
|
#include "postgres.h"
#include "miscadmin.h"
#include "port/atomics.h"
#include "storage/spin.h"
#include <signal.h>
Go to the source code of this file.
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_) |
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(), pg_atomic_monotonic_advance_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 | ) |