aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embassy-macros/src/lib.rs8
-rw-r--r--embassy/src/executor/mod.rs2
-rw-r--r--embassy/src/executor/raw.rs2
-rw-r--r--embassy/src/executor/run_queue.rs2
-rw-r--r--embassy/src/executor/timer_queue.rs2
-rw-r--r--embassy/src/interrupt.rs2
-rw-r--r--embassy/src/lib.rs7
-rw-r--r--embassy/src/util/forever.rs2
8 files changed, 16 insertions, 11 deletions
diff --git a/embassy-macros/src/lib.rs b/embassy-macros/src/lib.rs
index 5b834ff13..710c5a151 100644
--- a/embassy-macros/src/lib.rs
+++ b/embassy-macros/src/lib.rs
@@ -157,17 +157,17 @@ pub fn interrupt_take(item: TokenStream) -> TokenStream {
157 static HANDLER: ::embassy::interrupt::Handler; 157 static HANDLER: ::embassy::interrupt::Handler;
158 } 158 }
159 159
160 let func = HANDLER.func.load(::embassy::atomic::Ordering::Acquire); 160 let func = HANDLER.func.load(::embassy::export::atomic::Ordering::Acquire);
161 let ctx = HANDLER.ctx.load(::embassy::atomic::Ordering::Acquire); 161 let ctx = HANDLER.ctx.load(::embassy::export::atomic::Ordering::Acquire);
162 if !func.is_null() { 162 if !func.is_null() {
163 let func: fn(*mut ()) = ::core::mem::transmute(func); 163 let func: fn(*mut ()) = ::core::mem::transmute(func);
164 func(ctx) 164 func(ctx)
165 } 165 }
166 } 166 }
167 167
168 static TAKEN: ::embassy::atomic::AtomicBool = ::embassy::atomic::AtomicBool::new(false); 168 static TAKEN: ::embassy::export::atomic::AtomicBool = ::embassy::export::atomic::AtomicBool::new(false);
169 169
170 if TAKEN.compare_exchange(false, true, ::embassy::atomic::Ordering::AcqRel, ::embassy::atomic::Ordering::Acquire).is_err() { 170 if TAKEN.compare_exchange(false, true, ::embassy::export::atomic::Ordering::AcqRel, ::embassy::export::atomic::Ordering::Acquire).is_err() {
171 panic!("IRQ Already taken"); 171 panic!("IRQ Already taken");
172 } 172 }
173 173
diff --git a/embassy/src/executor/mod.rs b/embassy/src/executor/mod.rs
index 7a6caf702..787230c0b 100644
--- a/embassy/src/executor/mod.rs
+++ b/embassy/src/executor/mod.rs
@@ -1,5 +1,6 @@
1pub use embassy_macros::task; 1pub use embassy_macros::task;
2 2
3use atomic_polyfill::Ordering;
3use core::future::Future; 4use core::future::Future;
4use core::marker::PhantomData; 5use core::marker::PhantomData;
5use core::pin::Pin; 6use core::pin::Pin;
@@ -15,7 +16,6 @@ mod util;
15mod waker; 16mod waker;
16 17
17use self::util::UninitCell; 18use self::util::UninitCell;
18use crate::atomic::Ordering;
19use crate::fmt::panic; 19use crate::fmt::panic;
20use crate::interrupt::{Interrupt, InterruptExt}; 20use crate::interrupt::{Interrupt, InterruptExt};
21use crate::time::Alarm; 21use crate::time::Alarm;
diff --git a/embassy/src/executor/raw.rs b/embassy/src/executor/raw.rs
index 0c947080f..84e171dff 100644
--- a/embassy/src/executor/raw.rs
+++ b/embassy/src/executor/raw.rs
@@ -1,3 +1,4 @@
1use atomic_polyfill::{AtomicU32, Ordering};
1use core::cell::Cell; 2use core::cell::Cell;
2use core::cmp::min; 3use core::cmp::min;
3use core::marker::PhantomData; 4use core::marker::PhantomData;
@@ -9,7 +10,6 @@ use super::run_queue::{RunQueue, RunQueueItem};
9use super::timer_queue::{TimerQueue, TimerQueueItem}; 10use super::timer_queue::{TimerQueue, TimerQueueItem};
10use super::util::UninitCell; 11use super::util::UninitCell;
11use super::waker; 12use super::waker;
12use crate::atomic::{AtomicU32, Ordering};
13use crate::time::{Alarm, Instant}; 13use crate::time::{Alarm, Instant};
14 14
15/// Task is spawned (has a future) 15/// Task is spawned (has a future)
diff --git a/embassy/src/executor/run_queue.rs b/embassy/src/executor/run_queue.rs
index fb7c65e03..1d1023e51 100644
--- a/embassy/src/executor/run_queue.rs
+++ b/embassy/src/executor/run_queue.rs
@@ -1,8 +1,8 @@
1use atomic_polyfill::{AtomicPtr, Ordering};
1use core::ptr; 2use core::ptr;
2use core::ptr::NonNull; 3use core::ptr::NonNull;
3 4
4use super::raw::Task; 5use super::raw::Task;
5use crate::atomic::{AtomicPtr, Ordering};
6 6
7pub(crate) struct RunQueueItem { 7pub(crate) struct RunQueueItem {
8 next: AtomicPtr<Task>, 8 next: AtomicPtr<Task>,
diff --git a/embassy/src/executor/timer_queue.rs b/embassy/src/executor/timer_queue.rs
index bd043aeb5..d72eb93b1 100644
--- a/embassy/src/executor/timer_queue.rs
+++ b/embassy/src/executor/timer_queue.rs
@@ -1,10 +1,10 @@
1use atomic_polyfill::{AtomicPtr, Ordering};
1use core::cell::Cell; 2use core::cell::Cell;
2use core::cmp::min; 3use core::cmp::min;
3use core::ptr; 4use core::ptr;
4use core::ptr::NonNull; 5use core::ptr::NonNull;
5 6
6use super::raw::{Task, STATE_TIMER_QUEUED}; 7use super::raw::{Task, STATE_TIMER_QUEUED};
7use crate::atomic::{AtomicPtr, Ordering};
8use crate::time::Instant; 8use crate::time::Instant;
9 9
10pub(crate) struct TimerQueueItem { 10pub(crate) struct TimerQueueItem {
diff --git a/embassy/src/interrupt.rs b/embassy/src/interrupt.rs
index 6491a57d9..013e722e6 100644
--- a/embassy/src/interrupt.rs
+++ b/embassy/src/interrupt.rs
@@ -1,7 +1,7 @@
1use core::ptr; 1use core::ptr;
2use cortex_m::peripheral::NVIC; 2use cortex_m::peripheral::NVIC;
3 3
4use crate::atomic::{AtomicBool, AtomicPtr, Ordering}; 4use atomic_polyfill::{AtomicBool, AtomicPtr, Ordering};
5 5
6pub use embassy_macros::interrupt_declare as declare; 6pub use embassy_macros::interrupt_declare as declare;
7pub use embassy_macros::interrupt_take as take; 7pub use embassy_macros::interrupt_take as take;
diff --git a/embassy/src/lib.rs b/embassy/src/lib.rs
index 55c8d8575..b6fefc9f7 100644
--- a/embassy/src/lib.rs
+++ b/embassy/src/lib.rs
@@ -18,4 +18,9 @@ pub mod time;
18pub mod util; 18pub mod util;
19 19
20pub use embassy_traits as traits; 20pub use embassy_traits as traits;
21pub use atomic_polyfill as atomic; 21
22#[doc(hidden)]
23/// Implementation details for embassy macros. DO NOT USE.
24pub mod export {
25 pub use atomic_polyfill as atomic;
26}
diff --git a/embassy/src/util/forever.rs b/embassy/src/util/forever.rs
index fac3c260b..ac23a3ce3 100644
--- a/embassy/src/util/forever.rs
+++ b/embassy/src/util/forever.rs
@@ -1,7 +1,7 @@
1use core::cell::UnsafeCell; 1use core::cell::UnsafeCell;
2use core::mem::MaybeUninit; 2use core::mem::MaybeUninit;
3 3
4use crate::atomic::{AtomicBool, Ordering}; 4use atomic_polyfill::{AtomicBool, Ordering};
5 5
6pub struct Forever<T> { 6pub struct Forever<T> {
7 used: AtomicBool, 7 used: AtomicBool,