PeripheralMutex should be Unpin

This commit is contained in:
Dario Nieuwenhuis
2021-02-20 00:27:24 +01:00
parent e454969000
commit 03ddc949a0
2 changed files with 8 additions and 3 deletions

View File

@ -1,6 +1,7 @@
use core::cell::UnsafeCell;
use core::marker::{PhantomData, PhantomPinned};
use core::pin::Pin;
use core::sync::atomic::{compiler_fence, Ordering};
use core::{cell::UnsafeCell, marker::PhantomData};
use crate::fmt::*;
use crate::interrupt::OwnedInterrupt;
@ -12,14 +13,16 @@ pub trait PeripheralState {
pub struct PeripheralMutex<S: PeripheralState> {
inner: Option<(UnsafeCell<S>, S::Interrupt)>,
not_send: PhantomData<*mut ()>,
_not_send: PhantomData<*mut ()>,
_pinned: PhantomPinned,
}
impl<S: PeripheralState> PeripheralMutex<S> {
pub fn new(state: S, irq: S::Interrupt) -> Self {
Self {
inner: Some((UnsafeCell::new(state), irq)),
not_send: PhantomData,
_not_send: PhantomData,
_pinned: PhantomPinned,
}
}