aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavide Della Giustina <[email protected]>2023-02-28 14:22:54 +0000
committerDavide Della Giustina <[email protected]>2023-02-28 14:22:54 +0000
commit90f2939bf6ad02c68c3ada800d4ed7ddb66619a0 (patch)
tree4fb31287da087f575c47aee5a835db7fdcf274bb
parent28b695e7c9b134cafcdfb5897d26b00e396c7776 (diff)
Added PacketQueue::init()
-rw-r--r--embassy-stm32/src/eth/mod.rs18
-rw-r--r--embassy-stm32/src/lib.rs8
2 files changed, 25 insertions, 1 deletions
diff --git a/embassy-stm32/src/eth/mod.rs b/embassy-stm32/src/eth/mod.rs
index 9f62b61ee..9b500bfd6 100644
--- a/embassy-stm32/src/eth/mod.rs
+++ b/embassy-stm32/src/eth/mod.rs
@@ -39,6 +39,24 @@ impl<const TX: usize, const RX: usize> PacketQueue<TX, RX> {
39 rx_buf: [Packet([0; RX_BUFFER_SIZE]); RX], 39 rx_buf: [Packet([0; RX_BUFFER_SIZE]); RX],
40 } 40 }
41 } 41 }
42
43 // Allow to initialize a Self without requiring it to go on the stack
44 #[cfg(feature = "nightly")]
45 pub const unsafe fn init(this: &mut core::mem::MaybeUninit<Self>) {
46 let this: &mut Self = unsafe { this.assume_init_mut() };
47 let mut i = 0;
48 while i < TX {
49 this.tx_desc[i] = TDes::new();
50 this.tx_buf[i] = Packet([0; TX_BUFFER_SIZE]);
51 i += 1;
52 }
53 i = 0;
54 while i < RX {
55 this.rx_desc[i] = RDes::new();
56 this.rx_buf[i] = Packet([0; RX_BUFFER_SIZE]);
57 i += 1;
58 }
59 }
42} 60}
43 61
44static WAKER: AtomicWaker = AtomicWaker::new(); 62static WAKER: AtomicWaker = AtomicWaker::new();
diff --git a/embassy-stm32/src/lib.rs b/embassy-stm32/src/lib.rs
index eeaa04f67..7c0b2d516 100644
--- a/embassy-stm32/src/lib.rs
+++ b/embassy-stm32/src/lib.rs
@@ -1,7 +1,13 @@
1#![no_std] 1#![no_std]
2#![cfg_attr( 2#![cfg_attr(
3 feature = "nightly", 3 feature = "nightly",
4 feature(type_alias_impl_trait, async_fn_in_trait, impl_trait_projections) 4 feature(
5 type_alias_impl_trait,
6 async_fn_in_trait,
7 impl_trait_projections,
8 const_mut_refs,
9 const_maybe_uninit_assume_init
10 )
5)] 11)]
6#![cfg_attr(feature = "nightly", allow(incomplete_features))] 12#![cfg_attr(feature = "nightly", allow(incomplete_features))]
7 13