diff options
author | Ronald G. Minnich <rminnich@google.com> | 2014-02-04 17:35:44 -0800 |
---|---|---|
committer | Ronald G. Minnich <rminnich@gmail.com> | 2014-02-05 06:50:41 +0100 |
commit | 3fcde22a30fc26fa299d4e26a9cc0bde7eb0356d (patch) | |
tree | 33a990efdc3ec4dbda3003922620a89e2ed6c280 /util/cbfstool/fit.c | |
parent | c625d0983c6427277c3f6ebd9911def76d6351c9 (diff) |
Add an xdr function for the cbfs_file header
And use it in fit.c and remove one more use of htonl.
Change-Id: Ibf18dcc0a7f08d75c2374115de0db7a4bf64ec1e
Signed-off-by: Ronald G. Minnich <rminnich@google.com>
Reviewed-on: http://review.coreboot.org/5120
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Diffstat (limited to 'util/cbfstool/fit.c')
-rw-r--r-- | util/cbfstool/fit.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/util/cbfstool/fit.c b/util/cbfstool/fit.c index a368dad567..84f0bfff25 100644 --- a/util/cbfstool/fit.c +++ b/util/cbfstool/fit.c @@ -188,17 +188,28 @@ static void add_microcodde_entries(struct cbfs_image *image, } } +static int fit_header(void *ptr, uint32_t *current_offset, uint32_t *file_length) +{ + struct buffer buf; + struct cbfs_file header; + buf.data = ptr; + buf.size = sizeof(header); + cbfs_file_get_header(&buf, &header); + *current_offset = header.offset; + *file_length = header.len; + return 0; +} + static int parse_microcode_blob(struct cbfs_image *image, struct cbfs_file *mcode_file, struct microcode_entry *mcus, int *total_mcus) { int num_mcus; - int current_offset; - int file_length; + uint32_t current_offset; + uint32_t file_length; current_offset = (int)((char *)mcode_file - image->buffer.data); - current_offset += ntohl(mcode_file->offset); - file_length = ntohl(mcode_file->len); + fit_header(mcode_file, ¤t_offset, &file_length); num_mcus = 0; while (file_length > sizeof(struct microcode_header)) |