ck_pr_faa - Man Page

atomic fetch-and-add operations

Library

Concurrency Kit (libck, -lck)

Synopsis

#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);

Description

The ck_pr_faa(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.

Return Values

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

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_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/

Referenced By

ck_pr(3), ck_pr_add(3), ck_pr_and(3), ck_pr_barrier(3), ck_pr_btc(3), ck_pr_btr(3), ck_pr_bts(3), ck_pr_cas(3), ck_pr_dec(3), ck_pr_fas(3), ck_pr_fence_acquire(3), ck_pr_fence_atomic(3), ck_pr_fence_atomic_load(3), ck_pr_fence_atomic_store(3), ck_pr_fence_load(3), ck_pr_fence_load_atomic(3), ck_pr_fence_load_depends(3), ck_pr_fence_load_store(3), ck_pr_fence_memory(3), ck_pr_fence_release(3), ck_pr_fence_store(3), ck_pr_fence_store_atomic(3), ck_pr_fence_store_load(3), ck_pr_inc(3), ck_pr_load(3), ck_pr_neg(3), ck_pr_not(3), ck_pr_or(3), ck_pr_rtm(3), ck_pr_stall(3), ck_pr_store(3), ck_pr_sub(3), ck_pr_xor(3).

April 7, 2013