:: commit b616e8014acf1bdc4419917d9b96878654b6c407

mintsuki <mintsuki@protonmail.com> — 2020-06-05 17:09

parents: e91cb82222

Sort memmap entries

diff --git a/qloader2.bin b/qloader2.bin
index 8f63b139..01be75ed 100644
Binary files a/qloader2.bin and b/qloader2.bin differ
diff --git a/src/lib/memmap.c b/src/lib/memmap.c
index b3d9de24..c77d39c6 100644
--- a/src/lib/memmap.c
+++ b/src/lib/memmap.c
@@ -59,6 +59,22 @@ static void memmap_align_free_entries(void) {
 
 struct e820_entry_t *get_memmap(size_t *entries) {
     memmap_align_free_entries();
+
+    // Sort the entries
+    for (size_t p = 0; p < memmap_entries - 1; p++) {
+        uint64_t min = memmap[p].base;
+        size_t min_index = p;
+        for (size_t i = p; i < memmap_entries; i++) {
+            if (memmap[i].base < min) {
+                min = memmap[i].base;
+                min_index = i;
+            }
+        }
+        struct e820_entry_t min_e = memmap[min_index];
+        memmap[min_index] = memmap[p];
+        memmap[p] = min_e;
+    }
+
     *entries = memmap_entries;
     return memmap;
 }
tab: 248 wrap: offon