diff options
author | Stefan Reinauer <reinauer@chromium.org> | 2011-10-21 14:24:57 -0700 |
---|---|---|
committer | Stefan Reinauer <stefan.reinauer@coreboot.org> | 2011-10-24 20:29:29 +0200 |
commit | a1e4824f73602a411826b27160a8818049ce0f97 (patch) | |
tree | 777dcf31f4eddaaf0c68078814bd27fb63f03524 /util/cbfstool/common.c | |
parent | 3c976791b06c75e8983266b3551f133d89924376 (diff) |
Various fixes to cbfstool.
- add ntohll and htonll (as coreboot parses 64bit fields now)
- use the same byte swapping code across platforms
- detect endianess early
- fix lots of warnings
- Don't override CFLAGS in Makefile
Change-Id: Iaea02ff7a31ab6a95fd47858d0efd9af764a3e5f
Signed-off-by: Stefan Reinauer <reinauer@google.com>
Reviewed-on: http://review.coreboot.org/313
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'util/cbfstool/common.c')
-rw-r--r-- | util/cbfstool/common.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/util/cbfstool/common.c b/util/cbfstool/common.c index cbf0757aaa..df744217d4 100644 --- a/util/cbfstool/common.c +++ b/util/cbfstool/common.c @@ -26,7 +26,7 @@ #include "cbfs.h" #include "elf.h" -#define dprintf +#define dprintf(x...) uint32_t getfilesize(const char *filename) { @@ -118,7 +118,7 @@ int cbfs_file_header(uint32_t physaddr) struct cbfs_file *cbfs_create_empty_file(uint32_t physaddr, uint32_t size) { struct cbfs_file *nextfile = (struct cbfs_file *)phys_to_virt(physaddr); - strncpy(nextfile->magic, "LARCHIVE", 8); + strncpy((char *)(nextfile->magic), "LARCHIVE", 8); nextfile->len = htonl(size); nextfile->type = htonl(0xffffffff); nextfile->checksum = 0; // FIXME? @@ -231,6 +231,7 @@ int extract_file_from_cbfs(const char *filename, const char *payloadname, const uint32_t length = ntohl(thisfile->len); // Locate the file name char *fname = (char *)(phys_to_virt(current) + sizeof(struct cbfs_file)); + // It's not the file we are looking for.. if (strcmp(fname, payloadname) != 0) { @@ -267,7 +268,8 @@ int extract_file_from_cbfs(const char *filename, const char *payloadname, const // We'll only dump one file. return 0; } - + printf("File %s not found.\n", payloadname); + return 1; } @@ -332,8 +334,7 @@ int add_file_to_cbfs(void *content, uint32_t contentsize, uint32_t location) thisfile->len = htonl(location - current - ntohl(thisfile->offset)); - struct cbfs_file *nextfile = - cbfs_create_empty_file(location, + cbfs_create_empty_file(location, length - (location - current)); @@ -376,7 +377,7 @@ void *create_cbfs_file(const char *filename, void *data, uint32_t * datasize, } memset(newdata, 0xff, *datasize + headersize); struct cbfs_file *nextfile = (struct cbfs_file *)newdata; - strncpy(nextfile->magic, "LARCHIVE", 8); + strncpy((char *)(nextfile->magic), "LARCHIVE", 8); nextfile->len = htonl(*datasize); nextfile->type = htonl(type); nextfile->checksum = 0; // FIXME? @@ -421,8 +422,7 @@ int create_cbfs_image(const char *romfile, uint32_t _romsize, recalculate_rom_geometry(romarea); - struct cbfs_file *one_empty_file = - cbfs_create_empty_file((0 - romsize) & 0xffffffff, + cbfs_create_empty_file((0 - romsize) & 0xffffffff, romsize - bootblocksize - sizeof(struct cbfs_header) - sizeof(struct cbfs_file) - 16); @@ -439,7 +439,7 @@ static int in_segment(int addr, int size, int gran) uint32_t cbfs_find_location(const char *romfile, uint32_t filesize, const char *filename, uint32_t alignment) { - void *rom = loadrom(romfile); + loadrom(romfile); int filename_size = strlen(filename); int headersize = |