atomic64_inc_return(9)
π atomic64_inc_return β the Kernel API Manual, bestie edition
ok so this page is called atomic64_inc_return(9) and it lives in the Kernel API Manual β that's the manual name, consider it folded in, mwah π
β¨ NAME β¨
atomic64_inc_return β atomic increment with full ordering. yes that's the whole plot. it's a glow-up for a number and it comes with rules π
π SYNOPSIS π
s64 atomic64_inc_return (atomic64_t *v );
ngl the whole vibe is right there in one line. one argument. one value back. iconic behavior honestly πΈ
π«Ά ARGUMENTS π«Ά
vβ pointer toatomic64_t. that's it, that's the only thing it wants from you, it's apointer to atomic64_tand it will not elaborate π
π₯ DESCRIPTION π₯
okay so what does it do. it atomically updates v to (v + 1) with full ordering. that's it. that's the whole thing. one (1) increment, done atomically, with the full ordering treatment so nobody gets caught out of order π
the "atomically" is doing a LOT of heavy lifting here β it means the update happens as one indivisible thing, and the "full ordering" bit is the part that makes this the strict version, not the chill relaxed one. main character energy tbh.
β οΈ REAL TALK: it is unsafe to use innoinstrcode β useraw_atomic64_inc_returnthere instead. like, do not. fr fr. if you're innoinstrcode,raw_atomic64_inc_returnis your girl π
β RETURN β
the updated value of v. not the old one. the updated one. so it hands you back v after the +1 already happened, slay π
πΈ SEE ALSO πΈ
okay bestie buckle up, this is the friend group and it is LARGE. all of these live in the kernel file ./include/linux/atomic/atomic-instrumented.h π
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), 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_add_return_relaxed(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_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), 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)
like I said. LARGE friend group. iykyk π¦
and that's the page!! before you go β this one's sourced from ./include/linux/atomic, dated October 2026, and it's filed under atomic64_inc_return(9) in the Kernel API Manual. mwah, mwah, go increment something atomically bestie ππ§ββοΈ
π¦ 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