diff options
author | Jia Tan <jiat0218@gmail.com> | 2024-01-22 23:33:39 +0800 |
---|---|---|
committer | Jia Tan <jiat0218@gmail.com> | 2024-01-23 23:05:41 +0800 |
commit | 440a2eccb082dc13400c09e22308a58fef85146c (patch) | |
tree | 9fad0290823c312e34e85911cf4f8677325480db /src/liblzma/common | |
parent | Docs: Update .xz file format specification to 1.2.0. (diff) | |
download | xz-440a2eccb082dc13400c09e22308a58fef85146c.tar.xz |
liblzma: Add RISC-V BCJ filter.
The new Filter ID is 0x0B.
Thanks to Chien Wong <m@xv97.com> for the initial version of the Filter,
the xz CLI updates, and the Autotools build system modifications.
Thanks to Igor Pavlov for his many contributions to the design of
the filter.
Diffstat (limited to 'src/liblzma/common')
-rw-r--r-- | src/liblzma/common/filter_common.c | 9 | ||||
-rw-r--r-- | src/liblzma/common/filter_decoder.c | 8 | ||||
-rw-r--r-- | src/liblzma/common/filter_encoder.c | 10 |
3 files changed, 27 insertions, 0 deletions
diff --git a/src/liblzma/common/filter_common.c b/src/liblzma/common/filter_common.c index fa0927cf..bff68b61 100644 --- a/src/liblzma/common/filter_common.c +++ b/src/liblzma/common/filter_common.c @@ -122,6 +122,15 @@ static const struct { .changes_size = false, }, #endif +#if defined(HAVE_ENCODER_RISCV) || defined(HAVE_DECODER_RISCV) + { + .id = LZMA_FILTER_RISCV, + .options_size = sizeof(lzma_options_bcj), + .non_last_ok = true, + .last_ok = false, + .changes_size = false, + }, +#endif #if defined(HAVE_ENCODER_DELTA) || defined(HAVE_DECODER_DELTA) { .id = LZMA_FILTER_DELTA, diff --git a/src/liblzma/common/filter_decoder.c b/src/liblzma/common/filter_decoder.c index fa53f5bd..fedd7978 100644 --- a/src/liblzma/common/filter_decoder.c +++ b/src/liblzma/common/filter_decoder.c @@ -121,6 +121,14 @@ static const lzma_filter_decoder decoders[] = { .props_decode = &lzma_simple_props_decode, }, #endif +#ifdef HAVE_DECODER_RISCV + { + .id = LZMA_FILTER_RISCV, + .init = &lzma_simple_riscv_decoder_init, + .memusage = NULL, + .props_decode = &lzma_simple_props_decode, + }, +#endif #ifdef HAVE_DECODER_DELTA { .id = LZMA_FILTER_DELTA, diff --git a/src/liblzma/common/filter_encoder.c b/src/liblzma/common/filter_encoder.c index 821a84f0..45a215aa 100644 --- a/src/liblzma/common/filter_encoder.c +++ b/src/liblzma/common/filter_encoder.c @@ -159,6 +159,16 @@ static const lzma_filter_encoder encoders[] = { .props_encode = &lzma_simple_props_encode, }, #endif +#ifdef HAVE_ENCODER_RISCV + { + .id = LZMA_FILTER_RISCV, + .init = &lzma_simple_riscv_encoder_init, + .memusage = NULL, + .block_size = NULL, + .props_size_get = &lzma_simple_props_size, + .props_encode = &lzma_simple_props_encode, + }, +#endif #ifdef HAVE_ENCODER_DELTA { .id = LZMA_FILTER_DELTA, |