Module atomic

Source
Expand description

Atomic primitives.

These primitives have the same semantics as their C counterparts: and the precise definitions of semantics can be found at LKMM. Note that Linux Kernel Memory (Consistency) Model is the only model for Rust code in kernel, and Rust’s own atomics should be avoided.

§Data races

LKMM atomics have different rules regarding data races:

  • A normal write from C side is treated as an atomic write if CONFIG_KCSAN_ASSUME_PLAIN_WRITES_ATOMIC=y.
  • Mixed-size atomic accesses don’t cause data races.

Re-exports§

pub use ordering::Acquire;
pub use ordering::Full;
pub use ordering::Relaxed;
pub use ordering::Release;

Modules§

ordering
Memory orderings.

Structs§

Atomic
A memory location which can be safely modified from multiple execution contexts.

Traits§

AtomicAdd
Types that support atomic add operations.
AtomicImpl
A marker trait for types that implement atomic operations with C side primitives.
AtomicType
Types that support basic atomic operations.