Lines Matching +full:store +full:- +full:release
1 // SPDX-License-Identifier: GPL-2.0
7 //! - [`Acquire`] provides ordering between the load part of the annotated operation and all the
8 //! following memory accesses, and if there is a store part, the store part has the [`Relaxed`]
10 //! - [`Release`] provides ordering between all the preceding memory accesses and the store part of
13 //! - [`Full`] means "fully-ordered", that is:
14 //! - It provides ordering between all the preceding memory accesses and the annotated operation.
15 //! - It provides ordering between the annotated operation and all the following memory accesses.
16 //! - It provides ordering between all the preceding memory accesses and all the following memory
18 //! - All the orderings are the same strength as a full memory barrier (i.e. `smp_mb()`).
19 //! - [`Relaxed`] provides no ordering except the dependency orderings. Dependency orderings are
22 //! [`LKMM`]: srctree/tools/memory-model/
23 //! [`explanation`]: srctree/tools/memory-model/Documentation/explanation.txt
26 /// ordering, see [module-level documentation].
28 /// [module-level documentation]: crate::sync::atomic::ordering
32 /// ordering, see [module-level documentation].
34 /// [module-level documentation]: crate::sync::atomic::ordering
37 /// The annotation type for release memory ordering, for the description of release memory
38 /// ordering, see [module-level documentation].
40 /// [module-level documentation]: crate::sync::atomic::ordering
41 pub struct Release; struct
43 /// The annotation type for fully-ordered memory ordering, for the description fully-ordered memory
44 /// ordering, see [module-level documentation].
46 /// [module-level documentation]: crate::sync::atomic::ordering
56 /// Release ordering.
57 Release, enumerator
58 /// Fully-ordered.
68 impl Sealed for super::Release {} implementation
86 impl Ordering for Release { implementation
87 const TYPE: OrderingType = OrderingType::Release;
100 /// The trait bound for operations that only support release or relaxed ordering.
103 impl ReleaseOrRelaxed for Release {} implementation