Lines Matching +full:s +full:- +full:mode

1 /* SPDX-License-Identifier: 0BSD */
7 * Igor Pavlov <https://7-zip.org/>
22 * enum xz_mode - Operation mode
24 * @XZ_SINGLE: Single-call mode. This uses less RAM than
25 * multi-call modes, because the LZMA2
30 * @XZ_PREALLOC: Multi-call mode with preallocated LZMA2
34 * @XZ_DYNALLOC: Multi-call mode. The LZMA2 dictionary is
53 * enum xz_ret - Return codes
56 * return code is possible only in multi-call mode
60 * is still possible in multi-call mode by simply
75 * only in multi-call mode (XZ_PREALLOC or
76 * XZ_DYNALLOC); the single-call mode (XZ_SINGLE)
86 * different between multi-call and single-call
87 * mode; more information below.
89 * In multi-call mode, XZ_BUF_ERROR is returned when two consecutive calls
96 * In single-call mode, XZ_BUF_ERROR is returned only when the output buffer
115 * struct xz_buf - Passing input and output buffers to XZ code
141 * struct xz_dec - Opaque type to hold the XZ decoder state
146 * xz_dec_init() - Allocate and initialize a XZ decoder state
147 * @mode: Operation mode
149 * multi-call decoding. This is ignored in single-call mode
150 * (mode == XZ_SINGLE). LZMA2 dictionary is always 2^n bytes
151 * or 2^n + 2^(n-1) bytes (the latter sizes are less common
158 * Single-call mode (XZ_SINGLE): xz_dec_run() decodes the whole stream at
161 * there is no need to allocate the dictionary as part of the decoder's
165 * a big dictionary are not a problem in single-call mode. It is enough that
169 * Multi-call mode with preallocated dictionary (XZ_PREALLOC): dict_max bytes
177 * Multi-call mode with dynamically allocated dictionary (XZ_DYNALLOC):
188 struct xz_dec *xz_dec_init(enum xz_mode mode, uint32_t dict_max);
191 * xz_dec_run() - Run the XZ decoder
192 * @s: Decoder state allocated using xz_dec_init()
195 * The possible return values depend on build options and operation mode.
198 * Note that if an error occurs in single-call mode (return value is not
199 * XZ_STREAM_END), b->in_pos and b->out_pos are not modified and the
200 * contents of the output buffer from b->out[b->out_pos] onward are
204 * cannot give the single-call decoder a too small buffer and then expect to
206 * the multi-call decoder if you don't want to uncompress the whole stream.
208 enum xz_ret xz_dec_run(struct xz_dec *s, struct xz_buf *b);
211 * xz_dec_reset() - Reset an already allocated decoder state
212 * @s: Decoder state allocated using xz_dec_init()
214 * This function can be used to reset the multi-call decoder state without
217 * In single-call mode, xz_dec_reset() is always called in the beginning of
219 * multi-call mode.
221 void xz_dec_reset(struct xz_dec *s);
224 * xz_dec_end() - Free the memory allocated for the decoder state
225 * @s: Decoder state allocated using xz_dec_init(). If s is NULL,
228 void xz_dec_end(struct xz_dec *s);
237 * whose first byte (always 0x00) has been replaced with bitwise-negation
240 * Just like with LZMA2, lc + lp <= 4 must be true. The LZMA end-of-stream
245 * struct xz_dec_microlzma - Opaque type to hold the MicroLZMA decoder state
250 * xz_dec_microlzma_alloc() - Allocate memory for the MicroLZMA decoder
251 * @mode: XZ_SINGLE or XZ_PREALLOC
266 struct xz_dec_microlzma *xz_dec_microlzma_alloc(enum xz_mode mode,
270 * xz_dec_microlzma_reset() - Reset the MicroLZMA decoder state
271 * @s: Decoder state allocated using xz_dec_microlzma_alloc()
283 void xz_dec_microlzma_reset(struct xz_dec_microlzma *s, uint32_t comp_size,
287 * xz_dec_microlzma_run() - Run the MicroLZMA decoder
288 * @s: Decoder state initialized using xz_dec_microlzma_reset()
308 * With XZ_PREALLOC only: As an extra feature, b->out may be NULL to skip over
313 * is also possible and thus XZ_SINGLE is actually a limited multi-call mode.
315 * It is possible to continue decoding but the variables b->out and b->out_pos
316 * MUST NOT be changed by the caller. Increasing the value of b->out_size is
320 * provided from non-contiguous memory.
322 enum xz_ret xz_dec_microlzma_run(struct xz_dec_microlzma *s, struct xz_buf *b);
325 * xz_dec_microlzma_end() - Free the memory allocated for the decoder state
326 * @s: Decoder state allocated using xz_dec_microlzma_alloc().
327 * If s is NULL, this function does nothing.
329 void xz_dec_microlzma_end(struct xz_dec_microlzma *s);
332 * Standalone build (userspace build or in-kernel build for boot time use)
333 * needs a CRC32 implementation. For normal in-kernel use, kernel's own
353 * Update CRC32 value using the polynomial from IEEE-802.3. To start a new