Added PacketQueue::init()
This commit is contained in:
parent
28b695e7c9
commit
90f2939bf6
2 changed files with 25 additions and 1 deletions
|
@ -39,6 +39,24 @@ impl<const TX: usize, const RX: usize> PacketQueue<TX, RX> {
|
|||
rx_buf: [Packet([0; RX_BUFFER_SIZE]); RX],
|
||||
}
|
||||
}
|
||||
|
||||
// Allow to initialize a Self without requiring it to go on the stack
|
||||
#[cfg(feature = "nightly")]
|
||||
pub const unsafe fn init(this: &mut core::mem::MaybeUninit<Self>) {
|
||||
let this: &mut Self = unsafe { this.assume_init_mut() };
|
||||
let mut i = 0;
|
||||
while i < TX {
|
||||
this.tx_desc[i] = TDes::new();
|
||||
this.tx_buf[i] = Packet([0; TX_BUFFER_SIZE]);
|
||||
i += 1;
|
||||
}
|
||||
i = 0;
|
||||
while i < RX {
|
||||
this.rx_desc[i] = RDes::new();
|
||||
this.rx_buf[i] = Packet([0; RX_BUFFER_SIZE]);
|
||||
i += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static WAKER: AtomicWaker = AtomicWaker::new();
|
||||
|
|
|
@ -1,7 +1,13 @@
|
|||
#![no_std]
|
||||
#![cfg_attr(
|
||||
feature = "nightly",
|
||||
feature(type_alias_impl_trait, async_fn_in_trait, impl_trait_projections)
|
||||
feature(
|
||||
type_alias_impl_trait,
|
||||
async_fn_in_trait,
|
||||
impl_trait_projections,
|
||||
const_mut_refs,
|
||||
const_maybe_uninit_assume_init
|
||||
)
|
||||
)]
|
||||
#![cfg_attr(feature = "nightly", allow(incomplete_features))]
|
||||
|
||||
|
|
Loading…
Reference in a new issue