raw_atomic_...turn_release(9)
π raw_atomic_inc_return_release β from the Kernel API Manual, bestie β¨
okay so picture this: it's a page straight out of the Kernel API Manual, and it's about the single most "just add one, but make it fashion" function in the whole atomic family. come sit with me π«Ά
πΈ NAME πΈ
raw_atomic_inc_return_release β atomic increment with release ordering, no cap π
β¨ SYNOPSIS β¨
int raw_atomic_inc_return_release (atomic_t *v );
π ARGUMENTS π
vβ pointer toatomic_t. that's it. that's the whole argument. she's low maintenance π
π¦ DESCRIPTION π¦
so what she does is atomically update v to (v + 1) with release ordering. atomically, meaning nobody gets to sneak in halfway and mess with the value while you're vibing. release ordering, meaning the vibes are ordered correctly for anyone watching from the other side of that atomic op. iconic behavior, honestly π₯
she's safe to use in noinstr code β that's her whole thing, that's her main character energy. but likeβ¦ everywhere else? prefer atomic_inc_return_release. that's the general-purpose one. this one is the specialist π
β RETURN β
the updated value of v. so like, after the +1. the new number. obviously π
π SEE ALSO π
bestie. sit down. hydrate. this list is long and I refuse to skip a single one of them, because every one of these deserves her moment too:
Kernel file ./include/linux/atomic/atomic-arch-fallback.h
raw_atomic_read(9), raw_atomic_read_acquire(9), raw_atomic_set(9),
raw_atomic_set_release(9), raw_atomic_add(9), raw_atomic_add_return(9),
raw_atomic_add_return_acquire(9), raw_atomic_add_return_release(9),
raw_atomic_add_return_relaxed(9), raw_atomic_fetch_add(9),
raw_atomic_fetch_add_acquire(9), raw_atomic_fetch_add_release(9),
raw_atomic_fetch_add_relaxed(9), raw_atomic_sub(9),
raw_atomic_sub_return(9), raw_atomic_sub_return_acquire(9),
raw_atomic_sub_return_release(9), raw_atomic_sub_return_relaxed(9),
raw_atomic_fetch_sub(9), raw_atomic_fetch_sub_acquire(9),
raw_atomic_fetch_sub_release(9), raw_atomic_fetch_sub_relaxed(9),
raw_atomic_inc(9), raw_atomic_inc_return(9),
raw_atomic_inc_return_acquire(9), raw_atomic_inc_return_relaxed(9),
raw_atomic_fetch_inc(9), raw_atomic_fetch_inc_acquire(9),
raw_atomic_fetch_inc_release(9), raw_atomic_fetch_inc_relaxed(9),
raw_atomic_dec(9), raw_atomic_dec_return(9),
raw_atomic_dec_return_acquire(9), raw_atomic_dec_return_release(9),
raw_atomic_dec_return_relaxed(9), raw_atomic_fetch_dec(9),
raw_atomic_fetch_dec_acquire(9), raw_atomic_fetch_dec_release(9),
raw_atomic_fetch_dec_relaxed(9), raw_atomic_and(9),
raw_atomic_fetch_and(9), raw_atomic_fetch_and_acquire(9),
raw_atomic_fetch_and_release(9), raw_atomic_fetch_and_relaxed(9),
raw_atomic_andnot(9), raw_atomic_fetch_andnot(9),
raw_atomic_fetch_andnot_acquire(9), raw_atomic_fetch_andnot_release(9),
raw_atomic_fetch_andnot_relaxed(9), raw_atomic_or(9),
raw_atomic_fetch_or(9), raw_atomic_fetch_or_acquire(9),
raw_atomic_fetch_or_release(9), raw_atomic_fetch_or_relaxed(9),
raw_atomic_xor(9), raw_atomic_fetch_xor(9),
raw_atomic_fetch_xor_acquire(9), raw_atomic_fetch_xor_release(9),
raw_atomic_fetch_xor_relaxed(9), raw_atomic_xchg(9),
raw_atomic_xchg_acquire(9), raw_atomic_xchg_release(9),
raw_atomic_xchg_relaxed(9), raw_atomic_cmpxchg(9),
raw_atomic_cmpxchg_acquire(9), raw_atomic_cmpxchg_release(9),
raw_atomic_cmpxchg_relaxed(9), raw_atomic_try_cmpxchg(9),
raw_atomic_try_cmpxchg_acquire(9), raw_atomic_try_cmpxchg_release(9),
raw_atomic_try_cmpxchg_relaxed(9), raw_atomic_sub_and_test(9),
raw_atomic_dec_and_test(9), raw_atomic_inc_and_test(9),
raw_atomic_add_negative(9), raw_atomic_add_negative_acquire(9),
raw_atomic_add_negative_release(9), raw_atomic_add_negative_relaxed(9),
raw_atomic_fetch_add_unless(9), raw_atomic_add_unless(9),
raw_atomic_inc_not_zero(9), raw_atomic_inc_unless_negative(9),
raw_atomic_dec_unless_positive(9), raw_atomic_dec_if_positive(9),
raw_atomic64_read(9), raw_atomic64_read_acquire(9), raw_atomic64_set(9),
raw_atomic64_set_release(9), raw_atomic64_add(9),
raw_atomic64_add_return(9), raw_atomic64_add_return_acquire(9),
raw_atomic64_add_return_release(9), raw_atomic64_add_return_relaxed(9),
raw_atomic64_fetch_add(9), raw_atomic64_fetch_add_acquire(9),
raw_atomic64_fetch_add_release(9), raw_atomic64_fetch_add_relaxed(9),
raw_atomic64_sub(9), raw_atomic64_sub_return(9),
raw_atomic64_sub_return_acquire(9), raw_atomic64_sub_return_release(9),
raw_atomic64_sub_return_relaxed(9), raw_atomic64_fetch_sub(9),
raw_atomic64_fetch_sub_acquire(9), raw_atomic64_fetch_sub_release(9),
raw_atomic64_fetch_sub_relaxed(9), raw_atomic64_inc(9),
raw_atomic64_inc_return(9), raw_atomic64_inc_return_acquire(9),
raw_atomic64_inc_return_release(9), raw_atomic64_inc_return_relaxed(9),
raw_atomic64_fetch_inc(9), raw_atomic64_fetch_inc_acquire(9),
raw_atomic64_fetch_inc_release(9), raw_atomic64_fetch_inc_relaxed(9),
raw_atomic64_dec(9), raw_atomic64_dec_return(9),
raw_atomic64_dec_return_acquire(9), raw_atomic64_dec_return_release(9),
raw_atomic64_dec_return_relaxed(9), raw_atomic64_fetch_dec(9),
raw_atomic64_fetch_dec_acquire(9), raw_atomic64_fetch_dec_release(9),
raw_atomic64_fetch_dec_relaxed(9), raw_atomic64_and(9),
raw_atomic64_fetch_and(9), raw_atomic64_fetch_and_acquire(9),
raw_atomic64_fetch_and_release(9), raw_atomic64_fetch_and_relaxed(9),
raw_atomic64_andnot(9), raw_atomic64_fetch_andnot(9),
raw_atomic64_fetch_andnot_acquire(9),
raw_atomic64_fetch_andnot_release(9),
raw_atomic64_fetch_andnot_relaxed(9), raw_atomic64_or(9),
raw_atomic64_fetch_or(9), raw_atomic64_fetch_or_acquire(9),
raw_atomic64_fetch_or_release(9), raw_atomic64_fetch_or_relaxed(9),
raw_atomic64_xor(9), raw_atomic64_fetch_xor(9),
raw_atomic64_fetch_xor_acquire(9), raw_atomic64_fetch_xor_release(9),
raw_atomic64_fetch_xor_relaxed(9), raw_atomic64_xchg(9),
raw_atomic64_xchg_acquire(9), raw_atomic64_xchg_release(9),
raw_atomic64_xchg_relaxed(9), raw_atomic64_cmpxchg(9),
raw_atomic64_cmpxchg_acquire(9), raw_atomic64_cmpxchg_release(9),
raw_atomic64_cmpxchg_relaxed(9), raw_atomic64_try_cmpxchg(9),
raw_atomic64_try_cmpxchg_acquire(9),
raw_atomic64_try_cmpxchg_release(9),
raw_atomic64_try_cmpxchg_relaxed(9), raw_atomic64_sub_and_test(9),
raw_atomic64_dec_and_test(9), raw_atomic64_inc_and_test(9),
raw_atomic64_add_negative(9), raw_atomic64_add_negative_acquire(9),
raw_atomic64_add_negative_release(9),
raw_atomic64_add_negative_relaxed(9), raw_atomic64_fetch_add_unless(9),
raw_atomic64_add_unless(9), raw_atomic64_inc_not_zero(9),
raw_atomic64_inc_unless_negative(9),
raw_atomic64_dec_unless_positive(9), raw_atomic64_dec_if_positive(9)
like I said. hydration. π but honestly? every single one of them ate. π₯
π§ little vibe check before you go: this page lives in./include/linux/atomic, and that's also where the referenced file./include/linux/atomic/atomic-arch-fallback.hhangs out. go say hi. π
and that's the page, bestie!! πΈ source: ./include/linux/atomic, dated October 2026 β same manual name, same date, no notes, 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