Skip to content

Commit 564ac4a

Browse files
committed
multiboot2: Combine EFIMemoryAreaIter(Mut)
1 parent 2844884 commit 564ac4a

File tree

1 file changed

+7
-16
lines changed

1 file changed

+7
-16
lines changed

multiboot2/src/memory_map.rs

+7-16
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ impl EFIMemoryMapTag {
317317
///
318318
/// This differs from `MemoryMapTag` as for UEFI, the OS needs some non-
319319
/// available memory areas for tables and such.
320-
pub fn memory_areas(&self) -> EFIMemoryAreaIter {
320+
pub fn memory_areas(&self) -> EFIMemoryAreaIter<&EFIMemoryDesc> {
321321
let self_ptr = self as *const EFIMemoryMapTag;
322322
let start_area = (&self.descs[0]) as *const EFIMemoryDesc;
323323
EFIMemoryAreaIter {
@@ -333,10 +333,10 @@ impl EFIMemoryMapTag {
333333
///
334334
/// This differs from `MemoryMapTag` as for UEFI, the OS needs some non-
335335
/// available memory areas for tables and such.
336-
pub fn memory_areas_mut(&mut self) -> EFIMemoryAreaIterMut {
336+
pub fn memory_areas_mut(&mut self) -> EFIMemoryAreaIter<&mut EFIMemoryDesc> {
337337
let self_ptr = self as *mut EFIMemoryMapTag;
338338
let start_area = (&mut self.descs[0]) as *mut EFIMemoryDesc;
339-
EFIMemoryAreaIterMut {
339+
EFIMemoryAreaIter {
340340
current_area: start_area as u64,
341341
// NOTE: `last_area` is only a bound, it doesn't necessarily point exactly to the last element
342342
last_area: (self_ptr as *mut () as u64 + self.size as u64),
@@ -390,14 +390,14 @@ impl TagTrait for EFIBootServicesNotExitedTag {
390390

391391
/// An iterator over ALL EFI memory areas.
392392
#[derive(Clone, Debug)]
393-
pub struct EFIMemoryAreaIter<'a> {
393+
pub struct EFIMemoryAreaIter<T> {
394394
current_area: u64,
395395
last_area: u64,
396396
entry_size: u32,
397-
phantom: PhantomData<&'a EFIMemoryDesc>,
397+
phantom: PhantomData<T>,
398398
}
399399

400-
impl<'a> Iterator for EFIMemoryAreaIter<'a> {
400+
impl<'a> Iterator for EFIMemoryAreaIter<&'a EFIMemoryDesc> {
401401
type Item = &'a EFIMemoryDesc;
402402
fn next(&mut self) -> Option<&'a EFIMemoryDesc> {
403403
if self.current_area > self.last_area {
@@ -410,16 +410,7 @@ impl<'a> Iterator for EFIMemoryAreaIter<'a> {
410410
}
411411
}
412412

413-
/// An iterator over ALL EFI memory areas, mutably.
414-
#[derive(Clone, Debug)]
415-
pub struct EFIMemoryAreaIterMut<'a> {
416-
current_area: u64,
417-
last_area: u64,
418-
entry_size: u32,
419-
phantom: PhantomData<&'a mut EFIMemoryDesc>,
420-
}
421-
422-
impl<'a> Iterator for EFIMemoryAreaIterMut<'a> {
413+
impl<'a> Iterator for EFIMemoryAreaIter<&'a mut EFIMemoryDesc> {
423414
type Item = &'a mut EFIMemoryDesc;
424415
fn next(&mut self) -> Option<&'a mut EFIMemoryDesc> {
425416
if self.current_area > self.last_area {

0 commit comments

Comments
 (0)