summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArd Biesheuvel <ardb@kernel.org>2023-09-28 09:58:55 +0000
committerArd Biesheuvel <ardb@kernel.org>2023-09-28 09:58:55 +0000
commit02137f1c9f79136b89fbff77f5da1f1a9d36ed3d (patch)
tree9de0c675ccd65a0a61d5699328d7420723580d18
parent7166233de8a200bea27686a3aaefc53cfea6f99c (diff)
downloadefilite-02137f1c9f79136b89fbff77f5da1f1a9d36ed3d.tar.gz
Drop use of btreemap::extract_if
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
-rw-r--r--src/efi/memmap.rs16
-rw-r--r--src/main.rs3
2 files changed, 9 insertions, 10 deletions
diff --git a/src/efi/memmap.rs b/src/efi/memmap.rs
index 6d16ca1..a82d8b4 100644
--- a/src/efi/memmap.rs
+++ b/src/efi/memmap.rs
@@ -40,13 +40,15 @@ fn declare_region(phys: u64, num_pages: u64, _type: MemoryType, attr: u64) {
// page count to the new entry.
let num_pages = {
let mut l = num_pages;
- if let Some(next) = mm
- .extract_if(|p, d|
- *p == phys + (num_pages << EFI_PAGE_SHIFT) &&
- d.r#type == _type && d.attribute == attr)
- .nth(0) {
- l += next.1.number_of_pages;
- }
+ mm.retain(|p, d| {
+ if *p == phys + (num_pages << EFI_PAGE_SHIFT) &&
+ d.r#type == _type && d.attribute == attr {
+ l += d.number_of_pages;
+ false
+ } else {
+ true
+ }
+ });
l
};
diff --git a/src/main.rs b/src/main.rs
index 4eb16a3..2f2de38 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -5,9 +5,6 @@
#![no_std]
#![no_main]
-// for the EFI memory map
-#![feature(btree_extract_if)]
-
macro_rules! align_down {
($value:expr, $alignment:expr) => {
($value) & !($alignment - 1)