diff options
author | 2018-01-17 21:51:47 +0100 | |
---|---|---|
committer | 2018-01-17 21:51:47 +0100 | |
commit | 1aee43cc3085828dada0702a0330b5519e36bdb2 (patch) | |
tree | e67cf583e2fcae0a6db6f1bcab41deb8e6eed076 | |
parent | 7ab9cf4bfb9687518b81dbd25b6ec54c4da50e17 (diff) | |
download | cortex-m-1aee43cc3085828dada0702a0330b5519e36bdb2.tar.gz cortex-m-1aee43cc3085828dada0702a0330b5519e36bdb2.tar.zst cortex-m-1aee43cc3085828dada0702a0330b5519e36bdb2.zip |
impl Send for all the peripherals
-rw-r--r-- | CHANGELOG.md | 9 | ||||
-rw-r--r-- | Cargo.toml | 2 | ||||
-rw-r--r-- | src/peripheral/mod.rs | 32 |
3 files changed, 38 insertions, 5 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 912a141..1100d63 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased] +## [v0.4.2] - 2018-01-17 + +### Fixed + +- Added a missing `Send` implementation to all the peripherals. + ## [v0.4.1] - 2018-01-16 ### Changed @@ -385,7 +391,8 @@ fn main() { - Functions to get the vector table - Wrappers over miscellaneous instructions like `bkpt` -[Unreleased]: https://github.com/japaric/cortex-m/compare/v0.4.1...HEAD +[Unreleased]: https://github.com/japaric/cortex-m/compare/v0.4.2...HEAD +[v0.4.2]: https://github.com/japaric/cortex-m/compare/v0.4.1...v0.4.2 [v0.4.1]: https://github.com/japaric/cortex-m/compare/v0.4.0...v0.4.1 [v0.4.0]: https://github.com/japaric/cortex-m/compare/v0.3.1...v0.4.0 [v0.3.1]: https://github.com/japaric/cortex-m/compare/v0.3.0...v0.3.1 @@ -7,7 +7,7 @@ keywords = ["arm", "cortex-m", "register", "peripheral"] license = "MIT OR Apache-2.0" name = "cortex-m" repository = "https://github.com/japaric/cortex-m" -version = "0.4.1" +version = "0.4.2" [dependencies] aligned = "0.1.1" diff --git a/src/peripheral/mod.rs b/src/peripheral/mod.rs index dad12a5..4462136 100644 --- a/src/peripheral/mod.rs +++ b/src/peripheral/mod.rs @@ -221,6 +221,9 @@ pub struct CBP { } #[cfg(any(armv7m, target_arch = "x86_64"))] +unsafe impl Send for CBP {} + +#[cfg(any(armv7m, target_arch = "x86_64"))] impl CBP { pub(crate) unsafe fn new() -> Self { CBP { @@ -235,9 +238,6 @@ impl CBP { } #[cfg(any(armv7m, target_arch = "x86_64"))] -unsafe impl Send for CBP {} - -#[cfg(any(armv7m, target_arch = "x86_64"))] impl ops::Deref for CBP { type Target = self::cbp::RegisterBlock; @@ -251,6 +251,8 @@ pub struct CPUID { _marker: PhantomData<*const ()>, } +unsafe impl Send for CPUID {} + impl CPUID { /// Returns a pointer to the register block pub fn ptr() -> *const self::cpuid::RegisterBlock { @@ -271,6 +273,8 @@ pub struct DCB { _marker: PhantomData<*const ()>, } +unsafe impl Send for DCB {} + impl DCB { /// Returns a pointer to the register block pub fn ptr() -> *const dcb::RegisterBlock { @@ -291,6 +295,8 @@ pub struct DWT { _marker: PhantomData<*const ()>, } +unsafe impl Send for DWT {} + impl DWT { /// Returns a pointer to the register block pub fn ptr() -> *const dwt::RegisterBlock { @@ -315,6 +321,9 @@ pub struct FPB { } #[cfg(any(armv7m, target_arch = "x86_64"))] +unsafe impl Send for FPB {} + +#[cfg(any(armv7m, target_arch = "x86_64"))] impl FPB { /// Returns a pointer to the register block pub fn ptr() -> *const fpb::RegisterBlock { @@ -340,6 +349,9 @@ pub struct FPU { } #[cfg(any(has_fpu, target_arch = "x86_64"))] +unsafe impl Send for FPU {} + +#[cfg(any(has_fpu, target_arch = "x86_64"))] impl FPU { /// Returns a pointer to the register block pub fn ptr() -> *const fpu::RegisterBlock { @@ -365,6 +377,9 @@ pub struct ITM { } #[cfg(any(armv7m, target_arch = "x86_64"))] +unsafe impl Send for ITM {} + +#[cfg(any(armv7m, target_arch = "x86_64"))] impl ITM { /// Returns a pointer to the register block pub fn ptr() -> *mut itm::RegisterBlock { @@ -393,6 +408,8 @@ pub struct MPU { _marker: PhantomData<*const ()>, } +unsafe impl Send for MPU {} + impl MPU { /// Returns a pointer to the register block pub fn ptr() -> *const mpu::RegisterBlock { @@ -413,6 +430,8 @@ pub struct NVIC { _marker: PhantomData<*const ()>, } +unsafe impl Send for NVIC {} + impl NVIC { /// Returns a pointer to the register block pub fn ptr() -> *const nvic::RegisterBlock { @@ -433,6 +452,8 @@ pub struct SCB { _marker: PhantomData<*const ()>, } +unsafe impl Send for SCB {} + impl SCB { /// Returns a pointer to the register block pub fn ptr() -> *const scb::RegisterBlock { @@ -453,6 +474,8 @@ pub struct SYST { _marker: PhantomData<*const ()>, } +unsafe impl Send for SYST {} + impl SYST { /// Returns a pointer to the register block pub fn ptr() -> *const syst::RegisterBlock { @@ -477,6 +500,9 @@ pub struct TPIU { } #[cfg(any(armv7m, target_arch = "x86_64"))] +unsafe impl Send for TPIU {} + +#[cfg(any(armv7m, target_arch = "x86_64"))] impl TPIU { /// Returns a pointer to the register block pub fn ptr() -> *const tpiu::RegisterBlock { |