![]() |
#include <stdint.h>
#include <citrusleaf/cf_arch.h>
Go to the source code of this file.
Functions | |
static int32_t | cf_atomic32_add (cf_atomic32 *, int32_t) |
static int32_t | cf_atomic32_addunless (cf_atomic32 *a, int32_t b, int32_t x) |
static int32_t | cf_atomic32_cas (cf_atomic32 *a, int32_t b, int32_t x) |
static int32_t | cf_atomic32_fas (cf_atomic32 *a, cf_atomic32 *b) |
static int32_t | cf_atomic32_setmax (cf_atomic32 *a, int32_t x) |
static int64_t | cf_atomic64_add (cf_atomic64 *, int64_t) |
#define cf_atomic32_cas_m | ( | _a, | |
_b, | |||
_x | |||
) |
Definition at line 333 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic32_decr | ( | a | ) | (cf_atomic32_add((a), -1)) |
Definition at line 86 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic32_fas_m | ( | _a, | |
_b | |||
) |
Definition at line 327 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic32_get | ( | a | ) | (a) |
SYNOPSIS Atomic memory operations Memory barriers
cf_atomicX_add Atomic addition: add a value b into an atomic integer a, and return the result
cf_atomicX_cas Compare-and-swap: test a value b against an atomic integer a; if they are equal, store the value x into a, and return the initial value of a. "Success" can be checked by comparing the returned value against b NB: this is a strong memory barrier
cf_atomicX_fas Fetch-and-swap: swap the values of b and a
cf_atomicX_addunless Increment-unless: test a value b against an atomic integer a. If they are NOT equal, add x to a, and return non-zero; if they ARE equal, return zero
Definition at line 82 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic32_incr | ( | a | ) | (cf_atomic32_add((a), 1)) |
Definition at line 85 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic32_set | ( | a, | |
b | |||
) | (*(a) = (b)) |
Definition at line 83 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic32_sub | ( | a, | |
b | |||
) | (cf_atomic32_add((a), (0 - (b)))) |
Definition at line 84 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic_int_add | ( | _a, | |
_b | |||
) | cf_atomic32_add(_a, _b) |
Definition at line 120 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic_int_addunless | ( | _a, | |
_b, | |||
_x | |||
) | cf_atomic32_addunless(_a, _b, _x) |
Definition at line 158 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic_int_cas | ( | _a, | |
_b, | |||
_x | |||
) | cf_atomic32_cas(_a, _b, _x) |
Definition at line 154 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic_int_cas_m | ( | _a, | |
_b, | |||
_x | |||
) | cf_atomic32_cas_m(_a, _b, _x) |
Definition at line 155 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic_int_decr | ( | _a | ) | cf_atomic32_add((_a), -1) |
Definition at line 123 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic_int_fas | ( | _a, | |
_b | |||
) | cf_atomic32_fas(_a, _b) |
Definition at line 156 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic_int_fas_m | ( | _a, | |
_b | |||
) | cf_atomic32_fas_m(_a, _b) |
Definition at line 157 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic_int_get | ( | _a | ) | cf_atomic32_get(_a) |
Definition at line 118 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic_int_incr | ( | _a | ) | cf_atomic32_add((_a), 1) |
Definition at line 122 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic_int_set | ( | _a, | |
_b | |||
) | cf_atomic32_set(_a, _b) |
Definition at line 119 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic_int_setmax | ( | _a, | |
_x | |||
) | cf_atomic32_setmax(_a, _x) |
Definition at line 159 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic_int_sub | ( | _a, | |
_b | |||
) | cf_atomic32_sub(_a, _b) |
Definition at line 121 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic_p_add | ( | _a, | |
_b | |||
) | cf_atomic32_add(_a, _b) |
Definition at line 114 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic_p_addunless | ( | _a, | |
_b, | |||
_x | |||
) | cf_atomic32_addunless(_a, _b, _x) |
Definition at line 151 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic_p_cas | ( | _a, | |
_b, | |||
_x | |||
) | cf_atomic32_cas(_a, _b, _x) |
Definition at line 147 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic_p_cas_m | ( | _a, | |
_b, | |||
_x | |||
) | cf_atomic32_cas_m(_a, _b, _x) |
Definition at line 148 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic_p_decr | ( | _a | ) | cf_atomic32_add((_a), -1) |
Definition at line 116 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic_p_fas | ( | _a, | |
_b | |||
) | cf_atomic32_fas(_a, _b) |
Definition at line 149 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic_p_fas_m | ( | _a, | |
_b | |||
) | cf_atomic32_fas_m(_a, _b) |
Definition at line 150 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic_p_get | ( | _a | ) | cf_atomic32_get(_a) |
Definition at line 112 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic_p_incr | ( | _a | ) | cf_atomic32_add((_a), 1) |
Definition at line 115 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic_p_set | ( | _a, | |
_b | |||
) | cf_atomic32_set(_a, _b) |
Definition at line 113 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define cf_atomic_p_setmax | ( | _a, | |
_x | |||
) | cf_atomic32_setmax(_a, _x) |
Definition at line 152 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define CF_MEMORY_BARRIER | ( | ) | __asm__ __volatile__ ("lock; addl $0,0(%%esp)" : : : "memory") |
Definition at line 175 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define CF_MEMORY_BARRIER_READ | ( | ) | CF_MEMORY_BARRIER() |
Definition at line 179 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define CF_MEMORY_BARRIER_WRITE | ( | ) | __asm__ __volatile__ ("" : : : "memory") |
Definition at line 183 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
#define smb_mb | ( | ) | asm volatile("mfence":::"memory") |
Definition at line 171 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
|
inlinestatic |
Definition at line 321 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
|
inlinestatic |
Definition at line 351 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
References cf_atomic32_cas(), and cf_atomic32_get.
|
inlinestatic |
Definition at line 339 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
|
inlinestatic |
Definition at line 345 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
|
inlinestatic |
Definition at line 374 of file modules/common/target/Darwin-i386/include/citrusleaf/cf_atomic.h.
References cf_atomic32_cas(), and cf_atomic32_get.
|
inlinestatic |