summaryrefslogtreecommitdiffstats
path: root/util/cbfstool/common.h
diff options
context:
space:
mode:
authorPatrick Georgi <pgeorgi@chromium.org>2017-01-11 15:26:58 +0100
committerPatrick Georgi <pgeorgi@google.com>2017-01-12 21:40:25 +0100
commitc88d16baaf3e88029b40d43eb254e90613b95187 (patch)
treeb1b4e8fc15ec880db97d42cfbfb7adcd85d445ff /util/cbfstool/common.h
parent8474e7d7e83e92f3d7118311e2e35dc86dcc3ef5 (diff)
downloadcoreboot-c88d16baaf3e88029b40d43eb254e90613b95187.tar.gz
coreboot-c88d16baaf3e88029b40d43eb254e90613b95187.tar.bz2
coreboot-c88d16baaf3e88029b40d43eb254e90613b95187.zip
util/cbfstool: Add cbfs-compression-tool
cbfs-compression-tool provides a way to benchmark the compression algorithms as used by cbfstool (and coreboot) and allows to pre-compress data for later consumption by cbfstool (once it supports the format). For an impression, the benchmark's results on my machine: measuring 'none' compressing 10485760 bytes to 10485760 took 0 seconds measuring 'LZMA' compressing 10485760 bytes to 1736 took 2 seconds measuring 'LZ4' compressing 10485760 bytes to 41880 took 0 seconds And a possible use for external compression, parallel and non-parallel (60MB in 53 files compressed to 650KB on a machine with 40 threads): $ time (ls -1 *.* |xargs -n 1 -P $(nproc) -I '{}' cbfs-compression-tool compress '{}' out/'{}' LZMA) real 0m0.786s user 0m11.440s sys 0m0.044s $ time (ls -1 *.* |xargs -n 1 -P 1 -I '{}' cbfs-compression-tool compress '{}' out/'{}' LZMA) real 0m10.444s user 0m10.280s sys 0m0.064s Change-Id: I40be087e85d09a895b1ed277270350ab65a4d6d4 Signed-off-by: Patrick Georgi <pgeorgi@chromium.org> Reviewed-on: https://review.coreboot.org/18099 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martinroth@google.com>
Diffstat (limited to 'util/cbfstool/common.h')
-rw-r--r--util/cbfstool/common.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/util/cbfstool/common.h b/util/cbfstool/common.h
index d4b70214287a..85dfdeb5894a 100644
--- a/util/cbfstool/common.h
+++ b/util/cbfstool/common.h
@@ -166,6 +166,18 @@ enum comp_algo {
CBFS_COMPRESS_LZ4 = 2,
};
+struct typedesc_t {
+ uint32_t type;
+ const char *name;
+};
+
+static const struct typedesc_t types_cbfs_compression[] = {
+ {CBFS_COMPRESS_NONE, "none"},
+ {CBFS_COMPRESS_LZMA, "LZMA"},
+ {CBFS_COMPRESS_LZ4, "LZ4"},
+ {0, NULL},
+};
+
comp_func_ptr compression_function(enum comp_algo algo);
decomp_func_ptr decompression_function(enum comp_algo algo);