raw_atomic_...xchg_release(9)
π NAME π
okay so welcome to the Kernel API Manual, bestie π β this page is filed under raw_atomic_...xchg_release(9) and it's all about raw_atomic_long_try_cmpxchg_release: atomic compare and exchange with release ordering. It's giving "try the compare-exchange, but make it release-flavored." No cap. β¨
β¨ SYNOPSIS β¨
copy this exactly, spaces and all:
bool raw_atomic_long_try_cmpxchg_release (atomic_long_t *v , long *old ,
long new );
π ARGUMENTS π
vβ pointer toatomic_long_t. This is the atomic long getting the main character treatment π.oldβ pointer tolongvalue to compare with. The "is it this one?" pointer, basically.newβlongvalue to assign. The new value waiting in the wings π .
π DESCRIPTION π
If (v == old), it atomically updates v to new with release ordering. Slay. Otherwise, v is not modified, old is updated to the current value of v, and relaxed ordering is provided. That's the tea β.
Heads up, bestie: it's safe to use innoinstrcode π«Ά. But elsewhere, preferatomic_long_try_cmpxchg_release. Periodt.
π₯ RETURN π₯
Returns true if the exchange occurred, and false otherwise. The bool is booling, fr fr. π
π¦ SEE ALSO π¦
Kernel file: ./include/linux/atomic/atomic-long.h β the source of truth, go read it.
- Read/set core:
raw_atomic_long_read(9),raw_atomic_long_read_acquire(9),raw_atomic_long_set(9),raw_atomic_long_set_release(9) - Add squad:
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) - Sub squad:
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) - Inc squad:
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_inc_return_relaxed(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) - Dec squad:
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) - Bitwise AND crew:
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) - Exchange/compare crew:
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_relaxed(9) - Test/negative/unless besties:
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)
Mwah π β source/version: ./include/linux/atomic, dated October 2026. Bye bestie, go atomically slay. π
π¦ 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