NAME¶
ck_pr_load_ptr
,
ck_pr_load_double
,
ck_pr_load_uint
,
ck_pr_load_int
,
ck_pr_load_char
,
ck_pr_load_64
,
ck_pr_load_32
,
ck_pr_load_16
,
ck_pr_load_8
—
atomic volatile load operations
LIBRARY¶
Concurrency Kit (libck, -lck)
SYNOPSIS¶
#include
<ck_pr.h>
void *
ck_pr_load_ptr
(
const
void *target);
double
ck_pr_load_double
(
const
double *target);
unsigned int
ck_pr_load_uint
(
const
unsigned int *target);
int
ck_pr_load_int
(
const
int *target);
char
ck_pr_load_char
(
const
char *target);
uint64_t
ck_pr_load_64
(
const
uint64_t *target);
uint32_t
ck_pr_load_32
(
const
uint32_t *target);
uint16_t
ck_pr_load_16
(
const
uint16_t *target);
uint8_t
ck_pr_load_8
(
const
uint8_t *target);
DESCRIPTION¶
The
ck_pr_load
(
3)
family of functions atomically loads the value pointed to by
target and returns it. This family of
functions always serves as an implicit compiler barrier and is not susceptible
to re-ordering by the compiler.
RETURN VALUES¶
This family of functions returns the value contained in the location pointed to
by the first argument.
SEE ALSO¶
ck_pr_fence_load(3),
ck_pr_fence_load_depends(3),
ck_pr_fence_store(3),
ck_pr_fence_memory(3),
ck_pr_add(3),
ck_pr_store(3),
ck_pr_fas(3),
ck_pr_faa(3),
ck_pr_inc(3),
ck_pr_dec(3),
ck_pr_neg(3),
ck_pr_not(3),
ck_pr_sub(3),
ck_pr_and(3),
ck_pr_or(3),
ck_pr_xor(3),
ck_pr_cas(3),
ck_pr_btc(3),
ck_pr_bts(3),
ck_pr_btr(3)
Additional information available at
http://concurrencykit.org/