[coreboot] New patch to review for coreboot: ae3731f cbfstool: Add internal cbfs_find_file()
Stefan Reinauer (stefan.reinauer@coreboot.org)
gerrit at coreboot.org
Wed Mar 13 01:09:17 CET 2013
Stefan Reinauer (stefan.reinauer at coreboot.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2686
-gerrit
commit ae3731f6aea3404c48c3d26885b52f30431fa2e2
Author: Aaron Durbin <adurbin at chromium.org>
Date: Fri Dec 14 17:14:15 2012 -0600
cbfstool: Add internal cbfs_find_file()
Future work will require the ability to locate a named file.
Add cbfs_find_file() to find the named file and return a struct
cbfs_file.
Change-Id: I3998c5e76c75de5672bef3f5e04a098e5e1778ed
Signed-off-by: Aaron Durbin <adurbin at chromium.org>
---
util/cbfstool/common.c | 21 +++++++++++++++++++++
util/cbfstool/common.h | 2 ++
2 files changed, 23 insertions(+)
diff --git a/util/cbfstool/common.c b/util/cbfstool/common.c
index 3c8dca5..0517d9a 100644
--- a/util/cbfstool/common.c
+++ b/util/cbfstool/common.c
@@ -870,3 +870,24 @@ uint32_t cbfs_find_location(const char *romfile, uint32_t filesize,
free(rom);
return ret;
}
+
+struct cbfs_file *cbfs_find_file(const char *name)
+{
+ uint32_t current = phys_start;
+ while (current < phys_end) {
+ if (!cbfs_file_header(current)) {
+ current += align;
+ continue;
+ }
+ struct cbfs_file *thisfile =
+ (struct cbfs_file *)phys_to_virt(current);
+ uint32_t length = ntohl(thisfile->len);
+ char *fname = (char *)(phys_to_virt(current) + sizeof(struct cbfs_file));
+ if (!strcmp(fname, name))
+ return thisfile;
+ current =
+ ALIGN(current + ntohl(thisfile->len) +
+ ntohl(thisfile->offset), align);
+ }
+ return NULL;
+}
diff --git a/util/cbfstool/common.h b/util/cbfstool/common.h
index e197143..2a18d9c 100644
--- a/util/cbfstool/common.h
+++ b/util/cbfstool/common.h
@@ -130,4 +130,6 @@ void print_supported_filetypes(void);
#define ARRAY_SIZE(a) (int)(sizeof(a) / sizeof((a)[0]))
+struct cbfs_file;
+struct cbfs_file *cbfs_find_file(const char *name);
#endif
More information about the coreboot
mailing list