aboutsummaryrefslogtreecommitdiff
path: root/util/cbfstool/cbfs_image.c
diff options
context:
space:
mode:
authorPatrick Georgi <pgeorgi@google.com>2015-08-11 14:54:24 +0200
committerPatrick Georgi <pgeorgi@google.com>2015-08-13 16:08:15 +0200
commite60b55a570a3bb9bf75bd344ef41460454abaef2 (patch)
treee791c4d59f88b997ea4c358d1165b6f6a9ae48e3 /util/cbfstool/cbfs_image.c
parent4e54bf93345332fc866b6b8b798a99248edb0698 (diff)
cbfstool: allow passing a precalculated header size into cbfs_add_entry()
This is in preparation of creating the cbfs_file header much earlier in the process. For now, size is enough because lots of things need to move before it makes sense to deal with cbfs_file at a higher level. Change-Id: I47589247c3011cb828170eaa10ef4a1e0f85ab84 Signed-off-by: Patrick Georgi <pgeorgi@google.com> Reviewed-on: http://review.coreboot.org/11213 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'util/cbfstool/cbfs_image.c')
-rw-r--r--util/cbfstool/cbfs_image.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/util/cbfstool/cbfs_image.c b/util/cbfstool/cbfs_image.c
index e095187979..e78ee40d74 100644
--- a/util/cbfstool/cbfs_image.c
+++ b/util/cbfstool/cbfs_image.c
@@ -533,7 +533,8 @@ static int cbfs_add_entry_at(struct cbfs_image *image,
}
int cbfs_add_entry(struct cbfs_image *image, struct buffer *buffer,
- const char *name, uint32_t type, uint32_t content_offset)
+ const char *name, uint32_t type, uint32_t content_offset,
+ uint32_t header_size)
{
assert(image);
assert(buffer);
@@ -544,9 +545,10 @@ int cbfs_add_entry(struct cbfs_image *image, struct buffer *buffer,
uint32_t entry_type;
uint32_t addr, addr_next;
struct cbfs_file *entry, *next;
- uint32_t header_size, need_size, new_size;
+ uint32_t need_size, new_size;
- header_size = cbfs_calculate_file_header_size(name);
+ if (header_size == 0)
+ header_size = cbfs_calculate_file_header_size(name);
need_size = header_size + buffer->size;
DEBUG("cbfs_add_entry('%s'@0x%x) => need_size = %u+%zu=%u\n",