ck_pr_neg (3) - Linux Man Pages


ck_pr_neg_ptr ck_pr_neg_ptr_zero ck_pr_neg_double ck_pr_neg_double_zero ck_pr_neg_char ck_pr_neg_char_zero ck_pr_neg_uint ck_pr_neg_uint_zero ck_pr_neg_int ck_pr_neg_int_zero ck_pr_neg_64 ck_pr_neg_64_zero ck_pr_neg_32 ck_pr_neg_32_zero ck_pr_neg_16 ck_pr_neg_16_zero ck_pr_neg_8 ck_pr_neg_8_zero - atomic negation operations


Concurrency Kit (libck, -lck)


In ck_pr.h Ft void Fn ck_pr_neg_ptr void *target Ft void Fn ck_pr_neg_ptr_zero void *target bool *z Ft void Fn ck_pr_neg_double double *target Ft void Fn ck_pr_neg_double_zero double *target bool *z Ft void Fn ck_pr_neg_char char *target Ft void Fn ck_pr_neg_char_zero char *target bool *z Ft void Fn ck_pr_neg_uint unsigned int *target Ft void Fn ck_pr_neg_uint_zero unsigned int *target bool *z Ft void Fn ck_pr_neg_int int *target Ft void Fn ck_pr_neg_int_zero int *target bool *z Ft void Fn ck_pr_neg_64 uint64_t *target Ft void Fn ck_pr_neg_64_zero uint64_t *target bool *z Ft void Fn ck_pr_neg_32 uint32_t *target Ft void Fn ck_pr_neg_32_zero uint32_t *target bool *z Ft void Fn ck_pr_neg_16 uint16_t *target Ft void Fn ck_pr_neg_16_zero uint16_t *target bool *z Ft void Fn ck_pr_neg_8 uint8_t *target Ft void Fn ck_pr_neg_8_zero uint8_t *target bool *z


The Fn ck_pr_neg 3 family of functions atomically negate the value pointed to by Fa target .


The ck_pr_neg_zero functions set the value pointed to by Fa z if the result of the negation operation was 0. They set the pointed to value to false otherwise.


ck_pr_fence_load3, ck_pr_fence_load_depends3, ck_pr_fence_store3, ck_pr_fence_memory3, ck_pr_load3, ck_pr_store3, ck_pr_fas3, ck_pr_faa3, ck_pr_inc3, ck_pr_dec3, ck_pr_not3, ck_pr_add3, ck_pr_sub3, ck_pr_and3, ck_pr_or3, ck_pr_xor3, ck_pr_cas3, ck_pr_btc3, ck_pr_bts3, ck_pr_btr3

Additional information available at