diff options
| author | Liam Murphy <[email protected]> | 2021-07-29 15:11:26 +1000 |
|---|---|---|
| committer | Liam Murphy <[email protected]> | 2021-07-29 15:11:26 +1000 |
| commit | d5ba35424d7eef2cc0c501758d214ce3a6febfc1 (patch) | |
| tree | 8d3b07073b7f5f2ea67bb061a990b019c79aeeb5 /embassy-nrf/src | |
| parent | 4d9514cbcb97343c3a75bfa565d753c44c2a0e27 (diff) | |
Replace `PeripheralStateUnchecked` with `register_interrupt_unchecked`
Diffstat (limited to 'embassy-nrf/src')
| -rw-r--r-- | embassy-nrf/src/buffered_uarte.rs | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/embassy-nrf/src/buffered_uarte.rs b/embassy-nrf/src/buffered_uarte.rs index 2cce122bc..9be4d4d54 100644 --- a/embassy-nrf/src/buffered_uarte.rs +++ b/embassy-nrf/src/buffered_uarte.rs | |||
| @@ -7,7 +7,7 @@ use core::task::{Context, Poll}; | |||
| 7 | use embassy::interrupt::InterruptExt; | 7 | use embassy::interrupt::InterruptExt; |
| 8 | use embassy::io::{AsyncBufRead, AsyncWrite, Result}; | 8 | use embassy::io::{AsyncBufRead, AsyncWrite, Result}; |
| 9 | use embassy::util::{Unborrow, WakerRegistration}; | 9 | use embassy::util::{Unborrow, WakerRegistration}; |
| 10 | use embassy_extras::peripheral::{PeripheralMutex, PeripheralStateUnchecked}; | 10 | use embassy_extras::peripheral::{PeripheralMutex, PeripheralState}; |
| 11 | use embassy_extras::ring_buffer::RingBuffer; | 11 | use embassy_extras::ring_buffer::RingBuffer; |
| 12 | use embassy_extras::{low_power_wait_until, unborrow}; | 12 | use embassy_extras::{low_power_wait_until, unborrow}; |
| 13 | 13 | ||
| @@ -175,7 +175,7 @@ impl<'d, U: UarteInstance, T: TimerInstance> BufferedUarte<'d, U, T> { | |||
| 175 | 175 | ||
| 176 | pub fn set_baudrate(self: Pin<&mut Self>, baudrate: Baudrate) { | 176 | pub fn set_baudrate(self: Pin<&mut Self>, baudrate: Baudrate) { |
| 177 | let mut inner = self.inner(); | 177 | let mut inner = self.inner(); |
| 178 | inner.as_mut().register_interrupt(); | 178 | unsafe { inner.as_mut().register_interrupt_unchecked() } |
| 179 | inner.with(|state| { | 179 | inner.with(|state| { |
| 180 | let r = U::regs(); | 180 | let r = U::regs(); |
| 181 | 181 | ||
| @@ -195,7 +195,7 @@ impl<'d, U: UarteInstance, T: TimerInstance> BufferedUarte<'d, U, T> { | |||
| 195 | impl<'d, U: UarteInstance, T: TimerInstance> AsyncBufRead for BufferedUarte<'d, U, T> { | 195 | impl<'d, U: UarteInstance, T: TimerInstance> AsyncBufRead for BufferedUarte<'d, U, T> { |
| 196 | fn poll_fill_buf(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<&[u8]>> { | 196 | fn poll_fill_buf(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Result<&[u8]>> { |
| 197 | let mut inner = self.inner(); | 197 | let mut inner = self.inner(); |
| 198 | inner.as_mut().register_interrupt(); | 198 | unsafe { inner.as_mut().register_interrupt_unchecked() } |
| 199 | inner.with(|state| { | 199 | inner.with(|state| { |
| 200 | // Conservative compiler fence to prevent optimizations that do not | 200 | // Conservative compiler fence to prevent optimizations that do not |
| 201 | // take in to account actions by DMA. The fence has been placed here, | 201 | // take in to account actions by DMA. The fence has been placed here, |
| @@ -220,7 +220,7 @@ impl<'d, U: UarteInstance, T: TimerInstance> AsyncBufRead for BufferedUarte<'d, | |||
| 220 | 220 | ||
| 221 | fn consume(self: Pin<&mut Self>, amt: usize) { | 221 | fn consume(self: Pin<&mut Self>, amt: usize) { |
| 222 | let mut inner = self.inner(); | 222 | let mut inner = self.inner(); |
| 223 | inner.as_mut().register_interrupt(); | 223 | unsafe { inner.as_mut().register_interrupt_unchecked() } |
| 224 | inner.as_mut().with(|state| { | 224 | inner.as_mut().with(|state| { |
| 225 | trace!("consume {:?}", amt); | 225 | trace!("consume {:?}", amt); |
| 226 | state.rx.pop(amt); | 226 | state.rx.pop(amt); |
| @@ -232,7 +232,7 @@ impl<'d, U: UarteInstance, T: TimerInstance> AsyncBufRead for BufferedUarte<'d, | |||
| 232 | impl<'d, U: UarteInstance, T: TimerInstance> AsyncWrite for BufferedUarte<'d, U, T> { | 232 | impl<'d, U: UarteInstance, T: TimerInstance> AsyncWrite for BufferedUarte<'d, U, T> { |
| 233 | fn poll_write(self: Pin<&mut Self>, cx: &mut Context<'_>, buf: &[u8]) -> Poll<Result<usize>> { | 233 | fn poll_write(self: Pin<&mut Self>, cx: &mut Context<'_>, buf: &[u8]) -> Poll<Result<usize>> { |
| 234 | let mut inner = self.inner(); | 234 | let mut inner = self.inner(); |
| 235 | inner.as_mut().register_interrupt(); | 235 | unsafe { inner.as_mut().register_interrupt_unchecked() } |
| 236 | let poll = inner.as_mut().with(|state| { | 236 | let poll = inner.as_mut().with(|state| { |
| 237 | trace!("poll_write: {:?}", buf.len()); | 237 | trace!("poll_write: {:?}", buf.len()); |
| 238 | 238 | ||
| @@ -285,8 +285,7 @@ impl<'a, U: UarteInstance, T: TimerInstance> Drop for State<'a, U, T> { | |||
| 285 | } | 285 | } |
| 286 | } | 286 | } |
| 287 | 287 | ||
| 288 | // SAFETY: the safety contract of `PeripheralStateUnchecked` is forwarded to `BufferedUarte::new`. | 288 | impl<'a, U: UarteInstance, T: TimerInstance> PeripheralState for State<'a, U, T> { |
| 289 | unsafe impl<'a, U: UarteInstance, T: TimerInstance> PeripheralStateUnchecked for State<'a, U, T> { | ||
| 290 | type Interrupt = U::Interrupt; | 289 | type Interrupt = U::Interrupt; |
| 291 | fn on_interrupt(&mut self) { | 290 | fn on_interrupt(&mut self) { |
| 292 | trace!("irq: start"); | 291 | trace!("irq: start"); |
