]> xenbits.xensource.com Git - people/andrewcoop/seabios.git/commitdiff
e820: Introduce e820_remove() and avoid exporting E820_HOLE
authorKevin O'Connor <kevin@koconnor.net>
Tue, 29 Sep 2015 12:53:38 +0000 (08:53 -0400)
committerKevin O'Connor <kevin@koconnor.net>
Thu, 15 Oct 2015 14:52:13 +0000 (10:52 -0400)
The E820_HOLE definition is used internally in the e820 manipulation
code to remove entries from the e820 map.  Introduce the e820_remove()
function so that the E820_HOLE definition does not need to be exported
from the memmap.c code.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
src/malloc.c
src/memmap.c
src/memmap.h

index c4cb17149e8e642e95c6bc1dd13523a418af93b8..5c05a8aefc8e6036437f411745cef907905a92e6 100644 (file)
@@ -396,7 +396,7 @@ malloc_preinit(void)
     dprintf(3, "malloc preinit\n");
 
     // Don't declare any memory between 0xa0000 and 0x100000
-    add_e820(BUILD_LOWRAM_END, BUILD_BIOS_ADDR-BUILD_LOWRAM_END, E820_HOLE);
+    e820_remove(BUILD_LOWRAM_END, BUILD_BIOS_ADDR-BUILD_LOWRAM_END);
 
     // Mark known areas as reserved.
     add_e820(BUILD_BIOS_ADDR, BUILD_BIOS_SIZE, E820_RESERVED);
index e03f8d0bf0cd4b3bb4dc110036edf9fb68b1a512..8c0c38d72b5a6bbfa91b2a9f437da2ba20c6efb6 100644 (file)
@@ -54,7 +54,6 @@ e820_type_name(u32 type)
     case E820_ACPI:     return "ACPI";
     case E820_NVS:      return "NVS";
     case E820_UNUSABLE: return "UNUSABLE";
-    case E820_HOLE:     return "HOLE";
     default:            return "UNKNOWN";
     }
 }
@@ -73,6 +72,8 @@ dump_map(void)
     }
 }
 
+#define E820_HOLE         ((u32)-1) // Used internally to remove entries
+
 // Add a new entry to the list.  This scans for overlaps and keeps the
 // list sorted.
 void
@@ -136,6 +137,13 @@ add_e820(u64 start, u64 size, u32 type)
     //dump_map();
 }
 
+// Remove any definitions in a memory range (make a memory hole).
+void
+e820_remove(u64 start, u64 size)
+{
+    add_e820(start, size, E820_HOLE);
+}
+
 // Report on final memory locations.
 void
 memmap_prepboot(void)
index 7bda56e2b87dfa782b563048f1a59afafb89babe..e7d94ee651e6613caa8f8e28cbbbf03a2f764b3b 100644 (file)
@@ -8,7 +8,6 @@
 #define E820_ACPI         3
 #define E820_NVS          4
 #define E820_UNUSABLE     5
-#define E820_HOLE         ((u32)-1) // Useful for removing entries
 
 struct e820entry {
     u64 start;
@@ -17,6 +16,7 @@ struct e820entry {
 };
 
 void add_e820(u64 start, u64 size, u32 type);
+void e820_remove(u64 start, u64 size);
 void memmap_prepboot(void);
 
 // A typical OS page size