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§
- Atomic
Add - Types that support atomic add operations.
- Atomic
Impl - A marker trait for types that implement atomic operations with C side primitives.
- Atomic
Type - Types that support basic atomic operations.