Skip to content

Commit 9230e11

Browse files
YtvwlDphip1611
authored andcommitted
multiboot2: Combine EFIMemoryAreaIter(Mut)
1 parent 0d4201b commit 9230e11

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
@@ -315,7 +315,7 @@ impl EFIMemoryMapTag {
315315
///
316316
/// This differs from `MemoryMapTag` as for UEFI, the OS needs some non-
317317
/// available memory areas for tables and such.
318-
pub fn memory_areas(&self) -> EFIMemoryAreaIter {
318+
pub fn memory_areas(&self) -> EFIMemoryAreaIter<&EFIMemoryDesc> {
319319
let self_ptr = self as *const EFIMemoryMapTag;
320320
let start_area = (&self.descs[0]) as *const EFIMemoryDesc;
321321
EFIMemoryAreaIter {
@@ -331,10 +331,10 @@ impl EFIMemoryMapTag {
331331
///
332332
/// This differs from `MemoryMapTag` as for UEFI, the OS needs some non-
333333
/// available memory areas for tables and such.
334-
pub fn memory_areas_mut(&mut self) -> EFIMemoryAreaIterMut {
334+
pub fn memory_areas_mut(&mut self) -> EFIMemoryAreaIter<&mut EFIMemoryDesc> {
335335
let self_ptr = self as *mut EFIMemoryMapTag;
336336
let start_area = (&mut self.descs[0]) as *mut EFIMemoryDesc;
337-
EFIMemoryAreaIterMut {
337+
EFIMemoryAreaIter {
338338
current_area: start_area as u64,
339339
// NOTE: `last_area` is only a bound, it doesn't necessarily point exactly to the last element
340340
last_area: (self_ptr as *mut () as u64 + self.size as u64),
@@ -401,14 +401,14 @@ impl StructAsBytes for EFIBootServicesNotExitedTag {
401401

402402
/// An iterator over ALL EFI memory areas.
403403
#[derive(Clone, Debug)]
404-
pub struct EFIMemoryAreaIter<'a> {
404+
pub struct EFIMemoryAreaIter<T> {
405405
current_area: u64,
406406
last_area: u64,
407407
entry_size: u32,
408-
phantom: PhantomData<&'a EFIMemoryDesc>,
408+
phantom: PhantomData<T>,
409409
}
410410

411-
impl<'a> Iterator for EFIMemoryAreaIter<'a> {
411+
impl<'a> Iterator for EFIMemoryAreaIter<&'a EFIMemoryDesc> {
412412
type Item = &'a EFIMemoryDesc;
413413
fn next(&mut self) -> Option<&'a EFIMemoryDesc> {
414414
if self.current_area > self.last_area {
@@ -421,16 +421,7 @@ impl<'a> Iterator for EFIMemoryAreaIter<'a> {
421421
}
422422
}
423423

424-
/// An iterator over ALL EFI memory areas, mutably.
425-
#[derive(Clone, Debug)]
426-
pub struct EFIMemoryAreaIterMut<'a> {
427-
current_area: u64,
428-
last_area: u64,
429-
entry_size: u32,
430-
phantom: PhantomData<&'a mut EFIMemoryDesc>,
431-
}
432-
433-
impl<'a> Iterator for EFIMemoryAreaIterMut<'a> {
424+
impl<'a> Iterator for EFIMemoryAreaIter<&'a mut EFIMemoryDesc> {
434425
type Item = &'a mut EFIMemoryDesc;
435426
fn next(&mut self) -> Option<&'a mut EFIMemoryDesc> {
436427
if self.current_area > self.last_area {

0 commit comments

Comments
 (0)