diff options
author | Stefan Reinauer <reinauer@chromium.org> | 2012-10-29 16:52:36 -0700 |
---|---|---|
committer | Stefan Reinauer <stefan.reinauer@coreboot.org> | 2012-11-12 18:38:03 +0100 |
commit | 632175802e3d6c3265aa6f511a5aa400d00953d1 (patch) | |
tree | c4d8656a9293eec0b8bd87ee4a541c346ca668d6 /util/cbfstool/cbfs-mkstage.c | |
parent | e5a0a5d6df99eb78fbf6469eff35e6d415ec2d54 (diff) |
cbfstool: Rework to use getopt style parameters
- Adding more and more optional and non-optional parameters
bloated cbfstool and made the code hard to read with a lot
of parsing in the actual cbfs handling functions. This change
switches over to use getopt style options for everything but
command and cbfs file name.
- This allows us to simplify the coreboot Makefiles a bit
- Also, add guards to include files
- Fix some 80+ character lines
- Add more detailed error reporting
- Free memory we're allocating
Signed-off-by: Stefan Reinauer <reinauer@google.com>
Change-Id: Ia9137942deb8d26bbb30068e6de72466afe9b0a7
Reviewed-on: http://review.coreboot.org/1800
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Diffstat (limited to 'util/cbfstool/cbfs-mkstage.c')
-rw-r--r-- | util/cbfstool/cbfs-mkstage.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/util/cbfstool/cbfs-mkstage.c b/util/cbfstool/cbfs-mkstage.c index 6b80a37dc5..55c81c6ebe 100644 --- a/util/cbfstool/cbfs-mkstage.c +++ b/util/cbfstool/cbfs-mkstage.c @@ -31,7 +31,7 @@ #include "common.h" #include "cbfs.h" -unsigned int idemp(unsigned int x) +static unsigned int idemp(unsigned int x) { return x; } @@ -123,7 +123,8 @@ int parse_elf_to_stage(unsigned char *input, unsigned char **output, } if (data_end <= data_start) { - fprintf(stderr, "E: data ends before it starts. Make sure the ELF file is correct and resides in ROM space.\n"); + fprintf(stderr, "E: data ends before it starts. Make sure the " + "ELF file is correct and resides in ROM space.\n"); exit(1); } @@ -175,6 +176,8 @@ int parse_elf_to_stage(unsigned char *input, unsigned char **output, compress(buffer, data_end - data_start, (char *)(out + sizeof(struct cbfs_stage)), (int *)&stage->len); + free(buffer); + *output = out; if (*location) |