// SPDX-License-Identifier: MIT OR Apache-2.0 // // Copyright (c) 2018-2020 Andre Richter //! Memory Management. use core::ops::Range; //-------------------------------------------------------------------------------------------------- // Public Code //-------------------------------------------------------------------------------------------------- /// Zero out a memory range. /// /// # Safety /// /// - `range.start` and `range.end` must be valid. /// - `range.start` and `range.end` must be `T` aligned. pub unsafe fn zero_volatile(range: Range<*mut T>) where T: From, { let mut ptr = range.start; while ptr < range.end { core::ptr::write_volatile(ptr, T::from(0)); ptr = ptr.offset(1); } }