DOKK / manpages / debian 11 / libck-dev / ck_pr_faa.3.en
ck_pr_faa(3) Library Functions Manual ck_pr_faa(3)

ck_pr_faa_ptr, ck_pr_faa_double, ck_pr_faa_char, ck_pr_faa_uint, ck_pr_faa_int, ck_pr_faa_64, ck_pr_faa_32, ck_pr_faa_16, ck_pr_faa_8atomic fetch-and-add operations

Concurrency Kit (libck, -lck)

#include <ck_pr.h>

uintptr_t
ck_pr_faa_ptr(void *target, uintptr_t delta);

double
ck_pr_faa_double(double *target, double delta);

char
ck_pr_faa_char(char *target, char delta);

unsigned int
ck_pr_faa_uint(unsigned int *target, unsigned int delta);

int
ck_pr_faa_int(int *target, int delta);

uint64_t
ck_pr_faa_64(uint64_t *target, uint64_t delta);

uint32_t
ck_pr_faa_32(uint32_t *target, uint32_t delta);

uint16_t
ck_pr_faa_16(uint16_t *target, uint16_t delta);

uint8_t
ck_pr_faa_8(uint8_t *target, uint8_t delta);

The (3) family of functions atomically fetch the value pointed to by target and add the value specified by delta to the value pointed to by target.

This function returns the value pointed to by target at the time of operation invocation before the addition operation is applied.

ck_pr_fence_load(3), ck_pr_fence_load_depends(3), ck_pr_fence_store(3), ck_pr_fence_memory(3), ck_pr_load(3), ck_pr_store(3), ck_pr_fas(3), ck_pr_inc(3), ck_pr_dec(3), ck_pr_neg(3), ck_pr_not(3), ck_pr_add(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/

April 7, 2013