atomic64_add_return_relaxed(9)
π atomic64_add_return_relaxed(9) π
okay so bestie, this is a page from the Kernel API Manual, and it's honestly one of those tiny-but-iconic ones. we're doing a 64-bit atomic add that gives you the new value back, and it's relaxed about ordering because it's chill like that π¦
β¨ NAME β¨
atomic64_add_return_relaxed β atomic add with relaxed ordering. that's it, that's the whole vibe π
πΈ SYNOPSIS πΈ
s64 atomic64_add_return_relaxed (s64 i , atomic64_t *v );
look at her. two args, one beautiful s64 coming right back at you π«Ά
π§ ARGUMENTS π§
iβ thes64value you wanna add. yes, add this much, bestie πvβ pointer to anatomic64_t. this is the little counter we're messing with β¨
π₯ DESCRIPTION π₯
so basically: atomically updates v to (v + i) with relaxed ordering. no cap, that's the whole function. the "atomically" is doing so much work here β nobody's gonna sneak in between you reading and writing, it just happens as one whole unit π
"relaxed ordering" means she's not doing any extra memory-ordering ceremony for you. she's lowkey just vibing through the operation. so don't expect ordering guarantees the strict variants give you β this is the chill one π
β οΈ Unsafe to use innoinstrcode β for real for real. if you're innoinstryou must useraw_atomic64_add_return_relaxedthere instead. do not try it, the kernel will not be cute about it π
π RETURN π
the updated value of v. so you get the new value after the add β not the old one, not a status code, just the freshly-bumped number handed straight to you π
β SEE ALSO β
she comes from the kernel file ./include/linux/atomic/atomic-instrumented.h β and listen, the family tree is huge, so buckle up bestie π
πΈ the atomic_ girlies
atomic_read(9), atomic_read_acquire(9), atomic_set(9), atomic_set_release(9),
atomic_add(9), atomic_add_return(9), atomic_add_return_acquire(9),
atomic_add_return_release(9), atomic_add_return_relaxed(9),
atomic_fetch_add(9), atomic_fetch_add_acquire(9), atomic_fetch_add_release(9),
atomic_fetch_add_relaxed(9), atomic_sub(9), atomic_sub_return(9),
atomic_sub_return_acquire(9), atomic_sub_return_release(9),
atomic_sub_return_relaxed(9), atomic_fetch_sub(9), atomic_fetch_sub_acquire(9),
atomic_fetch_sub_release(9), atomic_fetch_sub_relaxed(9), atomic_inc(9),
atomic_inc_return(9), atomic_inc_return_acquire(9), atomic_inc_return_release(9),
atomic_inc_return_relaxed(9), atomic_fetch_inc(9), atomic_fetch_inc_acquire(9),
atomic_fetch_inc_release(9), atomic_fetch_inc_relaxed(9), atomic_dec(9),
atomic_dec_return(9), atomic_dec_return_acquire(9), atomic_dec_return_release(9),
atomic_dec_return_relaxed(9), atomic_fetch_dec(9), atomic_fetch_dec_acquire(9),
atomic_fetch_dec_release(9), atomic_fetch_dec_relaxed(9), atomic_and(9),
atomic_fetch_and(9), atomic_fetch_and_acquire(9), atomic_fetch_and_release(9),
atomic_fetch_and_relaxed(9), atomic_andnot(9), atomic_fetch_andnot(9),
atomic_fetch_andnot_acquire(9), atomic_fetch_andnot_release(9),
atomic_fetch_andnot_relaxed(9), atomic_or(9), atomic_fetch_or(9),
atomic_fetch_or_acquire(9), atomic_fetch_or_release(9), atomic_fetch_or_relaxed(9),
atomic_xor(9), atomic_fetch_xor(9), atomic_fetch_xor_acquire(9),
atomic_fetch_xor_release(9), atomic_fetch_xor_relaxed(9), atomic_xchg(9),
atomic_xchg_acquire(9), atomic_xchg_release(9), atomic_xchg_relaxed(9),
atomic_cmpxchg(9), atomic_cmpxchg_acquire(9), atomic_cmpxchg_release(9),
atomic_cmpxchg_relaxed(9), atomic_try_cmpxchg(9), atomic_try_cmpxchg_acquire(9),
atomic_try_cmpxchg_release(9), atomic_try_cmpxchg_relaxed(9),
atomic_sub_and_test(9), atomic_dec_and_test(9), atomic_inc_and_test(9),
atomic_add_negative(9), atomic_add_negative_acquire(9),
atomic_add_negative_release(9), atomic_add_negative_relaxed(9),
atomic_fetch_add_unless(9), atomic_add_unless(9), atomic_inc_not_zero(9),
atomic_inc_unless_negative(9), atomic_dec_unless_positive(9),
atomic_dec_if_positive(9)
π the atomic64_ besties (our girl's home crew)
atomic64_read(9), atomic64_read_acquire(9), atomic64_set(9),
atomic64_set_release(9), atomic64_add(9), atomic64_add_return(9),
atomic64_add_return_acquire(9), atomic64_add_return_release(9),
atomic64_fetch_add(9), atomic64_fetch_add_acquire(9),
atomic64_fetch_add_release(9), atomic64_fetch_add_relaxed(9), atomic64_sub(9),
atomic64_sub_return(9), atomic64_sub_return_acquire(9),
atomic64_sub_return_release(9), atomic64_sub_return_relaxed(9),
atomic64_fetch_sub(9), atomic64_fetch_sub_acquire(9),
atomic64_fetch_sub_release(9), atomic64_fetch_sub_relaxed(9), atomic64_inc(9),
atomic64_inc_return(9), atomic64_inc_return_acquire(9),
atomic64_inc_return_release(9), atomic64_inc_return_relaxed(9),
atomic64_fetch_inc(9), atomic64_fetch_inc_acquire(9),
atomic64_fetch_inc_release(9), atomic64_fetch_inc_relaxed(9), atomic64_dec(9),
atomic64_dec_return(9), atomic64_dec_return_acquire(9),
atomic64_dec_return_release(9), atomic64_dec_return_relaxed(9),
atomic64_fetch_dec(9), atomic64_fetch_dec_acquire(9),
atomic64_fetch_dec_release(9), atomic64_fetch_dec_relaxed(9), atomic64_and(9),
atomic64_fetch_and(9), atomic64_fetch_and_acquire(9),
atomic64_fetch_and_release(9), atomic64_fetch_and_relaxed(9), atomic64_andnot(9),
atomic64_fetch_andnot(9), atomic64_fetch_andnot_acquire(9),
atomic64_fetch_andnot_release(9), atomic64_fetch_andnot_relaxed(9),
atomic64_or(9), atomic64_fetch_or(9), atomic64_fetch_or_acquire(9),
atomic64_fetch_or_release(9), atomic64_fetch_or_relaxed(9), atomic64_xor(9),
atomic64_fetch_xor(9), atomic64_fetch_xor_acquire(9),
atomic64_fetch_xor_release(9), atomic64_fetch_xor_relaxed(9), atomic64_xchg(9),
atomic64_xchg_acquire(9), atomic64_xchg_release(9), atomic64_xchg_relaxed(9),
atomic64_cmpxchg(9), atomic64_cmpxchg_acquire(9), atomic64_cmpxchg_release(9),
atomic64_cmpxchg_relaxed(9), atomic64_try_cmpxchg(9),
atomic64_try_cmpxchg_acquire(9), atomic64_try_cmpxchg_release(9),
atomic64_try_cmpxchg_relaxed(9), atomic64_sub_and_test(9),
atomic64_dec_and_test(9), atomic64_inc_and_test(9), atomic64_add_negative(9),
atomic64_add_negative_acquire(9), atomic64_add_negative_release(9),
atomic64_add_negative_relaxed(9), atomic64_fetch_add_unless(9),
atomic64_add_unless(9), atomic64_inc_not_zero(9),
atomic64_inc_unless_negative(9), atomic64_dec_unless_positive(9),
atomic64_dec_if_positive(9)
π¦ the atomic_long_ cousins
atomic_long_read(9), atomic_long_read_acquire(9), atomic_long_set(9),
atomic_long_set_release(9), atomic_long_add(9), atomic_long_add_return(9),
atomic_long_add_return_acquire(9), atomic_long_add_return_release(9),
atomic_long_add_return_relaxed(9), atomic_long_fetch_add(9),
atomic_long_fetch_add_acquire(9), atomic_long_fetch_add_release(9),
atomic_long_fetch_add_relaxed(9), atomic_long_sub(9), atomic_long_sub_return(9),
atomic_long_sub_return_acquire(9), atomic_long_sub_return_release(9),
atomic_long_sub_return_relaxed(9), atomic_long_fetch_sub(9),
atomic_long_fetch_sub_acquire(9), atomic_long_fetch_sub_release(9),
atomic_long_fetch_sub_relaxed(9), atomic_long_inc(9),
atomic_long_inc_return(9), atomic_long_inc_return_acquire(9),
atomic_long_inc_return_release(9), atomic_long_inc_return_relaxed(9),
atomic_long_fetch_inc(9), atomic_long_fetch_inc_acquire(9),
atomic_long_fetch_inc_release(9), atomic_long_fetch_inc_relaxed(9),
atomic_long_dec(9), atomic_long_dec_return(9),
atomic_long_dec_return_acquire(9), atomic_long_dec_return_release(9),
atomic_long_dec_return_relaxed(9), atomic_long_fetch_dec(9),
atomic_long_fetch_dec_acquire(9), atomic_long_fetch_dec_release(9),
atomic_long_fetch_dec_relaxed(9), atomic_long_and(9),
atomic_long_fetch_and(9), atomic_long_fetch_and_acquire(9),
atomic_long_fetch_and_release(9), atomic_long_fetch_and_relaxed(9),
atomic_long_andnot(9), atomic_long_fetch_andnot(9),
atomic_long_fetch_andnot_acquire(9), atomic_long_fetch_andnot_release(9),
atomic_long_fetch_andnot_relaxed(9), atomic_long_or(9),
atomic_long_fetch_or(9), atomic_long_fetch_or_acquire(9),
atomic_long_fetch_or_release(9), atomic_long_fetch_or_relaxed(9),
atomic_long_xor(9), atomic_long_fetch_xor(9), atomic_long_fetch_xor_acquire(9),
atomic_long_fetch_xor_release(9), atomic_long_fetch_xor_relaxed(9),
atomic_long_xchg(9), atomic_long_xchg_acquire(9), atomic_long_xchg_release(9),
atomic_long_xchg_relaxed(9), atomic_long_cmpxchg(9),
atomic_long_cmpxchg_acquire(9), atomic_long_cmpxchg_release(9),
atomic_long_cmpxchg_relaxed(9), atomic_long_try_cmpxchg(9),
atomic_long_try_cmpxchg_acquire(9), atomic_long_try_cmpxchg_release(9),
atomic_long_try_cmpxchg_relaxed(9), atomic_long_sub_and_test(9),
atomic_long_dec_and_test(9), atomic_long_inc_and_test(9),
atomic_long_add_negative(9), atomic_long_add_negative_acquire(9),
atomic_long_add_negative_release(9), atomic_long_add_negative_relaxed(9),
atomic_long_fetch_add_unless(9), atomic_long_add_unless(9),
atomic_long_inc_not_zero(9), atomic_long_inc_unless_negative(9),
atomic_long_dec_unless_positive(9), atomic_long_dec_if_positive(9)
and that's the whole page, bestie π this one lives in ./include/linux/atomic, dated October 2026, and honestly? she ate. periodt. πβ¨π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms