Spaces:
Build error
Build error
/* SPDX-License-Identifier: 0BSD */ | |
/* | |
* Private includes and definitions | |
* | |
* Author: Lasse Collin <lasse.collin@tukaani.org> | |
*/ | |
/* XZ_PREBOOT may be defined only via decompress_unxz.c. */ | |
/* | |
* For userspace builds, use a separate header to define the required | |
* macros and functions. This makes it easier to adapt the code into | |
* different environments and avoids clutter in the Linux kernel tree. | |
*/ | |
/* If no specific decoding mode is requested, enable support for all modes. */ | |
&& !defined(XZ_DEC_DYNALLOC) | |
/* | |
* The DEC_IS_foo(mode) macros are used in "if" statements. If only some | |
* of the supported modes are enabled, these macros will evaluate to true or | |
* false at compile time and thus allow the compiler to omit unneeded code. | |
*/ | |
/* | |
* If any of the BCJ filter decoders are wanted, define XZ_DEC_BCJ. | |
* XZ_DEC_BCJ is used to enable generic support for BCJ decoders. | |
*/ | |
|| defined(XZ_DEC_IA64) \ | |
|| defined(XZ_DEC_ARM) || defined(XZ_DEC_ARMTHUMB) \ | |
|| defined(XZ_DEC_SPARC) || defined(XZ_DEC_ARM64) \ | |
|| defined(XZ_DEC_RISCV) | |
/* | |
* Allocate memory for LZMA2 decoder. xz_dec_lzma2_reset() must be used | |
* before calling xz_dec_lzma2_run(). | |
*/ | |
XZ_EXTERN struct xz_dec_lzma2 *xz_dec_lzma2_create(enum xz_mode mode, | |
uint32_t dict_max); | |
/* | |
* Decode the LZMA2 properties (one byte) and reset the decoder. Return | |
* XZ_OK on success, XZ_MEMLIMIT_ERROR if the preallocated dictionary is not | |
* big enough, and XZ_OPTIONS_ERROR if props indicates something that this | |
* decoder doesn't support. | |
*/ | |
XZ_EXTERN enum xz_ret xz_dec_lzma2_reset(struct xz_dec_lzma2 *s, | |
uint8_t props); | |
/* Decode raw LZMA2 stream from b->in to b->out. */ | |
XZ_EXTERN enum xz_ret xz_dec_lzma2_run(struct xz_dec_lzma2 *s, | |
struct xz_buf *b); | |
/* Free the memory allocated for the LZMA2 decoder. */ | |
XZ_EXTERN void xz_dec_lzma2_end(struct xz_dec_lzma2 *s); | |
/* | |
* Allocate memory for BCJ decoders. xz_dec_bcj_reset() must be used before | |
* calling xz_dec_bcj_run(). | |
*/ | |
XZ_EXTERN struct xz_dec_bcj *xz_dec_bcj_create(bool single_call); | |
/* | |
* Decode the Filter ID of a BCJ filter. This implementation doesn't | |
* support custom start offsets, so no decoding of Filter Properties | |
* is needed. Returns XZ_OK if the given Filter ID is supported. | |
* Otherwise XZ_OPTIONS_ERROR is returned. | |
*/ | |
XZ_EXTERN enum xz_ret xz_dec_bcj_reset(struct xz_dec_bcj *s, uint8_t id); | |
/* | |
* Decode raw BCJ + LZMA2 stream. This must be used only if there actually is | |
* a BCJ filter in the chain. If the chain has only LZMA2, xz_dec_lzma2_run() | |
* must be called directly. | |
*/ | |
XZ_EXTERN enum xz_ret xz_dec_bcj_run(struct xz_dec_bcj *s, | |
struct xz_dec_lzma2 *lzma2, | |
struct xz_buf *b); | |
/* Free the memory allocated for the BCJ filters. */ | |