diff options
author | Nick Terrell <terrelln@fb.com> | 2020-07-30 12:08:35 -0700 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2020-07-31 11:49:08 +0200 |
commit | 4963bb2b89884bbdb7e33e6a09c159551e9627aa (patch) | |
tree | 503649537075d61fddbfec3f73736d57e5c33a2e /include/linux/decompress | |
parent | 6d25a633ea68a103c7293d16eb69a7d4689075ad (diff) | |
download | linux-4963bb2b89884bbdb7e33e6a09c159551e9627aa.tar.gz linux-4963bb2b89884bbdb7e33e6a09c159551e9627aa.tar.bz2 linux-4963bb2b89884bbdb7e33e6a09c159551e9627aa.zip |
lib: Add zstd support to decompress
- Add unzstd() and the zstd decompress interface.
- Add zstd support to decompress_method().
The decompress_method() and unzstd() functions are used to decompress
the initramfs and the initrd. The __decompress() function is used in
the preboot environment to decompress a zstd compressed kernel.
The zstd decompression function allows the input and output buffers to
overlap because that is used by x86 kernel decompression.
Signed-off-by: Nick Terrell <terrelln@fb.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Tested-by: Sedat Dilek <sedat.dilek@gmail.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20200730190841.2071656-3-nickrterrell@gmail.com
Diffstat (limited to 'include/linux/decompress')
-rw-r--r-- | include/linux/decompress/unzstd.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/linux/decompress/unzstd.h b/include/linux/decompress/unzstd.h new file mode 100644 index 000000000000..56d539ae880f --- /dev/null +++ b/include/linux/decompress/unzstd.h @@ -0,0 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef LINUX_DECOMPRESS_UNZSTD_H +#define LINUX_DECOMPRESS_UNZSTD_H + +int unzstd(unsigned char *inbuf, long len, + long (*fill)(void*, unsigned long), + long (*flush)(void*, unsigned long), + unsigned char *output, + long *pos, + void (*error_fn)(char *x)); +#endif |