From 1bedcc092a4b3b98f690e7784c89bd2baf8c5918 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Sun, 26 Apr 2009 21:25:53 -0400 Subject: [PATCH] Minor - simplify add_e820() function. --- src/memmap.c | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/src/memmap.c b/src/memmap.c index 5b7eba5..49f129b 100644 --- a/src/memmap.c +++ b/src/memmap.c @@ -72,26 +72,20 @@ add_e820(u64 start, u64 size, u32 type) continue; // Found position - check if an existing item needs to be split. if (start > e->start) { - e->size = start - e->start; - i++; - if (end < e_end) - // Need to split existing item - insert_e820(i, end, e_end - end, e->type); if (type == e->type) { // Same type - merge them. size += start - e->start; start = e->start; - i--; - remove_e820(i); + } else { + // Split existing item. + e->size = start - e->start; + i++; + if (e_end > end) + insert_e820(i, end, e_end - end, e->type); } } break; } - // Insert new item. - if (type != E820_HOLE) { - insert_e820(i, start, size, type); - i++; - } // Remove/adjust existing items that are overlapping. while (istart = end; - e->size = e_end - e->start; + e->size = e_end - end; if (type == e->type) { // Same type - merge them. - (e-1)->size += e->size; + size += e->size; remove_e820(i); } break; } + // Insert new item. + if (type != E820_HOLE) + insert_e820(i, start, size, type); //dump_map(); } -- 2.39.5