Print out percentage of space used for bios tables during boot.
authorKevin O'Connor <kevin@koconnor.net>
Sat, 30 Aug 2008 01:21:09 +0000 (21:21 -0400)
committerKevin O'Connor <kevin@koconnor.net>
Sat, 30 Aug 2008 01:21:09 +0000 (21:21 -0400)
src/memmap.c

index 6bbf76e5eb0f1538efe8be21d764a309d0eb861c..e02745f91f87c0b7d829aa5cd5c2197c701edc5f 100644 (file)
@@ -126,15 +126,15 @@ add_e820(u64 start, u64 size, u32 type)
     //dump_map();
 }
 
+// Symbols defined in romlayout.S
+extern char freespace2_start, freespace2_end;
+
 u32 bios_table_cur_addr, bios_table_end_addr;
 
 // Prep for memmap stuff - init bios table locations.
 void
 memmap_setup()
 {
-    // Symbols defined in romlayout.S
-    extern char freespace2_start, freespace2_end;
-
     bios_table_cur_addr = (u32)&freespace2_start;
     bios_table_end_addr = (u32)&freespace2_end;
     dprintf(1, "bios_table_addr: 0x%08x end=0x%08x\n",
@@ -157,7 +157,10 @@ memmap_finalize()
     SET_EBDA(e820_count, e820_count);
     bios_table_cur_addr += msize;
 
-    dprintf(1, "bios_table_cur_addr: 0x%08x\n", bios_table_cur_addr);
+    dprintf(1, "final bios_table_addr: 0x%08x (used %d%%)\n"
+            , bios_table_cur_addr
+            , (100 * (bios_table_cur_addr - (u32)&freespace2_start)
+               / ((u32)&freespace2_end - (u32)&freespace2_start)));
     if (bios_table_cur_addr > bios_table_end_addr)
         BX_PANIC("bios_table_end_addr overflow!\n");
 }