raw_atomic_..._xor_acquire(9)
raw_atomic_..._xor_acquire(9) π β¨
okay so welcome to the Kernel API Manual, bestie β todayβs main character is raw_atomic_long_fetch_xor_acquire, and sheβs here to do an atomic bitwise XOR with acquire ordering. no cap, sheβs iconic. π¦
β¨ NAME β¨
raw_atomic_long_fetch_xor_acquire β atomic bitwise XOR with acquire ordering. thatβs the whole vibe, fr fr. π
π SYNOPSIS π
long raw_atomic_long_fetch_xor_acquire (long i , atomic_long_t *v );
π§Ύ ARGUMENTS π§Ύ
iβ alongvalue. thatβs the value youβre XOR-ing in, bestie. πΈvβ pointer toatomic_long_t. thatβs the atomic long getting updated. π
π DESCRIPTION π
okay so this one atomically updates v to (v ^ i) with acquire ordering. itβs giving βtiny but powerful,β and the way it does the whole thing atomically is lowkey iconic. β¨
itβs safe to use in noinstr code β but outside of that, please prefer atomic_long_fetch_xor_acquire elsewhere. iykyk. π«Ά
π RETURN π
the original value of v. not the new one β the original one, bestie. thatβs what you get back. π
π SEE ALSO π
Kernel file: ./include/linux/atomic/atomic-long.h π§
- reads and sets:
raw_atomic_long_read(9),raw_atomic_long_read_acquire(9),raw_atomic_long_set(9),raw_atomic_long_set_release(9) - add crew:
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 crew:
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 crew:
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 crew:
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) - 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) - andnot crew:
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) - or crew:
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) - xor crew:
raw_atomic_long_xor(9),raw_atomic_long_fetch_xor(9),raw_atomic_long_fetch_xor_release(9),raw_atomic_long_fetch_xor_relaxed(9) - xchg crew:
raw_atomic_long_xchg(9),raw_atomic_long_xchg_acquire(9),raw_atomic_long_xchg_release(9),raw_atomic_long_xchg_relaxed(9) - cmpxchg crew:
raw_atomic_long_cmpxchg(9),raw_atomic_long_cmpxchg_acquire(9),raw_atomic_long_cmpxchg_release(9),raw_atomic_long_cmpxchg_relaxed(9) - try cmpxchg crew:
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) - test and negative crew:
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) - unless and not-zero crew:
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)
xoxo bestie π
β this page came from the ./include/linux/atomic source/version, dated October 2026, and itβs all about raw_atomic_..._xor_acquire(9) πβ¨
π¦ 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