cbfstool: add decompression wrappers

... and document the interface.

Change-Id: I86a071a61fd6c1ef842f8ffe51f12f0cefdaf2fe
Signed-off-by: Patrick Georgi <patrick@georgi-clan.de>
Reviewed-on: http://review.coreboot.org/11362
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Tested-by: build bot (Jenkins)
This commit is contained in:
Patrick Georgi
2015-08-26 12:53:41 +02:00
committed by Patrick Georgi
parent a71c83fa5c
commit 61c822900e
2 changed files with 42 additions and 1 deletions

View File

@@ -31,6 +31,10 @@ static int lzma_compress(char *in, int in_len, char *out, int *out_len)
return do_lzma_compress(in, in_len, out, out_len);
}
static int lzma_decompress(char *in, int in_len, char *out, unused int out_len)
{
return do_lzma_uncompress(out, out_len, in, in_len);
}
static int none_compress(char *in, int in_len, char *out, int *out_len)
{
memcpy(out, in, in_len);
@@ -38,6 +42,12 @@ static int none_compress(char *in, int in_len, char *out, int *out_len)
return 0;
}
static int none_decompress(char *in, int in_len, char *out, unused int out_len)
{
memcpy(out, in, in_len);
return 0;
}
comp_func_ptr compression_function(enum comp_algo algo)
{
comp_func_ptr compress;
@@ -54,3 +64,20 @@ comp_func_ptr compression_function(enum comp_algo algo)
}
return compress;
}
decomp_func_ptr decompression_function(enum comp_algo algo)
{
decomp_func_ptr decompress;
switch (algo) {
case CBFS_COMPRESS_NONE:
decompress = none_decompress;
break;
case CBFS_COMPRESS_LZMA:
decompress = lzma_decompress;
break;
default:
ERROR("Unknown compression algorithm %d!\n", algo);
return NULL;
}
return decompress;
}