raw_atomic_l...dnot_relaxed(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

raw_atomic_l...dnot_relaxed(9) πŸ’…

okay so this is the Kernel API Manual page for raw_atomic_l...dnot_relaxed(9), and yes the title is doing a little abbreviation moment β€” the actual function is raw_atomic_long_fetch_andnot_relaxed. We're gonna get you comfy with it, bestie. 🫢


✨ NAME ✨

raw_atomic_long_fetch_andnot_relaxed β€” atomic bitwise AND NOT with relaxed ordering. It's giving "clear some bits, but make it atomic." πŸŽ€

🌸 SYNOPSIS 🌸

long raw_atomic_long_fetch_andnot_relaxed (long i , atomic_long_t *v );

πŸ¦‹ ARGUMENTS πŸ¦‹

  • i β€” a long value. Literally a long value, no cap. This is the operand that gets negated in the AND NOT.
  • v β€” pointer to atomic_long_t. This is the atomic long she's updating, periodt.

πŸ’– DESCRIPTION πŸ’–

Atomically updates v to (v & ~i) with relaxed ordering. So it's an atomic bitwise AND NOT, and the ordering setting is relaxed β€” that's the exact vibe, no extra spin. ✨

Safe to use in noinstr code; prefer atomic_long_fetch_andnot_relaxed elsewhere. That's the whole tea. If you're outside noinstr land, the manual is literally telling you to prefer the non-raw_ one. 🫢

πŸ”₯ RETURN πŸ”₯

The original value of v. So you get the before pic, not the after pic. πŸ’…

πŸ‘‘ SEE ALSO πŸ‘‘

Kernel file:

  • ./include/linux/atomic/atomic-long.h

And the entire atomic_long extended universe, in the exact order the manual serves it:


mwah πŸ’‹ bestie, that's the page. Source/version energy is ./include/linux/atomic, the date on it is October 2026, and it's filed under raw_atomic_l...dnot_relaxed(9). Now go clear those bits with relaxed-ordering confidence. πŸŒˆπŸ’œ

πŸ“¦ where this page comes from