summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Neuschäfer <j.neuschaefer@gmx.net>2016-03-10 04:32:46 +0100
committerMartin Roth <martinroth@google.com>2016-03-11 18:41:41 +0100
commit1aca8b898da359fbde2976ba0d031de8be6e857c (patch)
tree92663b5e2c30addf0a2de895d92f03c931333597
parent9c3ff1ba5209220cd41bee16015ae388ac6fce39 (diff)
coreinfo/cbfs: Don't assume that the free space is at the end
On emulation/qemu-i440fx, I get this layout: Name Offset Type Size cbfs master header 0x0 cbfs header 32 fallback/romstage 0x80 stage 14284 fallback/ramstage 0x38c0 stage 42382 fallback/payload 0xdec0 payload 1165052 config 0x12a600 raw 352 revision 0x12a7c0 raw 572 cmos_layout.bin 0x12aa40 cmos_layout 772 fallback/dsdt.aml 0x12ad80 raw 4000 img/coreinfo 0x12bd80 payload 1165052 (empty) 0x2484c0 null 1799192 bootblock 0x3ff900 bootblock 1456 ... which coreinfo displays in the following way, without this patch: cbfs master header fallback/romstage fallback/ramstage fallback/payload config revision cmos_layout.bin fallback/dsdt.aml img/coreinfo <free space> Change-Id: I21eb1dfbe52921843d28683c9396e9b27caa4fbf Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net> Reviewed-on: https://review.coreboot.org/14024 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Martin Roth <martinroth@google.com>
-rw-r--r--payloads/coreinfo/cbfs_module.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/payloads/coreinfo/cbfs_module.c b/payloads/coreinfo/cbfs_module.c
index a5ddc53171..1a59d01d28 100644
--- a/payloads/coreinfo/cbfs_module.c
+++ b/payloads/coreinfo/cbfs_module.c
@@ -134,10 +134,15 @@ static int cbfs_module_redraw(WINDOW * win)
wattrset(win, COLOR_PAIR(3) | A_BOLD);
else
wattrset(win, COLOR_PAIR(2));
- if (i == filecount - 1)
- mvwprintw(win, 2 + i, 1, "<free space>");
- else
+
+ if (strlen(filenames[i]) == 0) {
+ if (findfile(filenames[i])->type == COMPONENT_NULL)
+ mvwprintw(win, 2 + i, 1, "<free space>");
+ else
+ mvwprintw(win, 2 + i, 1, "<unnamed>");
+ } else {
mvwprintw(win, 2 + i, 1, "%.25s", filenames[i]);
+ }
}
f = findfile(filenames[selected]);