diff --git a/embassy-stm32/src/eth/mod.rs b/embassy-stm32/src/eth/mod.rs index 9f62b61e..b632861b 100644 --- a/embassy-stm32/src/eth/mod.rs +++ b/embassy-stm32/src/eth/mod.rs @@ -5,6 +5,7 @@ mod _version; pub mod generic_smi; +use core::mem::MaybeUninit; use core::task::Context; use embassy_net_driver::{Capabilities, LinkState}; @@ -39,6 +40,13 @@ impl PacketQueue { rx_buf: [Packet([0; RX_BUFFER_SIZE]); RX], } } + + // Allow to initialize a Self without requiring it to go on the stack + pub fn init(this: &mut MaybeUninit) { + unsafe { + this.as_mut_ptr().write_bytes(0u8, core::mem::size_of::()); + } + } } static WAKER: AtomicWaker = AtomicWaker::new();