raw_atomic_l...turn_relaxed(9)
π raw_atomic_l...turn_relaxed β Kernel API Manual β¨
okay so bestie, welcome to the group chat π you're looking at the man page for raw_atomic_long_inc_return_relaxed(9), straight out of the Kernel API Manual. yes the title is truncated with dots, no that's not a typo, that's just how the man page generator woke up that day π anyways. sit down, hydrate, and let's talk about adding one (1) to a number in the most unbothered way physically possible.
πΈ NAME πΈ
raw_atomic_long_inc_return_relaxed β atomic increment with relaxed ordering
like yes queen, add one, but make it chill about it π
π¦ SYNOPSIS π¦
long raw_atomic_long_inc_return_relaxed (atomic_long_t *v );
that's the whole signature. that's the vibe. that's the function. π
β¨ ARGUMENTS β¨
vβ pointer toatomic_long_t. it's a pointer, it points at anatomic_long_t, that's the entire lore fr fr π«Ά
π₯ DESCRIPTION π₯
so what does it do?? bestie it atomically updates v to (v + 1) β with relaxed ordering. that's it. that's the whole job. it adds one to the thing your pointer is pointing at, and it does it atomically, so nobody else can sneak in mid-update and cause chaos. main character energy only π
the relaxed ordering part is doing a lot of heavy lifting here β it's the ordering-lite option, so don't go assuming it's giving you sequencing guarantees it never promised. it's relaxed. it's on vacation. let it live π
safe to use in noinstr code β that's a real thing and it matters, okay?? π but everywhere else, prefer atomic_long_inc_return_relaxed. yes, they look basically identical. no, that is not a bit. the raw one is for the special noinstr zone, the non-raw one is for literally everywhere else. iykyk π§
π heads up: this is the relaxed variant and the raw variant simultaneously. if you didn't specifically need those two things, you probably clicked the wrong man page. no shade. just saying.
β RETURN β
returns the updated value of v π
so if v was 41, congratulations, you now have 42 in your hands and you didn't even have to worry about a race condition to get it. slay π
π SEE ALSO π
okay this is the part where i need you to brace yourself because the kernel really said "here's the entire atomic_long cinematic universe" and dumped the whole cast list on us π every single one of these is a real man page, every single one is invited to the function, no cap:
- Kernel file:
./include/linux/atomic/atomic-long.h raw_atomic_long_read(9)raw_atomic_long_read_acquire(9)raw_atomic_long_set(9)raw_atomic_long_set_release(9)raw_atomic_long_add(9)raw_atomic_long_add_return(9)raw_atomic_long_add_return_acquire(9)raw_atomic_long_add_return_release(9)raw_atomic_long_add_return_relaxed(9)raw_atomic_long_fetch_add(9)raw_atomic_long_fetch_add_acquire(9)raw_atomic_long_fetch_add_release(9)raw_atomic_long_fetch_add_relaxed(9)raw_atomic_long_sub(9)raw_atomic_long_sub_return(9)raw_atomic_long_sub_return_acquire(9)raw_atomic_long_sub_return_release(9)raw_atomic_long_sub_return_relaxed(9)raw_atomic_long_fetch_sub(9)raw_atomic_long_fetch_sub_acquire(9)raw_atomic_long_fetch_sub_release(9)raw_atomic_long_fetch_sub_relaxed(9)raw_atomic_long_inc(9)raw_atomic_long_inc_return(9)raw_atomic_long_inc_return_acquire(9)raw_atomic_long_inc_return_release(9)raw_atomic_long_fetch_inc(9)raw_atomic_long_fetch_inc_acquire(9)raw_atomic_long_fetch_inc_release(9)raw_atomic_long_fetch_inc_relaxed(9)raw_atomic_long_dec(9)raw_atomic_long_dec_return(9)raw_atomic_long_dec_return_acquire(9)raw_atomic_long_dec_return_release(9)raw_atomic_long_dec_return_relaxed(9)raw_atomic_long_fetch_dec(9)raw_atomic_long_fetch_dec_acquire(9)raw_atomic_long_fetch_dec_release(9)raw_atomic_long_fetch_dec_relaxed(9)raw_atomic_long_and(9)raw_atomic_long_fetch_and(9)raw_atomic_long_fetch_and_acquire(9)raw_atomic_long_fetch_and_release(9)raw_atomic_long_fetch_and_relaxed(9)raw_atomic_long_andnot(9)raw_atomic_long_fetch_andnot(9)raw_atomic_long_fetch_andnot_acquire(9)raw_atomic_long_fetch_andnot_release(9)raw_atomic_long_fetch_andnot_relaxed(9)raw_atomic_long_or(9)raw_atomic_long_fetch_or(9)raw_atomic_long_fetch_or_acquire(9)raw_atomic_long_fetch_or_release(9)raw_atomic_long_fetch_or_relaxed(9)raw_atomic_long_xor(9)raw_atomic_long_fetch_xor(9)raw_atomic_long_fetch_xor_acquire(9)raw_atomic_long_fetch_xor_release(9)raw_atomic_long_fetch_xor_relaxed(9)raw_atomic_long_xchg(9)raw_atomic_long_xchg_acquire(9)raw_atomic_long_xchg_release(9)raw_atomic_long_xchg_relaxed(9)raw_atomic_long_cmpxchg(9)raw_atomic_long_cmpxchg_acquire(9)raw_atomic_long_cmpxchg_release(9)raw_atomic_long_cmpxchg_relaxed(9)raw_atomic_long_try_cmpxchg(9)raw_atomic_long_try_cmpxchg_acquire(9)raw_atomic_long_try_cmpxchg_release(9)raw_atomic_long_try_cmpxchg_relaxed(9)raw_atomic_long_sub_and_test(9)raw_atomic_long_dec_and_test(9)raw_atomic_long_inc_and_test(9)raw_atomic_long_add_negative(9)raw_atomic_long_add_negative_acquire(9)raw_atomic_long_add_negative_release(9)raw_atomic_long_add_negative_relaxed(9)raw_atomic_long_fetch_add_unless(9)raw_atomic_long_add_unless(9)raw_atomic_long_inc_not_zero(9)raw_atomic_long_inc_unless_negative(9)raw_atomic_long_dec_unless_positive(9)raw_atomic_long_dec_if_positive(9)
like. ninety-ish man pages. the atomic_long family reunion is packed and everyone showed up in their best fit π«Ά go read them if you're nosy, we support curiosity here.
and that's the whole page, bestie!! π this little beauty lives in ./include/linux/atomic and it was stamped October 2026 β so go forth, increment your longs, keep it relaxed, and remember: raw is for noinstr, everything else gets the polite version. mwah ππ
β¨
π¦ 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