Cargo Features
[dependencies]
portable-atomic = { version = "1.9.0", default-features = false, features = ["fallback", "float", "std", "require-cas", "unsafe-assume-single-core", "s-mode", "force-amo", "disable-fiq", "serde", "critical-section"] }
- default = fallback
-
The
fallback
feature is set by default wheneverportable-atomic
is added without
somewhere in the dependency tree.default-features = false - fallback default
-
(enabled by default) Enable fallback implementations.
Disabling this allows only atomic types for which the platform natively supports atomic operations. - float
-
Provide
AtomicF{32,64}
.See documentation for more: https://github.com/taiki-e/portable-atomic#optional-features-float
- std
-
Use
std
. - require-cas
-
Emit compile error if atomic CAS is not available.
See documentation for more: https://github.com/taiki-e/portable-atomic#optional-features-require-cas
- unsafe-assume-single-core
-
Assume the target is single core, to enable implementations based on disabling interrupts. IMPORTANT: This feature is unsafe. See the documentation for the safety contract: https://github.com/taiki-e/portable-atomic#optional-features-unsafe-assume-single-core
- s-mode
-
The following are sub-features of the unsafe-assume-single-core feature and if enabled without the unsafe-assume-single-core feature will result in a compile error. There is no explicit "unsafe-" prefix because the user has already opted in to "unsafe" by enabling the unsafe-assume-single-core feature, but misuse of these features is also usually considered unsound. See the interrupt module's readme for more: https://github.com/taiki-e/portable-atomic/blob/HEAD/src/imp/interrupt/README.md
For RISC-V targets, generate code for S mode to disable interrupts.
- force-amo
-
For RISC-V targets, use AMO instructions even if A-extension is disabled.
This feature requires Rust 1.72+. - disable-fiq
-
For Arm targets, also disable FIQs when disabling interrupts.
Features from optional dependencies
Note: serde and critical-section are public dependencies.
- serde implicit feature
-
Enables serde
Implements serde::{Serialize,Deserialize} for atomic types.
See documentation for more: https://github.com/taiki-e/portable-atomic#optional-features-serde
- critical-section implicit feature
-
Enables critical-section
Use
critical-section
.See documentation for more: https://github.com/taiki-e/portable-atomic#optional-features-critical-section