update
This commit is contained in:
96
.CondaPkg/env/Library/include/lzma/base.h
vendored
96
.CondaPkg/env/Library/include/lzma/base.h
vendored
@@ -1,6 +1,7 @@
|
||||
/**
|
||||
* \file lzma/base.h
|
||||
* \brief Data types and functions used in many places in liblzma API
|
||||
* \note Never include this file directly. Use <lzma.h> instead.
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -8,8 +9,6 @@
|
||||
*
|
||||
* This file has been put into the public domain.
|
||||
* You can do whatever you want with this file.
|
||||
*
|
||||
* See ../lzma.h for information about liblzma as a whole.
|
||||
*/
|
||||
|
||||
#ifndef LZMA_H_INTERNAL
|
||||
@@ -138,7 +137,7 @@ typedef enum {
|
||||
*/
|
||||
|
||||
LZMA_MEMLIMIT_ERROR = 6,
|
||||
/**
|
||||
/**<
|
||||
* \brief Memory usage limit was reached
|
||||
*
|
||||
* Decoder would need more memory than allowed by the
|
||||
@@ -240,6 +239,36 @@ typedef enum {
|
||||
* can be a sign of a bug in liblzma. See the documentation
|
||||
* how to report bugs.
|
||||
*/
|
||||
|
||||
LZMA_SEEK_NEEDED = 12,
|
||||
/**<
|
||||
* \brief Request to change the input file position
|
||||
*
|
||||
* Some coders can do random access in the input file. The
|
||||
* initialization functions of these coders take the file size
|
||||
* as an argument. No other coders can return LZMA_SEEK_NEEDED.
|
||||
*
|
||||
* When this value is returned, the application must seek to
|
||||
* the file position given in lzma_stream.seek_pos. This value
|
||||
* is guaranteed to never exceed the file size that was
|
||||
* specified at the coder initialization.
|
||||
*
|
||||
* After seeking the application should read new input and
|
||||
* pass it normally via lzma_stream.next_in and .avail_in.
|
||||
*/
|
||||
|
||||
/*
|
||||
* These eumerations may be used internally by liblzma
|
||||
* but they will never be returned to applications.
|
||||
*/
|
||||
LZMA_RET_INTERNAL1 = 101,
|
||||
LZMA_RET_INTERNAL2 = 102,
|
||||
LZMA_RET_INTERNAL3 = 103,
|
||||
LZMA_RET_INTERNAL4 = 104,
|
||||
LZMA_RET_INTERNAL5 = 105,
|
||||
LZMA_RET_INTERNAL6 = 106,
|
||||
LZMA_RET_INTERNAL7 = 107,
|
||||
LZMA_RET_INTERNAL8 = 108
|
||||
} lzma_ret;
|
||||
|
||||
|
||||
@@ -247,7 +276,7 @@ typedef enum {
|
||||
* \brief The `action' argument for lzma_code()
|
||||
*
|
||||
* After the first use of LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, LZMA_FULL_BARRIER,
|
||||
* or LZMA_FINISH, the same `action' must is used until lzma_code() returns
|
||||
* or LZMA_FINISH, the same `action' must be used until lzma_code() returns
|
||||
* LZMA_STREAM_END. Also, the amount of input (that is, strm->avail_in) must
|
||||
* not be modified by the application until lzma_code() returns
|
||||
* LZMA_STREAM_END. Changing the `action' or modifying the amount of input
|
||||
@@ -516,15 +545,44 @@ typedef struct {
|
||||
* you should not touch these, because the names of these variables
|
||||
* may change.
|
||||
*/
|
||||
|
||||
/** \private Reserved member. */
|
||||
void *reserved_ptr1;
|
||||
|
||||
/** \private Reserved member. */
|
||||
void *reserved_ptr2;
|
||||
|
||||
/** \private Reserved member. */
|
||||
void *reserved_ptr3;
|
||||
|
||||
/** \private Reserved member. */
|
||||
void *reserved_ptr4;
|
||||
uint64_t reserved_int1;
|
||||
|
||||
/**
|
||||
* \brief New seek input position for LZMA_SEEK_NEEDED
|
||||
*
|
||||
* When lzma_code() returns LZMA_SEEK_NEEDED, the new input position
|
||||
* needed by liblzma will be available seek_pos. The value is
|
||||
* guaranteed to not exceed the file size that was specified when
|
||||
* this lzma_stream was initialized.
|
||||
*
|
||||
* In all other situations the value of this variable is undefined.
|
||||
*/
|
||||
uint64_t seek_pos;
|
||||
|
||||
/** \private Reserved member. */
|
||||
uint64_t reserved_int2;
|
||||
|
||||
/** \private Reserved member. */
|
||||
size_t reserved_int3;
|
||||
|
||||
/** \private Reserved member. */
|
||||
size_t reserved_int4;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_reserved_enum reserved_enum1;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_reserved_enum reserved_enum2;
|
||||
|
||||
} lzma_stream;
|
||||
@@ -565,6 +623,14 @@ typedef struct {
|
||||
*
|
||||
* See the description of the coder-specific initialization function to find
|
||||
* out what `action' values are supported by the coder.
|
||||
*
|
||||
* \param strm Pointer to lzma_stream that is at least initialized
|
||||
* with LZMA_STREAM_INIT.
|
||||
* \param action Action for this function to take. Must be a valid
|
||||
* lzma_action enum value.
|
||||
*
|
||||
* \return Any valid lzma_ret. See the lzma_ret enum description for more
|
||||
* information.
|
||||
*/
|
||||
extern LZMA_API(lzma_ret) lzma_code(lzma_stream *strm, lzma_action action)
|
||||
lzma_nothrow lzma_attr_warn_unused_result;
|
||||
@@ -573,15 +639,15 @@ extern LZMA_API(lzma_ret) lzma_code(lzma_stream *strm, lzma_action action)
|
||||
/**
|
||||
* \brief Free memory allocated for the coder data structures
|
||||
*
|
||||
* \param strm Pointer to lzma_stream that is at least initialized
|
||||
* with LZMA_STREAM_INIT.
|
||||
*
|
||||
* After lzma_end(strm), strm->internal is guaranteed to be NULL. No other
|
||||
* members of the lzma_stream structure are touched.
|
||||
*
|
||||
* \note zlib indicates an error if application end()s unfinished
|
||||
* stream structure. liblzma doesn't do this, and assumes that
|
||||
* application knows what it is doing.
|
||||
*
|
||||
* \param strm Pointer to lzma_stream that is at least initialized
|
||||
* with LZMA_STREAM_INIT.
|
||||
*/
|
||||
extern LZMA_API(void) lzma_end(lzma_stream *strm) lzma_nothrow;
|
||||
|
||||
@@ -600,6 +666,11 @@ extern LZMA_API(void) lzma_end(lzma_stream *strm) lzma_nothrow;
|
||||
* mode by taking into account the progress made by each thread. In
|
||||
* single-threaded mode *progress_in and *progress_out are set to
|
||||
* strm->total_in and strm->total_out, respectively.
|
||||
*
|
||||
* \param strm Pointer to lzma_stream that is at least
|
||||
* initialized with LZMA_STREAM_INIT.
|
||||
* \param[out] progress_in Pointer to the number of input bytes processed.
|
||||
* \param[out] progress_out Pointer to the number of output bytes processed.
|
||||
*/
|
||||
extern LZMA_API(void) lzma_get_progress(lzma_stream *strm,
|
||||
uint64_t *progress_in, uint64_t *progress_out) lzma_nothrow;
|
||||
@@ -618,6 +689,9 @@ extern LZMA_API(void) lzma_get_progress(lzma_stream *strm,
|
||||
* this may give misleading information if decoding .xz Streams that have
|
||||
* multiple Blocks, because each Block can have different memory requirements.
|
||||
*
|
||||
* \param strm Pointer to lzma_stream that is at least initialized
|
||||
* with LZMA_STREAM_INIT.
|
||||
*
|
||||
* \return How much memory is currently allocated for the filter
|
||||
* decoders. If no filter chain is currently allocated,
|
||||
* some non-zero value is still returned, which is less than
|
||||
@@ -637,6 +711,9 @@ extern LZMA_API(uint64_t) lzma_memusage(const lzma_stream *strm)
|
||||
* This function is supported only when *strm has been initialized with
|
||||
* a function that takes a memlimit argument.
|
||||
*
|
||||
* \param strm Pointer to lzma_stream that is at least initialized
|
||||
* with LZMA_STREAM_INIT.
|
||||
*
|
||||
* \return On success, the current memory usage limit is returned
|
||||
* (always non-zero). On error, zero is returned.
|
||||
*/
|
||||
@@ -660,7 +737,8 @@ extern LZMA_API(uint64_t) lzma_memlimit_get(const lzma_stream *strm)
|
||||
* after LZMA_MEMLIMIT_ERROR even if the limit was increased using
|
||||
* lzma_memlimit_set(). Other decoders worked correctly.
|
||||
*
|
||||
* \return - LZMA_OK: New memory usage limit successfully set.
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: New memory usage limit successfully set.
|
||||
* - LZMA_MEMLIMIT_ERROR: The new limit is too small.
|
||||
* The limit was not changed.
|
||||
* - LZMA_PROG_ERROR: Invalid arguments, e.g. *strm doesn't
|
||||
|
||||
44
.CondaPkg/env/Library/include/lzma/bcj.h
vendored
44
.CondaPkg/env/Library/include/lzma/bcj.h
vendored
@@ -1,6 +1,7 @@
|
||||
/**
|
||||
* \file lzma/bcj.h
|
||||
* \brief Branch/Call/Jump conversion filters
|
||||
* \note Never include this file directly. Use <lzma.h> instead.
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -8,8 +9,6 @@
|
||||
*
|
||||
* This file has been put into the public domain.
|
||||
* You can do whatever you want with this file.
|
||||
*
|
||||
* See ../lzma.h for information about liblzma as a whole.
|
||||
*/
|
||||
|
||||
#ifndef LZMA_H_INTERNAL
|
||||
@@ -19,35 +18,40 @@
|
||||
|
||||
/* Filter IDs for lzma_filter.id */
|
||||
|
||||
/**
|
||||
* \brief Filter for x86 binaries
|
||||
*/
|
||||
#define LZMA_FILTER_X86 LZMA_VLI_C(0x04)
|
||||
/**<
|
||||
* Filter for x86 binaries
|
||||
*/
|
||||
|
||||
/**
|
||||
* \brief Filter for Big endian PowerPC binaries
|
||||
*/
|
||||
#define LZMA_FILTER_POWERPC LZMA_VLI_C(0x05)
|
||||
/**<
|
||||
* Filter for Big endian PowerPC binaries
|
||||
*/
|
||||
|
||||
/**
|
||||
* \brief Filter for IA-64 (Itanium) binaries
|
||||
*/
|
||||
#define LZMA_FILTER_IA64 LZMA_VLI_C(0x06)
|
||||
/**<
|
||||
* Filter for IA-64 (Itanium) binaries.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \brief Filter for ARM binaries
|
||||
*/
|
||||
#define LZMA_FILTER_ARM LZMA_VLI_C(0x07)
|
||||
/**<
|
||||
* Filter for ARM binaries.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \brief Filter for ARM-Thumb binaries
|
||||
*/
|
||||
#define LZMA_FILTER_ARMTHUMB LZMA_VLI_C(0x08)
|
||||
/**<
|
||||
* Filter for ARM-Thumb binaries.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \brief Filter for SPARC binaries
|
||||
*/
|
||||
#define LZMA_FILTER_SPARC LZMA_VLI_C(0x09)
|
||||
/**<
|
||||
* Filter for SPARC binaries.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \brief Filter for ARM64 binaries
|
||||
*/
|
||||
#define LZMA_FILTER_ARM64 LZMA_VLI_C(0x0A)
|
||||
|
||||
|
||||
/**
|
||||
|
||||
177
.CondaPkg/env/Library/include/lzma/block.h
vendored
177
.CondaPkg/env/Library/include/lzma/block.h
vendored
@@ -1,6 +1,7 @@
|
||||
/**
|
||||
* \file lzma/block.h
|
||||
* \brief .xz Block handling
|
||||
* \note Never include this file directly. Use <lzma.h> instead.
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -8,8 +9,6 @@
|
||||
*
|
||||
* This file has been put into the public domain.
|
||||
* You can do whatever you want with this file.
|
||||
*
|
||||
* See ../lzma.h for information about liblzma as a whole.
|
||||
*/
|
||||
|
||||
#ifndef LZMA_H_INTERNAL
|
||||
@@ -32,19 +31,28 @@ typedef struct {
|
||||
* \brief Block format version
|
||||
*
|
||||
* To prevent API and ABI breakages when new features are needed,
|
||||
* a version number is used to indicate which fields in this
|
||||
* a version number is used to indicate which members in this
|
||||
* structure are in use:
|
||||
* - liblzma >= 5.0.0: version = 0 is supported.
|
||||
* - liblzma >= 5.1.4beta: Support for version = 1 was added,
|
||||
* which adds the ignore_check field.
|
||||
* which adds the ignore_check member.
|
||||
*
|
||||
* If version is greater than one, most Block related functions
|
||||
* will return LZMA_OPTIONS_ERROR (lzma_block_header_decode() works
|
||||
* with any version value).
|
||||
*
|
||||
* Read by:
|
||||
* - All functions that take pointer to lzma_block as argument,
|
||||
* including lzma_block_header_decode().
|
||||
* - lzma_block_header_size()
|
||||
* - lzma_block_header_encode()
|
||||
* - lzma_block_header_decode()
|
||||
* - lzma_block_compressed_size()
|
||||
* - lzma_block_unpadded_size()
|
||||
* - lzma_block_total_size()
|
||||
* - lzma_block_encoder()
|
||||
* - lzma_block_decoder()
|
||||
* - lzma_block_buffer_encode()
|
||||
* - lzma_block_uncomp_encode()
|
||||
* - lzma_block_buffer_decode()
|
||||
*
|
||||
* Written by:
|
||||
* - lzma_block_header_decode()
|
||||
@@ -52,7 +60,7 @@ typedef struct {
|
||||
uint32_t version;
|
||||
|
||||
/**
|
||||
* \brief Size of the Block Header field
|
||||
* \brief Size of the Block Header field in bytes
|
||||
*
|
||||
* This is always a multiple of four.
|
||||
*
|
||||
@@ -68,6 +76,7 @@ typedef struct {
|
||||
* Written by:
|
||||
* - lzma_block_header_size()
|
||||
* - lzma_block_buffer_encode()
|
||||
* - lzma_block_uncomp_encode()
|
||||
*/
|
||||
uint32_t header_size;
|
||||
# define LZMA_BLOCK_HEADER_SIZE_MIN 8
|
||||
@@ -143,6 +152,7 @@ typedef struct {
|
||||
* - lzma_block_encoder()
|
||||
* - lzma_block_decoder()
|
||||
* - lzma_block_buffer_encode()
|
||||
* - lzma_block_uncomp_encode()
|
||||
* - lzma_block_buffer_decode()
|
||||
*/
|
||||
lzma_vli compressed_size;
|
||||
@@ -167,6 +177,7 @@ typedef struct {
|
||||
* - lzma_block_encoder()
|
||||
* - lzma_block_decoder()
|
||||
* - lzma_block_buffer_encode()
|
||||
* - lzma_block_uncomp_encode()
|
||||
* - lzma_block_buffer_decode()
|
||||
*/
|
||||
lzma_vli uncompressed_size;
|
||||
@@ -212,6 +223,7 @@ typedef struct {
|
||||
* - lzma_block_encoder()
|
||||
* - lzma_block_decoder()
|
||||
* - lzma_block_buffer_encode()
|
||||
* - lzma_block_uncomp_encode()
|
||||
* - lzma_block_buffer_decode()
|
||||
*/
|
||||
uint8_t raw_check[LZMA_CHECK_SIZE_MAX];
|
||||
@@ -223,26 +235,56 @@ typedef struct {
|
||||
* with the currently supported options, so it is safe to leave these
|
||||
* uninitialized.
|
||||
*/
|
||||
|
||||
/** \private Reserved member. */
|
||||
void *reserved_ptr1;
|
||||
|
||||
/** \private Reserved member. */
|
||||
void *reserved_ptr2;
|
||||
|
||||
/** \private Reserved member. */
|
||||
void *reserved_ptr3;
|
||||
|
||||
/** \private Reserved member. */
|
||||
uint32_t reserved_int1;
|
||||
|
||||
/** \private Reserved member. */
|
||||
uint32_t reserved_int2;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_vli reserved_int3;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_vli reserved_int4;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_vli reserved_int5;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_vli reserved_int6;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_vli reserved_int7;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_vli reserved_int8;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_reserved_enum reserved_enum1;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_reserved_enum reserved_enum2;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_reserved_enum reserved_enum3;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_reserved_enum reserved_enum4;
|
||||
|
||||
/**
|
||||
* \brief A flag to Block decoder to not verify the Check field
|
||||
*
|
||||
* This field is supported by liblzma >= 5.1.4beta if .version >= 1.
|
||||
* This member is supported by liblzma >= 5.1.4beta if .version >= 1.
|
||||
*
|
||||
* If this is set to true, the integrity check won't be calculated
|
||||
* and verified. Unless you know what you are doing, you should
|
||||
@@ -260,12 +302,25 @@ typedef struct {
|
||||
*/
|
||||
lzma_bool ignore_check;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_bool reserved_bool2;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_bool reserved_bool3;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_bool reserved_bool4;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_bool reserved_bool5;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_bool reserved_bool6;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_bool reserved_bool7;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_bool reserved_bool8;
|
||||
|
||||
} lzma_block;
|
||||
@@ -280,7 +335,8 @@ typedef struct {
|
||||
* Note that if the first byte is 0x00, it indicates beginning of Index; use
|
||||
* this macro only when the byte is not 0x00.
|
||||
*
|
||||
* There is no encoding macro, because Block Header encoder is enough for that.
|
||||
* There is no encoding macro because lzma_block_header_size() and
|
||||
* lzma_block_header_encode() should be used.
|
||||
*/
|
||||
#define lzma_block_header_size_decode(b) (((uint32_t)(b) + 1) * 4)
|
||||
|
||||
@@ -294,17 +350,20 @@ typedef struct {
|
||||
* four and doesn't exceed LZMA_BLOCK_HEADER_SIZE_MAX. Increasing header_size
|
||||
* just means that lzma_block_header_encode() will add Header Padding.
|
||||
*
|
||||
* \return - LZMA_OK: Size calculated successfully and stored to
|
||||
* block->header_size.
|
||||
* - LZMA_OPTIONS_ERROR: Unsupported version, filters or
|
||||
* filter options.
|
||||
* - LZMA_PROG_ERROR: Invalid values like compressed_size == 0.
|
||||
*
|
||||
* \note This doesn't check that all the options are valid i.e. this
|
||||
* may return LZMA_OK even if lzma_block_header_encode() or
|
||||
* lzma_block_encoder() would fail. If you want to validate the
|
||||
* filter chain, consider using lzma_memlimit_encoder() which as
|
||||
* a side-effect validates the filter chain.
|
||||
*
|
||||
* \param block Block options
|
||||
*
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Size calculated successfully and stored to
|
||||
* block->header_size.
|
||||
* - LZMA_OPTIONS_ERROR: Unsupported version, filters or
|
||||
* filter options.
|
||||
* - LZMA_PROG_ERROR: Invalid values like compressed_size == 0.
|
||||
*/
|
||||
extern LZMA_API(lzma_ret) lzma_block_header_size(lzma_block *block)
|
||||
lzma_nothrow lzma_attr_warn_unused_result;
|
||||
@@ -318,11 +377,12 @@ extern LZMA_API(lzma_ret) lzma_block_header_size(lzma_block *block)
|
||||
* lzma_block_header_size() is used, the Block Header will be padded to the
|
||||
* specified size.
|
||||
*
|
||||
* \param out Beginning of the output buffer. This must be
|
||||
* at least block->header_size bytes.
|
||||
* \param block Block options to be encoded.
|
||||
* \param[out] out Beginning of the output buffer. This must be
|
||||
* at least block->header_size bytes.
|
||||
*
|
||||
* \return - LZMA_OK: Encoding was successful. block->header_size
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Encoding was successful. block->header_size
|
||||
* bytes were written to output buffer.
|
||||
* - LZMA_OPTIONS_ERROR: Invalid or unsupported options.
|
||||
* - LZMA_PROG_ERROR: Invalid arguments, for example
|
||||
@@ -354,14 +414,15 @@ extern LZMA_API(lzma_ret) lzma_block_header_encode(
|
||||
* block->filters must have been allocated, but they don't need to be
|
||||
* initialized (possible existing filter options are not freed).
|
||||
*
|
||||
* \param block Destination for Block options.
|
||||
* \param[out] block Destination for Block options
|
||||
* \param allocator lzma_allocator for custom allocator functions.
|
||||
* Set to NULL to use malloc() (and also free()
|
||||
* if an error occurs).
|
||||
* \param in Beginning of the input buffer. This must be
|
||||
* at least block->header_size bytes.
|
||||
*
|
||||
* \return - LZMA_OK: Decoding was successful. block->header_size
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Decoding was successful. block->header_size
|
||||
* bytes were read from the input buffer.
|
||||
* - LZMA_OPTIONS_ERROR: The Block Header specifies some
|
||||
* unsupported options such as unsupported filters. This can
|
||||
@@ -398,7 +459,12 @@ extern LZMA_API(lzma_ret) lzma_block_header_decode(lzma_block *block,
|
||||
* field so that it can properly validate Compressed Size if it
|
||||
* was present in Block Header.
|
||||
*
|
||||
* \return - LZMA_OK: block->compressed_size was set successfully.
|
||||
* \param block Block options: block->header_size must
|
||||
* already be set with lzma_block_header_size().
|
||||
* \param unpadded_size Unpadded Size from the Index field in bytes
|
||||
*
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: block->compressed_size was set successfully.
|
||||
* - LZMA_DATA_ERROR: unpadded_size is too small compared to
|
||||
* block->header_size and lzma_check_size(block->check).
|
||||
* - LZMA_PROG_ERROR: Some values are invalid. For example,
|
||||
@@ -419,6 +485,9 @@ extern LZMA_API(lzma_ret) lzma_block_compressed_size(
|
||||
* Compressed Size, and size of the Check field. This is where this function
|
||||
* is needed.
|
||||
*
|
||||
* \param block Block options: block->header_size must already be
|
||||
* set with lzma_block_header_size().
|
||||
*
|
||||
* \return Unpadded Size on success, or zero on error.
|
||||
*/
|
||||
extern LZMA_API(lzma_vli) lzma_block_unpadded_size(const lzma_block *block)
|
||||
@@ -431,6 +500,9 @@ extern LZMA_API(lzma_vli) lzma_block_unpadded_size(const lzma_block *block)
|
||||
* This is equivalent to lzma_block_unpadded_size() except that the returned
|
||||
* value includes the size of the Block Padding field.
|
||||
*
|
||||
* \param block Block options: block->header_size must already be
|
||||
* set with lzma_block_header_size().
|
||||
*
|
||||
* \return On success, total encoded size of the Block. On error,
|
||||
* zero is returned.
|
||||
*/
|
||||
@@ -444,7 +516,17 @@ extern LZMA_API(lzma_vli) lzma_block_total_size(const lzma_block *block)
|
||||
* Valid actions for lzma_code() are LZMA_RUN, LZMA_SYNC_FLUSH (only if the
|
||||
* filter chain supports it), and LZMA_FINISH.
|
||||
*
|
||||
* \return - LZMA_OK: All good, continue with lzma_code().
|
||||
* The Block encoder encodes the Block Data, Block Padding, and Check value.
|
||||
* It does NOT encode the Block Header which can be encoded with
|
||||
* lzma_block_header_encode().
|
||||
*
|
||||
* \param strm Pointer to lzma_stream that is at least initialized
|
||||
* with LZMA_STREAM_INIT.
|
||||
* \param block Block options: block->version, block->check,
|
||||
* and block->filters must have been initialized.
|
||||
*
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: All good, continue with lzma_code().
|
||||
* - LZMA_MEM_ERROR
|
||||
* - LZMA_OPTIONS_ERROR
|
||||
* - LZMA_UNSUPPORTED_CHECK: block->check specifies a Check ID
|
||||
@@ -463,7 +545,16 @@ extern LZMA_API(lzma_ret) lzma_block_encoder(
|
||||
* Valid actions for lzma_code() are LZMA_RUN and LZMA_FINISH. Using
|
||||
* LZMA_FINISH is not required. It is supported only for convenience.
|
||||
*
|
||||
* \return - LZMA_OK: All good, continue with lzma_code().
|
||||
* The Block decoder decodes the Block Data, Block Padding, and Check value.
|
||||
* It does NOT decode the Block Header which can be decoded with
|
||||
* lzma_block_header_decode().
|
||||
*
|
||||
* \param strm Pointer to lzma_stream that is at least initialized
|
||||
* with LZMA_STREAM_INIT.
|
||||
* \param block Block options
|
||||
*
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: All good, continue with lzma_code().
|
||||
* - LZMA_PROG_ERROR
|
||||
* - LZMA_MEM_ERROR
|
||||
*/
|
||||
@@ -477,6 +568,11 @@ extern LZMA_API(lzma_ret) lzma_block_decoder(
|
||||
*
|
||||
* This is equivalent to lzma_stream_buffer_bound() but for .xz Blocks.
|
||||
* See the documentation of lzma_stream_buffer_bound().
|
||||
*
|
||||
* \param uncompressed_size Size of the data to be encoded with the
|
||||
* single-call Block encoder.
|
||||
*
|
||||
* \return Maximum output size in bytes for single-call Block encoding.
|
||||
*/
|
||||
extern LZMA_API(size_t) lzma_block_buffer_bound(size_t uncompressed_size)
|
||||
lzma_nothrow;
|
||||
@@ -505,13 +601,14 @@ extern LZMA_API(size_t) lzma_block_buffer_bound(size_t uncompressed_size)
|
||||
* Set to NULL to use malloc() and free().
|
||||
* \param in Beginning of the input buffer
|
||||
* \param in_size Size of the input buffer
|
||||
* \param out Beginning of the output buffer
|
||||
* \param out_pos The next byte will be written to out[*out_pos].
|
||||
* \param[out] out Beginning of the output buffer
|
||||
* \param[out] out_pos The next byte will be written to out[*out_pos].
|
||||
* *out_pos is updated only if encoding succeeds.
|
||||
* \param out_size Size of the out buffer; the first byte into
|
||||
* which no data is written to is out[out_size].
|
||||
*
|
||||
* \return - LZMA_OK: Encoding was successful.
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Encoding was successful.
|
||||
* - LZMA_BUF_ERROR: Not enough output buffer space.
|
||||
* - LZMA_UNSUPPORTED_CHECK
|
||||
* - LZMA_OPTIONS_ERROR
|
||||
@@ -537,6 +634,25 @@ extern LZMA_API(lzma_ret) lzma_block_buffer_encode(
|
||||
* Since the data won't be compressed, this function ignores block->filters.
|
||||
* This function doesn't take lzma_allocator because this function doesn't
|
||||
* allocate any memory from the heap.
|
||||
*
|
||||
* \param block Block options: block->version, block->check,
|
||||
* and block->filters must have been initialized.
|
||||
* \param in Beginning of the input buffer
|
||||
* \param in_size Size of the input buffer
|
||||
* \param[out] out Beginning of the output buffer
|
||||
* \param[out] out_pos The next byte will be written to out[*out_pos].
|
||||
* *out_pos is updated only if encoding succeeds.
|
||||
* \param out_size Size of the out buffer; the first byte into
|
||||
* which no data is written to is out[out_size].
|
||||
*
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Encoding was successful.
|
||||
* - LZMA_BUF_ERROR: Not enough output buffer space.
|
||||
* - LZMA_UNSUPPORTED_CHECK
|
||||
* - LZMA_OPTIONS_ERROR
|
||||
* - LZMA_MEM_ERROR
|
||||
* - LZMA_DATA_ERROR
|
||||
* - LZMA_PROG_ERROR
|
||||
*/
|
||||
extern LZMA_API(lzma_ret) lzma_block_uncomp_encode(lzma_block *block,
|
||||
const uint8_t *in, size_t in_size,
|
||||
@@ -550,7 +666,7 @@ extern LZMA_API(lzma_ret) lzma_block_uncomp_encode(lzma_block *block,
|
||||
* This is single-call equivalent of lzma_block_decoder(), and requires that
|
||||
* the caller has already decoded Block Header and checked its memory usage.
|
||||
*
|
||||
* \param block Block options just like with lzma_block_decoder().
|
||||
* \param block Block options
|
||||
* \param allocator lzma_allocator for custom allocator functions.
|
||||
* Set to NULL to use malloc() and free().
|
||||
* \param in Beginning of the input buffer
|
||||
@@ -558,13 +674,14 @@ extern LZMA_API(lzma_ret) lzma_block_uncomp_encode(lzma_block *block,
|
||||
* *in_pos is updated only if decoding succeeds.
|
||||
* \param in_size Size of the input buffer; the first byte that
|
||||
* won't be read is in[in_size].
|
||||
* \param out Beginning of the output buffer
|
||||
* \param out_pos The next byte will be written to out[*out_pos].
|
||||
* \param[out] out Beginning of the output buffer
|
||||
* \param[out] out_pos The next byte will be written to out[*out_pos].
|
||||
* *out_pos is updated only if encoding succeeds.
|
||||
* \param out_size Size of the out buffer; the first byte into
|
||||
* which no data is written to is out[out_size].
|
||||
*
|
||||
* \return - LZMA_OK: Decoding was successful.
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Decoding was successful.
|
||||
* - LZMA_OPTIONS_ERROR
|
||||
* - LZMA_DATA_ERROR
|
||||
* - LZMA_MEM_ERROR
|
||||
|
||||
44
.CondaPkg/env/Library/include/lzma/check.h
vendored
44
.CondaPkg/env/Library/include/lzma/check.h
vendored
@@ -1,6 +1,7 @@
|
||||
/**
|
||||
* \file lzma/check.h
|
||||
* \brief Integrity checks
|
||||
* \note Never include this file directly. Use <lzma.h> instead.
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -8,8 +9,6 @@
|
||||
*
|
||||
* This file has been put into the public domain.
|
||||
* You can do whatever you want with this file.
|
||||
*
|
||||
* See ../lzma.h for information about liblzma as a whole.
|
||||
*/
|
||||
|
||||
#ifndef LZMA_H_INTERNAL
|
||||
@@ -71,12 +70,17 @@ typedef enum {
|
||||
/**
|
||||
* \brief Test if the given Check ID is supported
|
||||
*
|
||||
* Return true if the given Check ID is supported by this liblzma build.
|
||||
* Otherwise false is returned. It is safe to call this with a value that
|
||||
* is not in the range [0, 15]; in that case the return value is always false.
|
||||
* LZMA_CHECK_NONE and LZMA_CHECK_CRC32 are always supported (even if
|
||||
* liblzma is built with limited features).
|
||||
*
|
||||
* You can assume that LZMA_CHECK_NONE and LZMA_CHECK_CRC32 are always
|
||||
* supported (even if liblzma is built with limited features).
|
||||
* \note It is safe to call this with a value that is not in the
|
||||
* range [0, 15]; in that case the return value is always false.
|
||||
*
|
||||
* \param check Check ID
|
||||
*
|
||||
* \return lzma_bool:
|
||||
* - true if Check ID is supported by this liblzma build.
|
||||
* - false otherwise.
|
||||
*/
|
||||
extern LZMA_API(lzma_bool) lzma_check_is_supported(lzma_check check)
|
||||
lzma_nothrow lzma_attr_const;
|
||||
@@ -90,7 +94,10 @@ extern LZMA_API(lzma_bool) lzma_check_is_supported(lzma_check check)
|
||||
* the Check field with the specified Check ID. The values are:
|
||||
* { 0, 4, 4, 4, 8, 8, 8, 16, 16, 16, 32, 32, 32, 64, 64, 64 }
|
||||
*
|
||||
* If the argument is not in the range [0, 15], UINT32_MAX is returned.
|
||||
* \param check Check ID
|
||||
*
|
||||
* \return Size of the Check field in bytes. If the argument is not in
|
||||
* the range [0, 15], UINT32_MAX is returned.
|
||||
*/
|
||||
extern LZMA_API(uint32_t) lzma_check_size(lzma_check check)
|
||||
lzma_nothrow lzma_attr_const;
|
||||
@@ -126,25 +133,32 @@ extern LZMA_API(uint32_t) lzma_crc32(
|
||||
*
|
||||
* Calculate CRC64 using the polynomial from the ECMA-182 standard.
|
||||
*
|
||||
* This function is used similarly to lzma_crc32(). See its documentation.
|
||||
* This function is used similarly to lzma_crc32().
|
||||
*
|
||||
* \param buf Pointer to the input buffer
|
||||
* \param size Size of the input buffer
|
||||
* \param crc Previously returned CRC value. This is used to
|
||||
* calculate the CRC of a big buffer in smaller chunks.
|
||||
* Set to zero when starting a new calculation.
|
||||
*
|
||||
* \return Updated CRC value, which can be passed to this function
|
||||
* again to continue CRC calculation.
|
||||
*/
|
||||
extern LZMA_API(uint64_t) lzma_crc64(
|
||||
const uint8_t *buf, size_t size, uint64_t crc)
|
||||
lzma_nothrow lzma_attr_pure;
|
||||
|
||||
|
||||
/*
|
||||
* SHA-256 functions are currently not exported to public API.
|
||||
* Contact Lasse Collin if you think it should be.
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* \brief Get the type of the integrity check
|
||||
*
|
||||
* This function can be called only immediately after lzma_code() has
|
||||
* returned LZMA_NO_CHECK, LZMA_UNSUPPORTED_CHECK, or LZMA_GET_CHECK.
|
||||
* Calling this function in any other situation has undefined behavior.
|
||||
*
|
||||
* \param strm Pointer to lzma_stream meeting the above conditions.
|
||||
*
|
||||
* \return Check ID in the lzma_stream, or undefined if called improperly.
|
||||
*/
|
||||
extern LZMA_API(lzma_check) lzma_get_check(const lzma_stream *strm)
|
||||
lzma_nothrow;
|
||||
|
||||
472
.CondaPkg/env/Library/include/lzma/container.h
vendored
472
.CondaPkg/env/Library/include/lzma/container.h
vendored
@@ -1,6 +1,7 @@
|
||||
/**
|
||||
* \file lzma/container.h
|
||||
* \brief File formats
|
||||
* \note Never include this file directly. Use <lzma.h> instead.
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -8,8 +9,6 @@
|
||||
*
|
||||
* This file has been put into the public domain.
|
||||
* You can do whatever you want with this file.
|
||||
*
|
||||
* See ../lzma.h for information about liblzma as a whole.
|
||||
*/
|
||||
|
||||
#ifndef LZMA_H_INTERNAL
|
||||
@@ -51,7 +50,7 @@
|
||||
*
|
||||
* This flag modifies the preset to make the encoding significantly slower
|
||||
* while improving the compression ratio only marginally. This is useful
|
||||
* when you don't mind wasting time to get as small result as possible.
|
||||
* when you don't mind spending time to get as small result as possible.
|
||||
*
|
||||
* This flag doesn't affect the memory usage requirements of the decoder (at
|
||||
* least not significantly). The memory usage of the encoder may be increased
|
||||
@@ -69,7 +68,15 @@ typedef struct {
|
||||
*
|
||||
* Set this to zero if no flags are wanted.
|
||||
*
|
||||
* No flags are currently supported.
|
||||
* Encoder: No flags are currently supported.
|
||||
*
|
||||
* Decoder: Bitwise-or of zero or more of the decoder flags:
|
||||
* - LZMA_TELL_NO_CHECK
|
||||
* - LZMA_TELL_UNSUPPORTED_CHECK
|
||||
* - LZMA_TELL_ANY_CHECK
|
||||
* - LZMA_IGNORE_CHECK
|
||||
* - LZMA_CONCATENATED
|
||||
* - LZMA_FAIL_FAST
|
||||
*/
|
||||
uint32_t flags;
|
||||
|
||||
@@ -79,7 +86,7 @@ typedef struct {
|
||||
uint32_t threads;
|
||||
|
||||
/**
|
||||
* \brief Maximum uncompressed size of a Block
|
||||
* \brief Encoder only: Maximum uncompressed size of a Block
|
||||
*
|
||||
* The encoder will start a new .xz Block every block_size bytes.
|
||||
* Using LZMA_FULL_FLUSH or LZMA_FULL_BARRIER with lzma_code()
|
||||
@@ -106,7 +113,7 @@ typedef struct {
|
||||
/**
|
||||
* \brief Timeout to allow lzma_code() to return early
|
||||
*
|
||||
* Multithreading can make liblzma to consume input and produce
|
||||
* Multithreading can make liblzma consume input and produce
|
||||
* output in a very bursty way: it may first read a lot of input
|
||||
* to fill internal buffers, then no input or output occurs for
|
||||
* a while.
|
||||
@@ -123,19 +130,18 @@ typedef struct {
|
||||
* LZMA_OK. Reasonable values are 100 ms or more. The xz command
|
||||
* line tool uses 300 ms.
|
||||
*
|
||||
* If long blocking times are fine for you, set timeout to a special
|
||||
* value of 0, which will disable the timeout mechanism and will make
|
||||
* If long blocking times are acceptable, set timeout to a special
|
||||
* value of 0. This will disable the timeout mechanism and will make
|
||||
* lzma_code() block until all the input is consumed or the output
|
||||
* buffer has been filled.
|
||||
*
|
||||
* \note Even with a timeout, lzma_code() might sometimes take
|
||||
* somewhat long time to return. No timing guarantees
|
||||
* are made.
|
||||
* a long time to return. No timing guarantees are made.
|
||||
*/
|
||||
uint32_t timeout;
|
||||
|
||||
/**
|
||||
* \brief Compression preset (level and possible flags)
|
||||
* \brief Encoder only: Compression preset
|
||||
*
|
||||
* The preset is set just like with lzma_easy_encoder().
|
||||
* The preset is ignored if filters below is non-NULL.
|
||||
@@ -143,7 +149,7 @@ typedef struct {
|
||||
uint32_t preset;
|
||||
|
||||
/**
|
||||
* \brief Filter chain (alternative to a preset)
|
||||
* \brief Encoder only: Filter chain (alternative to a preset)
|
||||
*
|
||||
* If this is NULL, the preset above is used. Otherwise the preset
|
||||
* is ignored and the filter chain specified here is used.
|
||||
@@ -151,7 +157,7 @@ typedef struct {
|
||||
const lzma_filter *filters;
|
||||
|
||||
/**
|
||||
* \brief Integrity check type
|
||||
* \brief Encoder only: Integrity check type
|
||||
*
|
||||
* See check.h for available checks. The xz command line tool
|
||||
* defaults to LZMA_CHECK_CRC64, which is a good choice if you
|
||||
@@ -166,20 +172,86 @@ typedef struct {
|
||||
* with the currently supported options, so it is safe to leave these
|
||||
* uninitialized.
|
||||
*/
|
||||
/** \private Reserved member. */
|
||||
lzma_reserved_enum reserved_enum1;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_reserved_enum reserved_enum2;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_reserved_enum reserved_enum3;
|
||||
|
||||
/** \private Reserved member. */
|
||||
uint32_t reserved_int1;
|
||||
|
||||
/** \private Reserved member. */
|
||||
uint32_t reserved_int2;
|
||||
|
||||
/** \private Reserved member. */
|
||||
uint32_t reserved_int3;
|
||||
|
||||
/** \private Reserved member. */
|
||||
uint32_t reserved_int4;
|
||||
uint64_t reserved_int5;
|
||||
uint64_t reserved_int6;
|
||||
|
||||
/**
|
||||
* \brief Memory usage limit to reduce the number of threads
|
||||
*
|
||||
* Encoder: Ignored.
|
||||
*
|
||||
* Decoder:
|
||||
*
|
||||
* If the number of threads has been set so high that more than
|
||||
* memlimit_threading bytes of memory would be needed, the number
|
||||
* of threads will be reduced so that the memory usage will not exceed
|
||||
* memlimit_threading bytes. However, if memlimit_threading cannot
|
||||
* be met even in single-threaded mode, then decoding will continue
|
||||
* in single-threaded mode and memlimit_threading may be exceeded
|
||||
* even by a large amount. That is, memlimit_threading will never make
|
||||
* lzma_code() return LZMA_MEMLIMIT_ERROR. To truly cap the memory
|
||||
* usage, see memlimit_stop below.
|
||||
*
|
||||
* Setting memlimit_threading to UINT64_MAX or a similar huge value
|
||||
* means that liblzma is allowed to keep the whole compressed file
|
||||
* and the whole uncompressed file in memory in addition to the memory
|
||||
* needed by the decompressor data structures used by each thread!
|
||||
* In other words, a reasonable value limit must be set here or it
|
||||
* will cause problems sooner or later. If you have no idea what
|
||||
* a reasonable value could be, try lzma_physmem() / 4 as a starting
|
||||
* point. Setting this limit will never prevent decompression of
|
||||
* a file; this will only reduce the number of threads.
|
||||
*
|
||||
* If memlimit_threading is greater than memlimit_stop, then the value
|
||||
* of memlimit_stop will be used for both.
|
||||
*/
|
||||
uint64_t memlimit_threading;
|
||||
|
||||
/**
|
||||
* \brief Memory usage limit that should never be exceeded
|
||||
*
|
||||
* Encoder: Ignored.
|
||||
*
|
||||
* Decoder: If decompressing will need more than this amount of
|
||||
* memory even in the single-threaded mode, then lzma_code() will
|
||||
* return LZMA_MEMLIMIT_ERROR.
|
||||
*/
|
||||
uint64_t memlimit_stop;
|
||||
|
||||
/** \private Reserved member. */
|
||||
uint64_t reserved_int7;
|
||||
|
||||
/** \private Reserved member. */
|
||||
uint64_t reserved_int8;
|
||||
|
||||
/** \private Reserved member. */
|
||||
void *reserved_ptr1;
|
||||
|
||||
/** \private Reserved member. */
|
||||
void *reserved_ptr2;
|
||||
|
||||
/** \private Reserved member. */
|
||||
void *reserved_ptr3;
|
||||
|
||||
/** \private Reserved member. */
|
||||
void *reserved_ptr4;
|
||||
|
||||
} lzma_mt;
|
||||
@@ -193,8 +265,7 @@ typedef struct {
|
||||
* \param preset Compression preset (level and possible flags)
|
||||
*
|
||||
* \return Number of bytes of memory required for the given
|
||||
* preset when encoding. If an error occurs, for example
|
||||
* due to unsupported preset, UINT64_MAX is returned.
|
||||
* preset when encoding or UINT64_MAX on error.
|
||||
*/
|
||||
extern LZMA_API(uint64_t) lzma_easy_encoder_memusage(uint32_t preset)
|
||||
lzma_nothrow lzma_attr_pure;
|
||||
@@ -208,9 +279,8 @@ extern LZMA_API(uint64_t) lzma_easy_encoder_memusage(uint32_t preset)
|
||||
* \param preset Compression preset (level and possible flags)
|
||||
*
|
||||
* \return Number of bytes of memory required to decompress a file
|
||||
* that was compressed using the given preset. If an error
|
||||
* occurs, for example due to unsupported preset, UINT64_MAX
|
||||
* is returned.
|
||||
* that was compressed using the given preset or UINT64_MAX
|
||||
* on error.
|
||||
*/
|
||||
extern LZMA_API(uint64_t) lzma_easy_decoder_memusage(uint32_t preset)
|
||||
lzma_nothrow lzma_attr_pure;
|
||||
@@ -220,7 +290,16 @@ extern LZMA_API(uint64_t) lzma_easy_decoder_memusage(uint32_t preset)
|
||||
* \brief Initialize .xz Stream encoder using a preset number
|
||||
*
|
||||
* This function is intended for those who just want to use the basic features
|
||||
* if liblzma (that is, most developers out there).
|
||||
* of liblzma (that is, most developers out there).
|
||||
*
|
||||
* If initialization fails (return value is not LZMA_OK), all the memory
|
||||
* allocated for *strm by liblzma is always freed. Thus, there is no need
|
||||
* to call lzma_end() after failed initialization.
|
||||
*
|
||||
* If initialization succeeds, use lzma_code() to do the actual encoding.
|
||||
* Valid values for `action' (the second argument of lzma_code()) are
|
||||
* LZMA_RUN, LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, and LZMA_FINISH. In future,
|
||||
* there may be compression levels or flags that don't support LZMA_SYNC_FLUSH.
|
||||
*
|
||||
* \param strm Pointer to lzma_stream that is at least initialized
|
||||
* with LZMA_STREAM_INIT.
|
||||
@@ -236,7 +315,8 @@ extern LZMA_API(uint64_t) lzma_easy_decoder_memusage(uint32_t preset)
|
||||
* unsure. LZMA_CHECK_CRC32 is good too as long as the
|
||||
* uncompressed file is not many gigabytes.
|
||||
*
|
||||
* \return - LZMA_OK: Initialization succeeded. Use lzma_code() to
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Initialization succeeded. Use lzma_code() to
|
||||
* encode your data.
|
||||
* - LZMA_MEM_ERROR: Memory allocation failed.
|
||||
* - LZMA_OPTIONS_ERROR: The given compression preset is not
|
||||
@@ -245,15 +325,6 @@ extern LZMA_API(uint64_t) lzma_easy_decoder_memusage(uint32_t preset)
|
||||
* supported by this liblzma build.
|
||||
* - LZMA_PROG_ERROR: One or more of the parameters have values
|
||||
* that will never be valid. For example, strm == NULL.
|
||||
*
|
||||
* If initialization fails (return value is not LZMA_OK), all the memory
|
||||
* allocated for *strm by liblzma is always freed. Thus, there is no need
|
||||
* to call lzma_end() after failed initialization.
|
||||
*
|
||||
* If initialization succeeds, use lzma_code() to do the actual encoding.
|
||||
* Valid values for `action' (the second argument of lzma_code()) are
|
||||
* LZMA_RUN, LZMA_SYNC_FLUSH, LZMA_FULL_FLUSH, and LZMA_FINISH. In future,
|
||||
* there may be compression levels or flags that don't support LZMA_SYNC_FLUSH.
|
||||
*/
|
||||
extern LZMA_API(lzma_ret) lzma_easy_encoder(
|
||||
lzma_stream *strm, uint32_t preset, lzma_check check)
|
||||
@@ -274,13 +345,14 @@ extern LZMA_API(lzma_ret) lzma_easy_encoder(
|
||||
* Set to NULL to use malloc() and free().
|
||||
* \param in Beginning of the input buffer
|
||||
* \param in_size Size of the input buffer
|
||||
* \param out Beginning of the output buffer
|
||||
* \param out_pos The next byte will be written to out[*out_pos].
|
||||
* \param[out] out Beginning of the output buffer
|
||||
* \param[out] out_pos The next byte will be written to out[*out_pos].
|
||||
* *out_pos is updated only if encoding succeeds.
|
||||
* \param out_size Size of the out buffer; the first byte into
|
||||
* which no data is written to is out[out_size].
|
||||
*
|
||||
* \return - LZMA_OK: Encoding was successful.
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Encoding was successful.
|
||||
* - LZMA_BUF_ERROR: Not enough output buffer space.
|
||||
* - LZMA_UNSUPPORTED_CHECK
|
||||
* - LZMA_OPTIONS_ERROR
|
||||
@@ -298,14 +370,16 @@ extern LZMA_API(lzma_ret) lzma_easy_buffer_encode(
|
||||
/**
|
||||
* \brief Initialize .xz Stream encoder using a custom filter chain
|
||||
*
|
||||
* \param strm Pointer to properly prepared lzma_stream
|
||||
* \param filters Array of filters. This must be terminated with
|
||||
* filters[n].id = LZMA_VLI_UNKNOWN. See filter.h for
|
||||
* more information.
|
||||
* \param strm Pointer to lzma_stream that is at least initialized
|
||||
* with LZMA_STREAM_INIT.
|
||||
* \param filters Array of filters terminated with
|
||||
* .id == LZMA_VLI_UNKNOWN. See filters.h for more
|
||||
* information.
|
||||
* \param check Type of the integrity check to calculate from
|
||||
* uncompressed data.
|
||||
*
|
||||
* \return - LZMA_OK: Initialization was successful.
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Initialization was successful.
|
||||
* - LZMA_MEM_ERROR
|
||||
* - LZMA_UNSUPPORTED_CHECK
|
||||
* - LZMA_OPTIONS_ERROR
|
||||
@@ -345,10 +419,12 @@ extern LZMA_API(uint64_t) lzma_stream_encoder_mt_memusage(
|
||||
* LZMA_FULL_BARRIER, and LZMA_FINISH. Support for LZMA_SYNC_FLUSH might be
|
||||
* added in the future.
|
||||
*
|
||||
* \param strm Pointer to properly prepared lzma_stream
|
||||
* \param strm Pointer to lzma_stream that is at least initialized
|
||||
* with LZMA_STREAM_INIT.
|
||||
* \param options Pointer to multithreaded compression options
|
||||
*
|
||||
* \return - LZMA_OK
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK
|
||||
* - LZMA_MEM_ERROR
|
||||
* - LZMA_UNSUPPORTED_CHECK
|
||||
* - LZMA_OPTIONS_ERROR
|
||||
@@ -374,7 +450,12 @@ extern LZMA_API(lzma_ret) lzma_stream_encoder_mt(
|
||||
* No kind of flushing is supported, because the file format doesn't make
|
||||
* it possible.
|
||||
*
|
||||
* \return - LZMA_OK
|
||||
* \param strm Pointer to lzma_stream that is at least initialized
|
||||
* with LZMA_STREAM_INIT.
|
||||
* \param options Pointer to encoder options
|
||||
*
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK
|
||||
* - LZMA_MEM_ERROR
|
||||
* - LZMA_OPTIONS_ERROR
|
||||
* - LZMA_PROG_ERROR
|
||||
@@ -387,7 +468,7 @@ extern LZMA_API(lzma_ret) lzma_alone_encoder(
|
||||
/**
|
||||
* \brief Calculate output buffer size for single-call Stream encoder
|
||||
*
|
||||
* When trying to compress uncompressible data, the encoded size will be
|
||||
* When trying to compress incompressible data, the encoded size will be
|
||||
* slightly bigger than the input data. This function calculates how much
|
||||
* output buffer space is required to be sure that lzma_stream_buffer_encode()
|
||||
* doesn't return LZMA_BUF_ERROR.
|
||||
@@ -403,8 +484,13 @@ extern LZMA_API(lzma_ret) lzma_alone_encoder(
|
||||
* \note The limit calculated by this function applies only to
|
||||
* single-call encoding. Multi-call encoding may (and probably
|
||||
* will) have larger maximum expansion when encoding
|
||||
* uncompressible data. Currently there is no function to
|
||||
* incompressible data. Currently there is no function to
|
||||
* calculate the maximum expansion of multi-call encoding.
|
||||
*
|
||||
* \param uncompressed_size Size in bytes of the uncompressed
|
||||
* input data
|
||||
*
|
||||
* \return Maximum number of bytes needed to store the compressed data.
|
||||
*/
|
||||
extern LZMA_API(size_t) lzma_stream_buffer_bound(size_t uncompressed_size)
|
||||
lzma_nothrow;
|
||||
@@ -413,22 +499,23 @@ extern LZMA_API(size_t) lzma_stream_buffer_bound(size_t uncompressed_size)
|
||||
/**
|
||||
* \brief Single-call .xz Stream encoder
|
||||
*
|
||||
* \param filters Array of filters. This must be terminated with
|
||||
* filters[n].id = LZMA_VLI_UNKNOWN. See filter.h
|
||||
* for more information.
|
||||
* \param filters Array of filters terminated with
|
||||
* .id == LZMA_VLI_UNKNOWN. See filters.h for more
|
||||
* information.
|
||||
* \param check Type of the integrity check to calculate from
|
||||
* uncompressed data.
|
||||
* \param allocator lzma_allocator for custom allocator functions.
|
||||
* Set to NULL to use malloc() and free().
|
||||
* \param in Beginning of the input buffer
|
||||
* \param in_size Size of the input buffer
|
||||
* \param out Beginning of the output buffer
|
||||
* \param out_pos The next byte will be written to out[*out_pos].
|
||||
* \param[out] out Beginning of the output buffer
|
||||
* \param[out] out_pos The next byte will be written to out[*out_pos].
|
||||
* *out_pos is updated only if encoding succeeds.
|
||||
* \param out_size Size of the out buffer; the first byte into
|
||||
* which no data is written to is out[out_size].
|
||||
*
|
||||
* \return - LZMA_OK: Encoding was successful.
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Encoding was successful.
|
||||
* - LZMA_BUF_ERROR: Not enough output buffer space.
|
||||
* - LZMA_UNSUPPORTED_CHECK
|
||||
* - LZMA_OPTIONS_ERROR
|
||||
@@ -444,6 +531,66 @@ extern LZMA_API(lzma_ret) lzma_stream_buffer_encode(
|
||||
lzma_nothrow lzma_attr_warn_unused_result;
|
||||
|
||||
|
||||
/**
|
||||
* \brief MicroLZMA encoder
|
||||
*
|
||||
* The MicroLZMA format is a raw LZMA stream whose first byte (always 0x00)
|
||||
* has been replaced with bitwise-negation of the LZMA properties (lc/lp/pb).
|
||||
* This encoding ensures that the first byte of MicroLZMA stream is never
|
||||
* 0x00. There is no end of payload marker and thus the uncompressed size
|
||||
* must be stored separately. For the best error detection the dictionary
|
||||
* size should be stored separately as well but alternatively one may use
|
||||
* the uncompressed size as the dictionary size when decoding.
|
||||
*
|
||||
* With the MicroLZMA encoder, lzma_code() behaves slightly unusually.
|
||||
* The action argument must be LZMA_FINISH and the return value will never be
|
||||
* LZMA_OK. Thus the encoding is always done with a single lzma_code() after
|
||||
* the initialization. The benefit of the combination of initialization
|
||||
* function and lzma_code() is that memory allocations can be re-used for
|
||||
* better performance.
|
||||
*
|
||||
* lzma_code() will try to encode as much input as is possible to fit into
|
||||
* the given output buffer. If not all input can be encoded, the stream will
|
||||
* be finished without encoding all the input. The caller must check both
|
||||
* input and output buffer usage after lzma_code() (total_in and total_out
|
||||
* in lzma_stream can be convenient). Often lzma_code() can fill the output
|
||||
* buffer completely if there is a lot of input, but sometimes a few bytes
|
||||
* may remain unused because the next LZMA symbol would require more space.
|
||||
*
|
||||
* lzma_stream.avail_out must be at least 6. Otherwise LZMA_PROG_ERROR
|
||||
* will be returned.
|
||||
*
|
||||
* The LZMA dictionary should be reasonably low to speed up the encoder
|
||||
* re-initialization. A good value is bigger than the resulting
|
||||
* uncompressed size of most of the output chunks. For example, if output
|
||||
* size is 4 KiB, dictionary size of 32 KiB or 64 KiB is good. If the
|
||||
* data compresses extremely well, even 128 KiB may be useful.
|
||||
*
|
||||
* The MicroLZMA format and this encoder variant were made with the EROFS
|
||||
* file system in mind. This format may be convenient in other embedded
|
||||
* uses too where many small streams are needed. XZ Embedded includes a
|
||||
* decoder for this format.
|
||||
*
|
||||
* \param strm Pointer to lzma_stream that is at least initialized
|
||||
* with LZMA_STREAM_INIT.
|
||||
* \param options Pointer to encoder options
|
||||
*
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_STREAM_END: All good. Check the amounts of input used
|
||||
* and output produced. Store the amount of input used
|
||||
* (uncompressed size) as it needs to be known to decompress
|
||||
* the data.
|
||||
* - LZMA_OPTIONS_ERROR
|
||||
* - LZMA_MEM_ERROR
|
||||
* - LZMA_PROG_ERROR: In addition to the generic reasons for this
|
||||
* error code, this may also be returned if there isn't enough
|
||||
* output space (6 bytes) to create a valid MicroLZMA stream.
|
||||
*/
|
||||
extern LZMA_API(lzma_ret) lzma_microlzma_encoder(
|
||||
lzma_stream *strm, const lzma_options_lzma *options)
|
||||
lzma_nothrow;
|
||||
|
||||
|
||||
/************
|
||||
* Decoding *
|
||||
************/
|
||||
@@ -501,8 +648,8 @@ extern LZMA_API(lzma_ret) lzma_stream_buffer_encode(
|
||||
/**
|
||||
* This flag enables decoding of concatenated files with file formats that
|
||||
* allow concatenating compressed files as is. From the formats currently
|
||||
* supported by liblzma, only the .xz format allows concatenated files.
|
||||
* Concatenated files are not allowed with the legacy .lzma format.
|
||||
* supported by liblzma, only the .xz and .lz formats allow concatenated
|
||||
* files. Concatenated files are not allowed with the legacy .lzma format.
|
||||
*
|
||||
* This flag also affects the usage of the `action' argument for lzma_code().
|
||||
* When LZMA_CONCATENATED is used, lzma_code() won't return LZMA_STREAM_END
|
||||
@@ -515,10 +662,40 @@ extern LZMA_API(lzma_ret) lzma_stream_buffer_encode(
|
||||
#define LZMA_CONCATENATED UINT32_C(0x08)
|
||||
|
||||
|
||||
/**
|
||||
* This flag makes the threaded decoder report errors (like LZMA_DATA_ERROR)
|
||||
* as soon as they are detected. This saves time when the application has no
|
||||
* interest in a partially decompressed truncated or corrupt file. Note that
|
||||
* due to timing randomness, if the same truncated or corrupt input is
|
||||
* decompressed multiple times with this flag, a different amount of output
|
||||
* may be produced by different runs, and even the error code might vary.
|
||||
*
|
||||
* When using LZMA_FAIL_FAST, it is recommended to use LZMA_FINISH to tell
|
||||
* the decoder when no more input will be coming because it can help fast
|
||||
* detection and reporting of truncated files. Note that in this situation
|
||||
* truncated files might be diagnosed with LZMA_DATA_ERROR instead of
|
||||
* LZMA_OK or LZMA_BUF_ERROR!
|
||||
*
|
||||
* Without this flag the threaded decoder will provide as much output as
|
||||
* possible at first and then report the pending error. This default behavior
|
||||
* matches the single-threaded decoder and provides repeatable behavior
|
||||
* with truncated or corrupt input. There are a few special cases where the
|
||||
* behavior can still differ like memory allocation failures (LZMA_MEM_ERROR).
|
||||
*
|
||||
* Single-threaded decoders currently ignore this flag.
|
||||
*
|
||||
* Support for this flag was added in liblzma 5.3.3alpha. Note that in older
|
||||
* versions this flag isn't supported (LZMA_OPTIONS_ERROR) even by functions
|
||||
* that ignore this flag in newer liblzma versions.
|
||||
*/
|
||||
#define LZMA_FAIL_FAST UINT32_C(0x20)
|
||||
|
||||
|
||||
/**
|
||||
* \brief Initialize .xz Stream decoder
|
||||
*
|
||||
* \param strm Pointer to properly prepared lzma_stream
|
||||
* \param strm Pointer to lzma_stream that is at least initialized
|
||||
* with LZMA_STREAM_INIT.
|
||||
* \param memlimit Memory usage limit as bytes. Use UINT64_MAX
|
||||
* to effectively disable the limiter. liblzma
|
||||
* 5.2.3 and earlier don't allow 0 here and return
|
||||
@@ -527,9 +704,10 @@ extern LZMA_API(lzma_ret) lzma_stream_buffer_encode(
|
||||
* \param flags Bitwise-or of zero or more of the decoder flags:
|
||||
* LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK,
|
||||
* LZMA_TELL_ANY_CHECK, LZMA_IGNORE_CHECK,
|
||||
* LZMA_CONCATENATED
|
||||
* LZMA_CONCATENATED, LZMA_FAIL_FAST
|
||||
*
|
||||
* \return - LZMA_OK: Initialization was successful.
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Initialization was successful.
|
||||
* - LZMA_MEM_ERROR: Cannot allocate memory.
|
||||
* - LZMA_OPTIONS_ERROR: Unsupported flags
|
||||
* - LZMA_PROG_ERROR
|
||||
@@ -540,11 +718,45 @@ extern LZMA_API(lzma_ret) lzma_stream_decoder(
|
||||
|
||||
|
||||
/**
|
||||
* \brief Decode .xz Streams and .lzma files with autodetection
|
||||
* \brief Initialize multithreaded .xz Stream decoder
|
||||
*
|
||||
* This decoder autodetects between the .xz and .lzma file formats, and
|
||||
* calls lzma_stream_decoder() or lzma_alone_decoder() once the type
|
||||
* of the input file has been detected.
|
||||
* The decoder can decode multiple Blocks in parallel. This requires that each
|
||||
* Block Header contains the Compressed Size and Uncompressed size fields
|
||||
* which are added by the multi-threaded encoder, see lzma_stream_encoder_mt().
|
||||
*
|
||||
* A Stream with one Block will only utilize one thread. A Stream with multiple
|
||||
* Blocks but without size information in Block Headers will be processed in
|
||||
* single-threaded mode in the same way as done by lzma_stream_decoder().
|
||||
* Concatenated Streams are processed one Stream at a time; no inter-Stream
|
||||
* parallelization is done.
|
||||
*
|
||||
* This function behaves like lzma_stream_decoder() when options->threads == 1
|
||||
* and options->memlimit_threading <= 1.
|
||||
*
|
||||
* \param strm Pointer to lzma_stream that is at least initialized
|
||||
* with LZMA_STREAM_INIT.
|
||||
* \param options Pointer to multithreaded compression options
|
||||
*
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Initialization was successful.
|
||||
* - LZMA_MEM_ERROR: Cannot allocate memory.
|
||||
* - LZMA_MEMLIMIT_ERROR: Memory usage limit was reached.
|
||||
* - LZMA_OPTIONS_ERROR: Unsupported flags.
|
||||
* - LZMA_PROG_ERROR
|
||||
*/
|
||||
extern LZMA_API(lzma_ret) lzma_stream_decoder_mt(
|
||||
lzma_stream *strm, const lzma_mt *options)
|
||||
lzma_nothrow lzma_attr_warn_unused_result;
|
||||
|
||||
|
||||
/**
|
||||
* \brief Decode .xz, .lzma, and .lz (lzip) files with autodetection
|
||||
*
|
||||
* This decoder autodetects between the .xz, .lzma, and .lz file formats,
|
||||
* and calls lzma_stream_decoder(), lzma_alone_decoder(), or
|
||||
* lzma_lzip_decoder() once the type of the input file has been detected.
|
||||
*
|
||||
* Support for .lz was added in 5.4.0.
|
||||
*
|
||||
* If the flag LZMA_CONCATENATED is used and the input is a .lzma file:
|
||||
* For historical reasons concatenated .lzma files aren't supported.
|
||||
@@ -553,7 +765,8 @@ extern LZMA_API(lzma_ret) lzma_stream_decoder(
|
||||
* as it doesn't support any decoder flags. It will return LZMA_STREAM_END
|
||||
* after one .lzma stream.)
|
||||
*
|
||||
* \param strm Pointer to properly prepared lzma_stream
|
||||
* \param strm Pointer to lzma_stream that is at least initialized
|
||||
* with LZMA_STREAM_INIT.
|
||||
* \param memlimit Memory usage limit as bytes. Use UINT64_MAX
|
||||
* to effectively disable the limiter. liblzma
|
||||
* 5.2.3 and earlier don't allow 0 here and return
|
||||
@@ -562,9 +775,10 @@ extern LZMA_API(lzma_ret) lzma_stream_decoder(
|
||||
* \param flags Bitwise-or of zero or more of the decoder flags:
|
||||
* LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK,
|
||||
* LZMA_TELL_ANY_CHECK, LZMA_IGNORE_CHECK,
|
||||
* LZMA_CONCATENATED
|
||||
* LZMA_CONCATENATED, LZMA_FAIL_FAST
|
||||
*
|
||||
* \return - LZMA_OK: Initialization was successful.
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Initialization was successful.
|
||||
* - LZMA_MEM_ERROR: Cannot allocate memory.
|
||||
* - LZMA_OPTIONS_ERROR: Unsupported flags
|
||||
* - LZMA_PROG_ERROR
|
||||
@@ -577,18 +791,20 @@ extern LZMA_API(lzma_ret) lzma_auto_decoder(
|
||||
/**
|
||||
* \brief Initialize .lzma decoder (legacy file format)
|
||||
*
|
||||
* \param strm Pointer to properly prepared lzma_stream
|
||||
* Valid `action' arguments to lzma_code() are LZMA_RUN and LZMA_FINISH.
|
||||
* There is no need to use LZMA_FINISH, but it's allowed because it may
|
||||
* simplify certain types of applications.
|
||||
*
|
||||
* \param strm Pointer to lzma_stream that is at least initialized
|
||||
* with LZMA_STREAM_INIT.
|
||||
* \param memlimit Memory usage limit as bytes. Use UINT64_MAX
|
||||
* to effectively disable the limiter. liblzma
|
||||
* 5.2.3 and earlier don't allow 0 here and return
|
||||
* LZMA_PROG_ERROR; later versions treat 0 as if 1
|
||||
* had been specified.
|
||||
*
|
||||
* Valid `action' arguments to lzma_code() are LZMA_RUN and LZMA_FINISH.
|
||||
* There is no need to use LZMA_FINISH, but it's allowed because it may
|
||||
* simplify certain types of applications.
|
||||
*
|
||||
* \return - LZMA_OK
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK
|
||||
* - LZMA_MEM_ERROR
|
||||
* - LZMA_PROG_ERROR
|
||||
*/
|
||||
@@ -597,6 +813,66 @@ extern LZMA_API(lzma_ret) lzma_alone_decoder(
|
||||
lzma_nothrow lzma_attr_warn_unused_result;
|
||||
|
||||
|
||||
/**
|
||||
* \brief Initialize .lz (lzip) decoder (a foreign file format)
|
||||
*
|
||||
* This decoder supports the .lz format version 0 and the unextended .lz
|
||||
* format version 1:
|
||||
*
|
||||
* - Files in the format version 0 were produced by lzip 1.3 and older.
|
||||
* Such files aren't common but may be found from file archives
|
||||
* as a few source packages were released in this format. People
|
||||
* might have old personal files in this format too. Decompression
|
||||
* support for the format version 0 was removed in lzip 1.18.
|
||||
*
|
||||
* - lzip 1.3 added decompression support for .lz format version 1 files.
|
||||
* Compression support was added in lzip 1.4. In lzip 1.6 the .lz format
|
||||
* version 1 was extended to support the Sync Flush marker. This extension
|
||||
* is not supported by liblzma. lzma_code() will return LZMA_DATA_ERROR
|
||||
* at the location of the Sync Flush marker. In practice files with
|
||||
* the Sync Flush marker are very rare and thus liblzma can decompress
|
||||
* almost all .lz files.
|
||||
*
|
||||
* Just like with lzma_stream_decoder() for .xz files, LZMA_CONCATENATED
|
||||
* should be used when decompressing normal standalone .lz files.
|
||||
*
|
||||
* The .lz format allows putting non-.lz data at the end of a file after at
|
||||
* least one valid .lz member. That is, one can append custom data at the end
|
||||
* of a .lz file and the decoder is required to ignore it. In liblzma this
|
||||
* is relevant only when LZMA_CONCATENATED is used. In that case lzma_code()
|
||||
* will return LZMA_STREAM_END and leave lzma_stream.next_in pointing to
|
||||
* the first byte of the non-.lz data. An exception to this is if the first
|
||||
* 1-3 bytes of the non-.lz data are identical to the .lz magic bytes
|
||||
* (0x4C, 0x5A, 0x49, 0x50; "LZIP" in US-ASCII). In such a case the 1-3 bytes
|
||||
* will have been ignored by lzma_code(). If one wishes to locate the non-.lz
|
||||
* data reliably, one must ensure that the first byte isn't 0x4C. Actually
|
||||
* one should ensure that none of the first four bytes of trailing data are
|
||||
* equal to the magic bytes because lzip >= 1.20 requires it by default.
|
||||
*
|
||||
* \param strm Pointer to lzma_stream that is at least initialized
|
||||
* with LZMA_STREAM_INIT.
|
||||
* \param memlimit Memory usage limit as bytes. Use UINT64_MAX
|
||||
* to effectively disable the limiter.
|
||||
* \param flags Bitwise-or of flags, or zero for no flags.
|
||||
* All decoder flags listed above are supported
|
||||
* although only LZMA_CONCATENATED and (in very rare
|
||||
* cases) LZMA_IGNORE_CHECK are actually useful.
|
||||
* LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK,
|
||||
* and LZMA_FAIL_FAST do nothing. LZMA_TELL_ANY_CHECK
|
||||
* is supported for consistency only as CRC32 is
|
||||
* always used in the .lz format.
|
||||
*
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Initialization was successful.
|
||||
* - LZMA_MEM_ERROR: Cannot allocate memory.
|
||||
* - LZMA_OPTIONS_ERROR: Unsupported flags
|
||||
* - LZMA_PROG_ERROR
|
||||
*/
|
||||
extern LZMA_API(lzma_ret) lzma_lzip_decoder(
|
||||
lzma_stream *strm, uint64_t memlimit, uint32_t flags)
|
||||
lzma_nothrow lzma_attr_warn_unused_result;
|
||||
|
||||
|
||||
/**
|
||||
* \brief Single-call .xz Stream decoder
|
||||
*
|
||||
@@ -606,9 +882,9 @@ extern LZMA_API(lzma_ret) lzma_alone_decoder(
|
||||
* returned.
|
||||
* \param flags Bitwise-or of zero or more of the decoder flags:
|
||||
* LZMA_TELL_NO_CHECK, LZMA_TELL_UNSUPPORTED_CHECK,
|
||||
* LZMA_IGNORE_CHECK, LZMA_CONCATENATED. Note that
|
||||
* LZMA_TELL_ANY_CHECK is not allowed and will
|
||||
* return LZMA_PROG_ERROR.
|
||||
* LZMA_IGNORE_CHECK, LZMA_CONCATENATED,
|
||||
* LZMA_FAIL_FAST. Note that LZMA_TELL_ANY_CHECK
|
||||
* is not allowed and will return LZMA_PROG_ERROR.
|
||||
* \param allocator lzma_allocator for custom allocator functions.
|
||||
* Set to NULL to use malloc() and free().
|
||||
* \param in Beginning of the input buffer
|
||||
@@ -616,13 +892,14 @@ extern LZMA_API(lzma_ret) lzma_alone_decoder(
|
||||
* *in_pos is updated only if decoding succeeds.
|
||||
* \param in_size Size of the input buffer; the first byte that
|
||||
* won't be read is in[in_size].
|
||||
* \param out Beginning of the output buffer
|
||||
* \param out_pos The next byte will be written to out[*out_pos].
|
||||
* \param[out] out Beginning of the output buffer
|
||||
* \param[out] out_pos The next byte will be written to out[*out_pos].
|
||||
* *out_pos is updated only if decoding succeeds.
|
||||
* \param out_size Size of the out buffer; the first byte into
|
||||
* which no data is written to is out[out_size].
|
||||
*
|
||||
* \return - LZMA_OK: Decoding was successful.
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Decoding was successful.
|
||||
* - LZMA_FORMAT_ERROR
|
||||
* - LZMA_OPTIONS_ERROR
|
||||
* - LZMA_DATA_ERROR
|
||||
@@ -642,3 +919,50 @@ extern LZMA_API(lzma_ret) lzma_stream_buffer_decode(
|
||||
const uint8_t *in, size_t *in_pos, size_t in_size,
|
||||
uint8_t *out, size_t *out_pos, size_t out_size)
|
||||
lzma_nothrow lzma_attr_warn_unused_result;
|
||||
|
||||
|
||||
/**
|
||||
* \brief MicroLZMA decoder
|
||||
*
|
||||
* See lzma_microlzma_encoder() for more information.
|
||||
*
|
||||
* The lzma_code() usage with this decoder is completely normal. The
|
||||
* special behavior of lzma_code() applies to lzma_microlzma_encoder() only.
|
||||
*
|
||||
* \param strm Pointer to lzma_stream that is at least initialized
|
||||
* with LZMA_STREAM_INIT.
|
||||
* \param comp_size Compressed size of the MicroLZMA stream.
|
||||
* The caller must somehow know this exactly.
|
||||
* \param uncomp_size Uncompressed size of the MicroLZMA stream.
|
||||
* If the exact uncompressed size isn't known, this
|
||||
* can be set to a value that is at most as big as
|
||||
* the exact uncompressed size would be, but then the
|
||||
* next argument uncomp_size_is_exact must be false.
|
||||
* \param uncomp_size_is_exact
|
||||
* If true, uncomp_size must be exactly correct.
|
||||
* This will improve error detection at the end of
|
||||
* the stream. If the exact uncompressed size isn't
|
||||
* known, this must be false. uncomp_size must still
|
||||
* be at most as big as the exact uncompressed size
|
||||
* is. Setting this to false when the exact size is
|
||||
* known will work but error detection at the end of
|
||||
* the stream will be weaker.
|
||||
* \param dict_size LZMA dictionary size that was used when
|
||||
* compressing the data. It is OK to use a bigger
|
||||
* value too but liblzma will then allocate more
|
||||
* memory than would actually be required and error
|
||||
* detection will be slightly worse. (Note that with
|
||||
* the implementation in XZ Embedded it doesn't
|
||||
* affect the memory usage if one specifies bigger
|
||||
* dictionary than actually required.)
|
||||
*
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK
|
||||
* - LZMA_MEM_ERROR
|
||||
* - LZMA_OPTIONS_ERROR
|
||||
* - LZMA_PROG_ERROR
|
||||
*/
|
||||
extern LZMA_API(lzma_ret) lzma_microlzma_decoder(
|
||||
lzma_stream *strm, uint64_t comp_size,
|
||||
uint64_t uncomp_size, lzma_bool uncomp_size_is_exact,
|
||||
uint32_t dict_size) lzma_nothrow;
|
||||
|
||||
23
.CondaPkg/env/Library/include/lzma/delta.h
vendored
23
.CondaPkg/env/Library/include/lzma/delta.h
vendored
@@ -1,6 +1,7 @@
|
||||
/**
|
||||
* \file lzma/delta.h
|
||||
* \brief Delta filter
|
||||
* \note Never include this file directly. Use <lzma.h> instead.
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -8,8 +9,6 @@
|
||||
*
|
||||
* This file has been put into the public domain.
|
||||
* You can do whatever you want with this file.
|
||||
*
|
||||
* See ../lzma.h for information about liblzma as a whole.
|
||||
*/
|
||||
|
||||
#ifndef LZMA_H_INTERNAL
|
||||
@@ -57,7 +56,15 @@ typedef struct {
|
||||
* - 24-bit RGB image data: distance = 3 bytes
|
||||
*/
|
||||
uint32_t dist;
|
||||
|
||||
/**
|
||||
* \brief Minimum value for lzma_options_delta.dist.
|
||||
*/
|
||||
# define LZMA_DELTA_DIST_MIN 1
|
||||
|
||||
/**
|
||||
* \brief Maximum value for lzma_options_delta.dist.
|
||||
*/
|
||||
# define LZMA_DELTA_DIST_MAX 256
|
||||
|
||||
/*
|
||||
@@ -67,11 +74,23 @@ typedef struct {
|
||||
* when type is LZMA_DELTA_TYPE_BYTE, so it is safe to leave these
|
||||
* uninitialized.
|
||||
*/
|
||||
|
||||
/** \private Reserved member. */
|
||||
uint32_t reserved_int1;
|
||||
|
||||
/** \private Reserved member. */
|
||||
uint32_t reserved_int2;
|
||||
|
||||
/** \private Reserved member. */
|
||||
uint32_t reserved_int3;
|
||||
|
||||
/** \private Reserved member. */
|
||||
uint32_t reserved_int4;
|
||||
|
||||
/** \private Reserved member. */
|
||||
void *reserved_ptr1;
|
||||
|
||||
/** \private Reserved member. */
|
||||
void *reserved_ptr2;
|
||||
|
||||
} lzma_options_delta;
|
||||
|
||||
505
.CondaPkg/env/Library/include/lzma/filter.h
vendored
505
.CondaPkg/env/Library/include/lzma/filter.h
vendored
@@ -1,6 +1,7 @@
|
||||
/**
|
||||
* \file lzma/filter.h
|
||||
* \brief Common filter related types and functions
|
||||
* \note Never include this file directly. Use <lzma.h> instead.
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -8,8 +9,6 @@
|
||||
*
|
||||
* This file has been put into the public domain.
|
||||
* You can do whatever you want with this file.
|
||||
*
|
||||
* See ../lzma.h for information about liblzma as a whole.
|
||||
*/
|
||||
|
||||
#ifndef LZMA_H_INTERNAL
|
||||
@@ -29,7 +28,7 @@
|
||||
/**
|
||||
* \brief Filter options
|
||||
*
|
||||
* This structure is used to pass Filter ID and a pointer filter's
|
||||
* This structure is used to pass a Filter ID and a pointer to the filter's
|
||||
* options to liblzma. A few functions work with a single lzma_filter
|
||||
* structure, while most functions expect a filter chain.
|
||||
*
|
||||
@@ -37,8 +36,8 @@
|
||||
* The array is terminated with .id = LZMA_VLI_UNKNOWN. Thus, the filter
|
||||
* array must have LZMA_FILTERS_MAX + 1 elements (that is, five) to
|
||||
* be able to hold any arbitrary filter chain. This is important when
|
||||
* using lzma_block_header_decode() from block.h, because too small
|
||||
* array would make liblzma write past the end of the filters array.
|
||||
* using lzma_block_header_decode() from block.h, because a filter array
|
||||
* that is too small would make liblzma write past the end of the array.
|
||||
*/
|
||||
typedef struct {
|
||||
/**
|
||||
@@ -68,12 +67,12 @@ typedef struct {
|
||||
/**
|
||||
* \brief Test if the given Filter ID is supported for encoding
|
||||
*
|
||||
* Return true if the give Filter ID is supported for encoding by this
|
||||
* liblzma build. Otherwise false is returned.
|
||||
* \param id Filter ID
|
||||
*
|
||||
* There is no way to list which filters are available in this particular
|
||||
* liblzma version and build. It would be useless, because the application
|
||||
* couldn't know what kind of options the filter would need.
|
||||
* \return lzma_bool:
|
||||
* - true if the Filter ID is supported for encoding by this
|
||||
* liblzma build.
|
||||
* - false otherwise.
|
||||
*/
|
||||
extern LZMA_API(lzma_bool) lzma_filter_encoder_is_supported(lzma_vli id)
|
||||
lzma_nothrow lzma_attr_const;
|
||||
@@ -82,8 +81,12 @@ extern LZMA_API(lzma_bool) lzma_filter_encoder_is_supported(lzma_vli id)
|
||||
/**
|
||||
* \brief Test if the given Filter ID is supported for decoding
|
||||
*
|
||||
* Return true if the give Filter ID is supported for decoding by this
|
||||
* liblzma build. Otherwise false is returned.
|
||||
* \param id Filter ID
|
||||
*
|
||||
* \return lzma_bool:
|
||||
* - true if the Filter ID is supported for decoding by this
|
||||
* liblzma build.
|
||||
* - false otherwise.
|
||||
*/
|
||||
extern LZMA_API(lzma_bool) lzma_filter_decoder_is_supported(lzma_vli id)
|
||||
lzma_nothrow lzma_attr_const;
|
||||
@@ -112,7 +115,14 @@ extern LZMA_API(lzma_bool) lzma_filter_decoder_is_supported(lzma_vli id)
|
||||
* array and leave its contents in an undefined state if an error occurs.
|
||||
* liblzma 5.2.7 and newer only modify the dest array when returning LZMA_OK.
|
||||
*
|
||||
* \return - LZMA_OK
|
||||
* \param src Array of filters terminated with
|
||||
* .id == LZMA_VLI_UNKNOWN.
|
||||
* \param[out] dest Destination filter array
|
||||
* \param allocator lzma_allocator for custom allocator functions.
|
||||
* Set to NULL to use malloc() and free().
|
||||
*
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK
|
||||
* - LZMA_MEM_ERROR
|
||||
* - LZMA_OPTIONS_ERROR: Unsupported Filter ID and its options
|
||||
* is not NULL.
|
||||
@@ -124,6 +134,32 @@ extern LZMA_API(lzma_ret) lzma_filters_copy(
|
||||
lzma_nothrow lzma_attr_warn_unused_result;
|
||||
|
||||
|
||||
/**
|
||||
* \brief Free the options in the array of lzma_filter structures
|
||||
*
|
||||
* This frees the filter chain options. The filters array itself is not freed.
|
||||
*
|
||||
* The filters array must have at most LZMA_FILTERS_MAX + 1 elements
|
||||
* including the terminating element which must have .id = LZMA_VLI_UNKNOWN.
|
||||
* For all elements before the terminating element:
|
||||
* - options will be freed using the given lzma_allocator or,
|
||||
* if allocator is NULL, using free().
|
||||
* - options will be set to NULL.
|
||||
* - id will be set to LZMA_VLI_UNKNOWN.
|
||||
*
|
||||
* If filters is NULL, this does nothing. Again, this never frees the
|
||||
* filters array itself.
|
||||
*
|
||||
* \param filters Array of filters terminated with
|
||||
* .id == LZMA_VLI_UNKNOWN.
|
||||
* \param allocator lzma_allocator for custom allocator functions.
|
||||
* Set to NULL to use malloc() and free().
|
||||
*/
|
||||
extern LZMA_API(void) lzma_filters_free(
|
||||
lzma_filter *filters, const lzma_allocator *allocator)
|
||||
lzma_nothrow;
|
||||
|
||||
|
||||
/**
|
||||
* \brief Calculate approximate memory requirements for raw encoder
|
||||
*
|
||||
@@ -135,9 +171,7 @@ extern LZMA_API(lzma_ret) lzma_filters_copy(
|
||||
* .id == LZMA_VLI_UNKNOWN.
|
||||
*
|
||||
* \return Number of bytes of memory required for the given
|
||||
* filter chain when encoding. If an error occurs,
|
||||
* for example due to unsupported filter chain,
|
||||
* UINT64_MAX is returned.
|
||||
* filter chain when encoding or UINT64_MAX on error.
|
||||
*/
|
||||
extern LZMA_API(uint64_t) lzma_raw_encoder_memusage(const lzma_filter *filters)
|
||||
lzma_nothrow lzma_attr_pure;
|
||||
@@ -154,9 +188,7 @@ extern LZMA_API(uint64_t) lzma_raw_encoder_memusage(const lzma_filter *filters)
|
||||
* .id == LZMA_VLI_UNKNOWN.
|
||||
*
|
||||
* \return Number of bytes of memory required for the given
|
||||
* filter chain when decoding. If an error occurs,
|
||||
* for example due to unsupported filter chain,
|
||||
* UINT64_MAX is returned.
|
||||
* filter chain when decoding or UINT64_MAX on error.
|
||||
*/
|
||||
extern LZMA_API(uint64_t) lzma_raw_decoder_memusage(const lzma_filter *filters)
|
||||
lzma_nothrow lzma_attr_pure;
|
||||
@@ -167,14 +199,16 @@ extern LZMA_API(uint64_t) lzma_raw_decoder_memusage(const lzma_filter *filters)
|
||||
*
|
||||
* This function may be useful when implementing custom file formats.
|
||||
*
|
||||
* \param strm Pointer to properly prepared lzma_stream
|
||||
* \param filters Array of lzma_filter structures. The end of the
|
||||
* array must be marked with .id = LZMA_VLI_UNKNOWN.
|
||||
*
|
||||
* The `action' with lzma_code() can be LZMA_RUN, LZMA_SYNC_FLUSH (if the
|
||||
* filter chain supports it), or LZMA_FINISH.
|
||||
*
|
||||
* \return - LZMA_OK
|
||||
* \param strm Pointer to lzma_stream that is at least
|
||||
* initialized with LZMA_STREAM_INIT.
|
||||
* \param filters Array of filters terminated with
|
||||
* .id == LZMA_VLI_UNKNOWN.
|
||||
*
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK
|
||||
* - LZMA_MEM_ERROR
|
||||
* - LZMA_OPTIONS_ERROR
|
||||
* - LZMA_PROG_ERROR
|
||||
@@ -192,7 +226,13 @@ extern LZMA_API(lzma_ret) lzma_raw_encoder(
|
||||
* The `action' with lzma_code() can be LZMA_RUN or LZMA_FINISH. Using
|
||||
* LZMA_FINISH is not required, it is supported just for convenience.
|
||||
*
|
||||
* \return - LZMA_OK
|
||||
* \param strm Pointer to lzma_stream that is at least
|
||||
* initialized with LZMA_STREAM_INIT.
|
||||
* \param filters Array of filters terminated with
|
||||
* .id == LZMA_VLI_UNKNOWN.
|
||||
*
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK
|
||||
* - LZMA_MEM_ERROR
|
||||
* - LZMA_OPTIONS_ERROR
|
||||
* - LZMA_PROG_ERROR
|
||||
@@ -205,24 +245,36 @@ extern LZMA_API(lzma_ret) lzma_raw_decoder(
|
||||
/**
|
||||
* \brief Update the filter chain in the encoder
|
||||
*
|
||||
* This function is for advanced users only. This function has two slightly
|
||||
* different purposes:
|
||||
* This function may be called after lzma_code() has returned LZMA_STREAM_END
|
||||
* when LZMA_FULL_BARRIER, LZMA_FULL_FLUSH, or LZMA_SYNC_FLUSH was used:
|
||||
*
|
||||
* - After LZMA_FULL_FLUSH when using Stream encoder: Set a new filter
|
||||
* chain, which will be used starting from the next Block.
|
||||
* - After LZMA_FULL_BARRIER or LZMA_FULL_FLUSH: Single-threaded .xz Stream
|
||||
* encoder (lzma_stream_encoder()) and (since liblzma 5.4.0) multi-threaded
|
||||
* Stream encoder (lzma_stream_encoder_mt()) allow setting a new filter
|
||||
* chain to be used for the next Block(s).
|
||||
*
|
||||
* - After LZMA_SYNC_FLUSH using Raw, Block, or Stream encoder: Change
|
||||
* the filter-specific options in the middle of encoding. The actual
|
||||
* filters in the chain (Filter IDs) cannot be changed. In the future,
|
||||
* it might become possible to change the filter options without
|
||||
* using LZMA_SYNC_FLUSH.
|
||||
* - After LZMA_SYNC_FLUSH: Raw encoder (lzma_raw_encoder()),
|
||||
* Block encoder (lzma_block_encoder()), and single-threaded .xz Stream
|
||||
* encoder (lzma_stream_encoder()) allow changing certain filter-specific
|
||||
* options in the middle of encoding. The actual filters in the chain
|
||||
* (Filter IDs) must not be changed! Currently only the lc, lp, and pb
|
||||
* options of LZMA2 (not LZMA1) can be changed this way.
|
||||
*
|
||||
* While rarely useful, this function may be called also when no data has
|
||||
* been compressed yet. In that case, this function will behave as if
|
||||
* LZMA_FULL_FLUSH (Stream encoder) or LZMA_SYNC_FLUSH (Raw or Block
|
||||
* - In the future some filters might allow changing some of their options
|
||||
* without any barrier or flushing but currently such filters don't exist.
|
||||
*
|
||||
* This function may also be called when no data has been compressed yet
|
||||
* although this is rarely useful. In that case, this function will behave
|
||||
* as if LZMA_FULL_FLUSH (Stream encoders) or LZMA_SYNC_FLUSH (Raw or Block
|
||||
* encoder) had been used right before calling this function.
|
||||
*
|
||||
* \return - LZMA_OK
|
||||
* \param strm Pointer to lzma_stream that is at least
|
||||
* initialized with LZMA_STREAM_INIT.
|
||||
* \param filters Array of filters terminated with
|
||||
* .id == LZMA_VLI_UNKNOWN.
|
||||
*
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK
|
||||
* - LZMA_MEM_ERROR
|
||||
* - LZMA_MEMLIMIT_ERROR
|
||||
* - LZMA_OPTIONS_ERROR
|
||||
@@ -235,29 +287,30 @@ extern LZMA_API(lzma_ret) lzma_filters_update(
|
||||
/**
|
||||
* \brief Single-call raw encoder
|
||||
*
|
||||
* \param filters Array of lzma_filter structures. The end of the
|
||||
* array must be marked with .id = LZMA_VLI_UNKNOWN.
|
||||
* \note There is no function to calculate how big output buffer
|
||||
* would surely be big enough. (lzma_stream_buffer_bound()
|
||||
* works only for lzma_stream_buffer_encode(); raw encoder
|
||||
* won't necessarily meet that bound.)
|
||||
*
|
||||
* \param filters Array of filters terminated with
|
||||
* .id == LZMA_VLI_UNKNOWN.
|
||||
* \param allocator lzma_allocator for custom allocator functions.
|
||||
* Set to NULL to use malloc() and free().
|
||||
* \param in Beginning of the input buffer
|
||||
* \param in_size Size of the input buffer
|
||||
* \param out Beginning of the output buffer
|
||||
* \param out_pos The next byte will be written to out[*out_pos].
|
||||
* \param[out] out Beginning of the output buffer
|
||||
* \param[out] out_pos The next byte will be written to out[*out_pos].
|
||||
* *out_pos is updated only if encoding succeeds.
|
||||
* \param out_size Size of the out buffer; the first byte into
|
||||
* which no data is written to is out[out_size].
|
||||
*
|
||||
* \return - LZMA_OK: Encoding was successful.
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Encoding was successful.
|
||||
* - LZMA_BUF_ERROR: Not enough output buffer space.
|
||||
* - LZMA_OPTIONS_ERROR
|
||||
* - LZMA_MEM_ERROR
|
||||
* - LZMA_DATA_ERROR
|
||||
* - LZMA_PROG_ERROR
|
||||
*
|
||||
* \note There is no function to calculate how big output buffer
|
||||
* would surely be big enough. (lzma_stream_buffer_bound()
|
||||
* works only for lzma_stream_buffer_encode(); raw encoder
|
||||
* won't necessarily meet that bound.)
|
||||
*/
|
||||
extern LZMA_API(lzma_ret) lzma_raw_buffer_encode(
|
||||
const lzma_filter *filters, const lzma_allocator *allocator,
|
||||
@@ -268,8 +321,8 @@ extern LZMA_API(lzma_ret) lzma_raw_buffer_encode(
|
||||
/**
|
||||
* \brief Single-call raw decoder
|
||||
*
|
||||
* \param filters Array of lzma_filter structures. The end of the
|
||||
* array must be marked with .id = LZMA_VLI_UNKNOWN.
|
||||
* \param filters Array of filters terminated with
|
||||
* .id == LZMA_VLI_UNKNOWN.
|
||||
* \param allocator lzma_allocator for custom allocator functions.
|
||||
* Set to NULL to use malloc() and free().
|
||||
* \param in Beginning of the input buffer
|
||||
@@ -277,11 +330,19 @@ extern LZMA_API(lzma_ret) lzma_raw_buffer_encode(
|
||||
* *in_pos is updated only if decoding succeeds.
|
||||
* \param in_size Size of the input buffer; the first byte that
|
||||
* won't be read is in[in_size].
|
||||
* \param out Beginning of the output buffer
|
||||
* \param out_pos The next byte will be written to out[*out_pos].
|
||||
* \param[out] out Beginning of the output buffer
|
||||
* \param[out] out_pos The next byte will be written to out[*out_pos].
|
||||
* *out_pos is updated only if encoding succeeds.
|
||||
* \param out_size Size of the out buffer; the first byte into
|
||||
* which no data is written to is out[out_size].
|
||||
*
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Decoding was successful.
|
||||
* - LZMA_BUF_ERROR: Not enough output buffer space.
|
||||
* - LZMA_OPTIONS_ERROR
|
||||
* - LZMA_MEM_ERROR
|
||||
* - LZMA_DATA_ERROR
|
||||
* - LZMA_PROG_ERROR
|
||||
*/
|
||||
extern LZMA_API(lzma_ret) lzma_raw_buffer_decode(
|
||||
const lzma_filter *filters, const lzma_allocator *allocator,
|
||||
@@ -295,18 +356,19 @@ extern LZMA_API(lzma_ret) lzma_raw_buffer_decode(
|
||||
* This function may be useful when implementing custom file formats
|
||||
* using the raw encoder and decoder.
|
||||
*
|
||||
* \param size Pointer to uint32_t to hold the size of the properties
|
||||
* \param filter Filter ID and options (the size of the properties may
|
||||
* vary depending on the options)
|
||||
*
|
||||
* \return - LZMA_OK
|
||||
* - LZMA_OPTIONS_ERROR
|
||||
* - LZMA_PROG_ERROR
|
||||
*
|
||||
* \note This function validates the Filter ID, but does not
|
||||
* necessarily validate the options. Thus, it is possible
|
||||
* that this returns LZMA_OK while the following call to
|
||||
* lzma_properties_encode() returns LZMA_OPTIONS_ERROR.
|
||||
*
|
||||
* \param[out] size Pointer to uint32_t to hold the size of the properties
|
||||
* \param filter Filter ID and options (the size of the properties may
|
||||
* vary depending on the options)
|
||||
*
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK
|
||||
* - LZMA_OPTIONS_ERROR
|
||||
* - LZMA_PROG_ERROR
|
||||
*/
|
||||
extern LZMA_API(lzma_ret) lzma_properties_size(
|
||||
uint32_t *size, const lzma_filter *filter) lzma_nothrow;
|
||||
@@ -315,15 +377,6 @@ extern LZMA_API(lzma_ret) lzma_properties_size(
|
||||
/**
|
||||
* \brief Encode the Filter Properties field
|
||||
*
|
||||
* \param filter Filter ID and options
|
||||
* \param props Buffer to hold the encoded options. The size of
|
||||
* buffer must have been already determined with
|
||||
* lzma_properties_size().
|
||||
*
|
||||
* \return - LZMA_OK
|
||||
* - LZMA_OPTIONS_ERROR
|
||||
* - LZMA_PROG_ERROR
|
||||
*
|
||||
* \note Even this function won't validate more options than actually
|
||||
* necessary. Thus, it is possible that encoding the properties
|
||||
* succeeds but using the same options to initialize the encoder
|
||||
@@ -333,6 +386,15 @@ extern LZMA_API(lzma_ret) lzma_properties_size(
|
||||
* of the Filter Properties field is zero, calling
|
||||
* lzma_properties_encode() is not required, but it
|
||||
* won't do any harm either.
|
||||
*
|
||||
* \param filter Filter ID and options
|
||||
* \param[out] props Buffer to hold the encoded options. The size of
|
||||
* the buffer must have been already determined with
|
||||
* lzma_properties_size().
|
||||
*
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK
|
||||
* - LZMA_PROG_ERROR
|
||||
*/
|
||||
extern LZMA_API(lzma_ret) lzma_properties_encode(
|
||||
const lzma_filter *filter, uint8_t *props) lzma_nothrow;
|
||||
@@ -348,15 +410,16 @@ extern LZMA_API(lzma_ret) lzma_properties_encode(
|
||||
* it's application's responsibility to free it when
|
||||
* appropriate. filter->options is set to NULL if
|
||||
* there are no properties or if an error occurs.
|
||||
* \param allocator Custom memory allocator used to allocate the
|
||||
* options. Set to NULL to use the default malloc(),
|
||||
* \param allocator lzma_allocator for custom allocator functions.
|
||||
* Set to NULL to use malloc() and free().
|
||||
* and in case of an error, also free().
|
||||
* \param props Input buffer containing the properties.
|
||||
* \param props_size Size of the properties. This must be the exact
|
||||
* size; giving too much or too little input will
|
||||
* return LZMA_OPTIONS_ERROR.
|
||||
*
|
||||
* \return - LZMA_OK
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK
|
||||
* - LZMA_OPTIONS_ERROR
|
||||
* - LZMA_MEM_ERROR
|
||||
*/
|
||||
@@ -371,18 +434,19 @@ extern LZMA_API(lzma_ret) lzma_properties_decode(
|
||||
* Knowing the size of Filter Flags is useful to know when allocating
|
||||
* memory to hold the encoded Filter Flags.
|
||||
*
|
||||
* \param size Pointer to integer to hold the calculated size
|
||||
* \note If you need to calculate size of List of Filter Flags,
|
||||
* you need to loop over every lzma_filter entry.
|
||||
*
|
||||
* \param[out] size Pointer to integer to hold the calculated size
|
||||
* \param filter Filter ID and associated options whose encoded
|
||||
* size is to be calculated
|
||||
*
|
||||
* \return - LZMA_OK: *size set successfully. Note that this doesn't
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: *size set successfully. Note that this doesn't
|
||||
* guarantee that filter->options is valid, thus
|
||||
* lzma_filter_flags_encode() may still fail.
|
||||
* - LZMA_OPTIONS_ERROR: Unknown Filter ID or unsupported options.
|
||||
* - LZMA_PROG_ERROR: Invalid options
|
||||
*
|
||||
* \note If you need to calculate size of List of Filter Flags,
|
||||
* you need to loop over every lzma_filter entry.
|
||||
*/
|
||||
extern LZMA_API(lzma_ret) lzma_filter_flags_size(
|
||||
uint32_t *size, const lzma_filter *filter)
|
||||
@@ -396,12 +460,13 @@ extern LZMA_API(lzma_ret) lzma_filter_flags_size(
|
||||
* This is due to how this function is used internally by liblzma.
|
||||
*
|
||||
* \param filter Filter ID and options to be encoded
|
||||
* \param out Beginning of the output buffer
|
||||
* \param out_pos out[*out_pos] is the next write position. This
|
||||
* \param[out] out Beginning of the output buffer
|
||||
* \param[out] out_pos out[*out_pos] is the next write position. This
|
||||
* is updated by the encoder.
|
||||
* \param out_size out[out_size] is the first byte to not write.
|
||||
*
|
||||
* \return - LZMA_OK: Encoding was successful.
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Encoding was successful.
|
||||
* - LZMA_OPTIONS_ERROR: Invalid or unsupported options.
|
||||
* - LZMA_PROG_ERROR: Invalid options or not enough output
|
||||
* buffer space (you should have checked it with
|
||||
@@ -416,14 +481,290 @@ extern LZMA_API(lzma_ret) lzma_filter_flags_encode(const lzma_filter *filter,
|
||||
* \brief Decode Filter Flags from given buffer
|
||||
*
|
||||
* The decoded result is stored into *filter. The old value of
|
||||
* filter->options is not free()d.
|
||||
* filter->options is not free()d. If anything other than LZMA_OK
|
||||
* is returned, filter->options is set to NULL.
|
||||
*
|
||||
* \return - LZMA_OK
|
||||
* \param[out] filter Destination filter. The decoded Filter ID will
|
||||
* be stored in filter->id. If options are needed
|
||||
* they will be allocated and the pointer will be
|
||||
* stored in filter->options.
|
||||
* \param allocator lzma_allocator for custom allocator functions.
|
||||
* Set to NULL to use malloc() and free().
|
||||
* \param in Beginning of the input buffer
|
||||
* \param[out] in_pos The next byte will be read from in[*in_pos].
|
||||
* *in_pos is updated only if decoding succeeds.
|
||||
* \param in_size Size of the input buffer; the first byte that
|
||||
* won't be read is in[in_size].
|
||||
*
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK
|
||||
* - LZMA_OPTIONS_ERROR
|
||||
* - LZMA_MEM_ERROR
|
||||
* - LZMA_DATA_ERROR
|
||||
* - LZMA_PROG_ERROR
|
||||
*/
|
||||
extern LZMA_API(lzma_ret) lzma_filter_flags_decode(
|
||||
lzma_filter *filter, const lzma_allocator *allocator,
|
||||
const uint8_t *in, size_t *in_pos, size_t in_size)
|
||||
lzma_nothrow lzma_attr_warn_unused_result;
|
||||
|
||||
|
||||
/***********
|
||||
* Strings *
|
||||
***********/
|
||||
|
||||
/**
|
||||
* \brief Allow or show all filters
|
||||
*
|
||||
* By default only the filters supported in the .xz format are accept by
|
||||
* lzma_str_to_filters() or shown by lzma_str_list_filters().
|
||||
*/
|
||||
#define LZMA_STR_ALL_FILTERS UINT32_C(0x01)
|
||||
|
||||
|
||||
/**
|
||||
* \brief Do not validate the filter chain in lzma_str_to_filters()
|
||||
*
|
||||
* By default lzma_str_to_filters() can return an error if the filter chain
|
||||
* as a whole isn't usable in the .xz format or in the raw encoder or decoder.
|
||||
* With this flag, this validation is skipped. This flag doesn't affect the
|
||||
* handling of the individual filter options. To allow non-.xz filters also
|
||||
* LZMA_STR_ALL_FILTERS is needed.
|
||||
*/
|
||||
#define LZMA_STR_NO_VALIDATION UINT32_C(0x02)
|
||||
|
||||
|
||||
/**
|
||||
* \brief Stringify encoder options
|
||||
*
|
||||
* Show the filter-specific options that the encoder will use.
|
||||
* This may be useful for verbose diagnostic messages.
|
||||
*
|
||||
* Note that if options were decoded from .xz headers then the encoder options
|
||||
* may be undefined. This flag shouldn't be used in such a situation.
|
||||
*/
|
||||
#define LZMA_STR_ENCODER UINT32_C(0x10)
|
||||
|
||||
|
||||
/**
|
||||
* \brief Stringify decoder options
|
||||
*
|
||||
* Show the filter-specific options that the decoder will use.
|
||||
* This may be useful for showing what filter options were decoded
|
||||
* from file headers.
|
||||
*/
|
||||
#define LZMA_STR_DECODER UINT32_C(0x20)
|
||||
|
||||
|
||||
/**
|
||||
* \brief Produce xz-compatible getopt_long() syntax
|
||||
*
|
||||
* That is, "delta:dist=2 lzma2:dict=4MiB,pb=1,lp=1" becomes
|
||||
* "--delta=dist=2 --lzma2=dict=4MiB,pb=1,lp=1".
|
||||
*
|
||||
* This syntax is compatible with xz 5.0.0 as long as the filters and
|
||||
* their options are supported too.
|
||||
*/
|
||||
#define LZMA_STR_GETOPT_LONG UINT32_C(0x40)
|
||||
|
||||
|
||||
/**
|
||||
* \brief Use two dashes "--" instead of a space to separate filters
|
||||
*
|
||||
* That is, "delta:dist=2 lzma2:pb=1,lp=1" becomes
|
||||
* "delta:dist=2--lzma2:pb=1,lp=1". This looks slightly odd but this
|
||||
* kind of strings should be usable on the command line without quoting.
|
||||
* However, it is possible that future versions with new filter options
|
||||
* might produce strings that require shell quoting anyway as the exact
|
||||
* set of possible characters isn't frozen for now.
|
||||
*
|
||||
* It is guaranteed that the single quote (') will never be used in
|
||||
* filter chain strings (even if LZMA_STR_NO_SPACES isn't used).
|
||||
*/
|
||||
#define LZMA_STR_NO_SPACES UINT32_C(0x80)
|
||||
|
||||
|
||||
/**
|
||||
* \brief Convert a string to a filter chain
|
||||
*
|
||||
* This tries to make it easier to write applications that allow users
|
||||
* to set custom compression options. This only handles the filter
|
||||
* configuration (including presets) but not the number of threads,
|
||||
* block size, check type, or memory limits.
|
||||
*
|
||||
* The input string can be either a preset or a filter chain. Presets
|
||||
* begin with a digit 0-9 and may be followed by zero or more flags
|
||||
* which are lower-case letters. Currently only "e" is supported, matching
|
||||
* LZMA_PRESET_EXTREME. For partial xz command line syntax compatibility,
|
||||
* a preset string may start with a single dash "-".
|
||||
*
|
||||
* A filter chain consists of one or more "filtername:opt1=value1,opt2=value2"
|
||||
* strings separated by one or more spaces. Leading and trailing spaces are
|
||||
* ignored. All names and values must be lower-case. Extra commas in the
|
||||
* option list are ignored. The order of filters is significant: when
|
||||
* encoding, the uncompressed input data goes to the leftmost filter first.
|
||||
* Normally "lzma2" is the last filter in the chain.
|
||||
*
|
||||
* If one wishes to avoid spaces, for example, to avoid shell quoting,
|
||||
* it is possible to use two dashes "--" instead of spaces to separate
|
||||
* the filters.
|
||||
*
|
||||
* For xz command line compatibility, each filter may be prefixed with
|
||||
* two dashes "--" and the colon ":" separating the filter name from
|
||||
* the options may be replaced with an equals sign "=".
|
||||
*
|
||||
* By default, only filters that can be used in the .xz format are accepted.
|
||||
* To allow all filters (LZMA1) use the flag LZMA_STR_ALL_FILTERS.
|
||||
*
|
||||
* By default, very basic validation is done for the filter chain as a whole,
|
||||
* for example, that LZMA2 is only used as the last filter in the chain.
|
||||
* The validation isn't perfect though and it's possible that this function
|
||||
* succeeds but using the filter chain for encoding or decoding will still
|
||||
* result in LZMA_OPTIONS_ERROR. To disable this validation, use the flag
|
||||
* LZMA_STR_NO_VALIDATION.
|
||||
*
|
||||
* The available filter names and their options are available via
|
||||
* lzma_str_list_filters(). See the xz man page for the description
|
||||
* of filter names and options.
|
||||
*
|
||||
* For command line applications, below is an example how an error message
|
||||
* can be displayed. Note the use of an empty string for the field width.
|
||||
* If "^" was used there it would create an off-by-one error except at
|
||||
* the very beginning of the line.
|
||||
*
|
||||
* \code{.c}
|
||||
* const char *str = ...; // From user
|
||||
* lzma_filter filters[LZMA_FILTERS_MAX + 1];
|
||||
* int pos;
|
||||
* const char *msg = lzma_str_to_filters(str, &pos, filters, 0, NULL);
|
||||
* if (msg != NULL) {
|
||||
* printf("%s: Error in XZ compression options:\n", argv[0]);
|
||||
* printf("%s: %s\n", argv[0], str);
|
||||
* printf("%s: %*s^\n", argv[0], errpos, "");
|
||||
* printf("%s: %s\n", argv[0], msg);
|
||||
* }
|
||||
* \endcode
|
||||
*
|
||||
* \param str User-supplied string describing a preset or
|
||||
* a filter chain. If a default value is needed and
|
||||
* you don't know what would be good, use "6" since
|
||||
* that is the default preset in xz too.
|
||||
* \param[out] error_pos If this isn't NULL, this value will be set on
|
||||
* both success and on all errors. This tells the
|
||||
* location of the error in the string. This is
|
||||
* an int to make it straightforward to use this
|
||||
* as printf() field width. The value is guaranteed
|
||||
* to be in the range [0, INT_MAX] even if strlen(str)
|
||||
* somehow was greater than INT_MAX.
|
||||
* \param[out] filters An array of lzma_filter structures. There must
|
||||
* be LZMA_FILTERS_MAX + 1 (that is, five) elements
|
||||
* in the array. The old contents are ignored so it
|
||||
* doesn't need to be initialized. This array is
|
||||
* modified only if this function returns NULL.
|
||||
* Once the allocated filter options are no longer
|
||||
* needed, lzma_filters_free() can be used to free the
|
||||
* options (it doesn't free the filters array itself).
|
||||
* \param flags Bitwise-or of zero or more of the flags
|
||||
* LZMA_STR_ALL_FILTERS and LZMA_STR_NO_VALIDATION.
|
||||
* \param allocator lzma_allocator for custom allocator functions.
|
||||
* Set to NULL to use malloc() and free().
|
||||
*
|
||||
* \return On success, NULL is returned. On error, a statically-allocated
|
||||
* error message is returned which together with the error_pos
|
||||
* should give some idea what is wrong.
|
||||
*/
|
||||
extern LZMA_API(const char *) lzma_str_to_filters(
|
||||
const char *str, int *error_pos, lzma_filter *filters,
|
||||
uint32_t flags, const lzma_allocator *allocator)
|
||||
lzma_nothrow lzma_attr_warn_unused_result;
|
||||
|
||||
|
||||
/**
|
||||
* \brief Convert a filter chain to a string
|
||||
*
|
||||
* Use cases:
|
||||
*
|
||||
* - Verbose output showing the full encoder options to the user
|
||||
* (use LZMA_STR_ENCODER in flags)
|
||||
*
|
||||
* - Showing the filters and options that are required to decode a file
|
||||
* (use LZMA_STR_DECODER in flags)
|
||||
*
|
||||
* - Showing the filter names without any options in informational messages
|
||||
* where the technical details aren't important (no flags). In this case
|
||||
* the .options in the filters array are ignored and may be NULL even if
|
||||
* a filter has a mandatory options structure.
|
||||
*
|
||||
* Note that even if the filter chain was specified using a preset,
|
||||
* the resulting filter chain isn't reversed to a preset. So if you
|
||||
* specify "6" to lzma_str_to_filters() then lzma_str_from_filters()
|
||||
* will produce a string containing "lzma2".
|
||||
*
|
||||
* \param[out] str On success *str will be set to point to an
|
||||
* allocated string describing the given filter
|
||||
* chain. Old value is ignored. On error *str is
|
||||
* always set to NULL.
|
||||
* \param filters Array of filters terminated with
|
||||
* .id == LZMA_VLI_UNKNOWN.
|
||||
* \param flags Bitwise-or of zero or more of the flags
|
||||
* LZMA_STR_ENCODER, LZMA_STR_DECODER,
|
||||
* LZMA_STR_GETOPT_LONG, and LZMA_STR_NO_SPACES.
|
||||
* \param allocator lzma_allocator for custom allocator functions.
|
||||
* Set to NULL to use malloc() and free().
|
||||
*
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK
|
||||
* - LZMA_OPTIONS_ERROR: Empty filter chain
|
||||
* (filters[0].id == LZMA_VLI_UNKNOWN) or the filter chain
|
||||
* includes a Filter ID that is not supported by this function.
|
||||
* - LZMA_MEM_ERROR
|
||||
* - LZMA_PROG_ERROR
|
||||
*/
|
||||
extern LZMA_API(lzma_ret) lzma_str_from_filters(
|
||||
char **str, const lzma_filter *filters, uint32_t flags,
|
||||
const lzma_allocator *allocator)
|
||||
lzma_nothrow lzma_attr_warn_unused_result;
|
||||
|
||||
|
||||
/**
|
||||
* \brief List available filters and/or their options (for help message)
|
||||
*
|
||||
* If a filter_id is given then only one line is created which contains the
|
||||
* filter name. If LZMA_STR_ENCODER or LZMA_STR_DECODER is used then the
|
||||
* options read by the encoder or decoder are printed on the same line.
|
||||
*
|
||||
* If filter_id is LZMA_VLI_UNKNOWN then all supported .xz-compatible filters
|
||||
* are listed:
|
||||
*
|
||||
* - If neither LZMA_STR_ENCODER nor LZMA_STR_DECODER is used then
|
||||
* the supported filter names are listed on a single line separated
|
||||
* by spaces.
|
||||
*
|
||||
* - If LZMA_STR_ENCODER or LZMA_STR_DECODER is used then filters and
|
||||
* the supported options are listed one filter per line. There won't
|
||||
* be a newline after the last filter.
|
||||
*
|
||||
* - If LZMA_STR_ALL_FILTERS is used then the list will include also
|
||||
* those filters that cannot be used in the .xz format (LZMA1).
|
||||
*
|
||||
* \param str On success *str will be set to point to an
|
||||
* allocated string listing the filters and options.
|
||||
* Old value is ignored. On error *str is always set
|
||||
* to NULL.
|
||||
* \param filter_id Filter ID or LZMA_VLI_UNKNOWN.
|
||||
* \param flags Bitwise-or of zero or more of the flags
|
||||
* LZMA_STR_ALL_FILTERS, LZMA_STR_ENCODER,
|
||||
* LZMA_STR_DECODER, and LZMA_STR_GETOPT_LONG.
|
||||
* \param allocator lzma_allocator for custom allocator functions.
|
||||
* Set to NULL to use malloc() and free().
|
||||
*
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK
|
||||
* - LZMA_OPTIONS_ERROR: Unsupported filter_id or flags
|
||||
* - LZMA_MEM_ERROR
|
||||
* - LZMA_PROG_ERROR
|
||||
*/
|
||||
extern LZMA_API(lzma_ret) lzma_str_list_filters(
|
||||
char **str, lzma_vli filter_id, uint32_t flags,
|
||||
const lzma_allocator *allocator)
|
||||
lzma_nothrow lzma_attr_warn_unused_result;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/**
|
||||
* \file lzma/hardware.h
|
||||
* \brief Hardware information
|
||||
* \note Never include this file directly. Use <lzma.h> instead.
|
||||
*
|
||||
* Since liblzma can consume a lot of system resources, it also provides
|
||||
* ways to limit the resource usage. Applications linking against liblzma
|
||||
@@ -25,8 +26,6 @@
|
||||
*
|
||||
* This file has been put into the public domain.
|
||||
* You can do whatever you want with this file.
|
||||
*
|
||||
* See ../lzma.h for information about liblzma as a whole.
|
||||
*/
|
||||
|
||||
#ifndef LZMA_H_INTERNAL
|
||||
|
||||
266
.CondaPkg/env/Library/include/lzma/index.h
vendored
266
.CondaPkg/env/Library/include/lzma/index.h
vendored
@@ -1,6 +1,7 @@
|
||||
/**
|
||||
* \file lzma/index.h
|
||||
* \brief Handling of .xz Index and related information
|
||||
* \note Never include this file directly. Use <lzma.h> instead.
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -8,8 +9,6 @@
|
||||
*
|
||||
* This file has been put into the public domain.
|
||||
* You can do whatever you want with this file.
|
||||
*
|
||||
* See ../lzma.h for information about liblzma as a whole.
|
||||
*/
|
||||
|
||||
#ifndef LZMA_H_INTERNAL
|
||||
@@ -50,8 +49,13 @@ typedef struct {
|
||||
*/
|
||||
const lzma_stream_flags *flags;
|
||||
|
||||
/** \private Reserved member. */
|
||||
const void *reserved_ptr1;
|
||||
|
||||
/** \private Reserved member. */
|
||||
const void *reserved_ptr2;
|
||||
|
||||
/** \private Reserved member. */
|
||||
const void *reserved_ptr3;
|
||||
|
||||
/**
|
||||
@@ -107,9 +111,17 @@ typedef struct {
|
||||
*/
|
||||
lzma_vli padding;
|
||||
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_vli reserved_vli1;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_vli reserved_vli2;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_vli reserved_vli3;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_vli reserved_vli4;
|
||||
} stream;
|
||||
|
||||
@@ -196,25 +208,46 @@ typedef struct {
|
||||
*/
|
||||
lzma_vli total_size;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_vli reserved_vli1;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_vli reserved_vli2;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_vli reserved_vli3;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_vli reserved_vli4;
|
||||
|
||||
/** \private Reserved member. */
|
||||
const void *reserved_ptr1;
|
||||
|
||||
/** \private Reserved member. */
|
||||
const void *reserved_ptr2;
|
||||
|
||||
/** \private Reserved member. */
|
||||
const void *reserved_ptr3;
|
||||
|
||||
/** \private Reserved member. */
|
||||
const void *reserved_ptr4;
|
||||
} block;
|
||||
|
||||
/*
|
||||
/**
|
||||
* \private Internal struct.
|
||||
*
|
||||
* Internal data which is used to store the state of the iterator.
|
||||
* The exact format may vary between liblzma versions, so don't
|
||||
* touch these in any way.
|
||||
*/
|
||||
union {
|
||||
/** \private Internal member. */
|
||||
const void *p;
|
||||
|
||||
/** \private Internal member. */
|
||||
size_t s;
|
||||
|
||||
/** \private Internal member. */
|
||||
lzma_vli v;
|
||||
} internal[6];
|
||||
} lzma_index_iter;
|
||||
@@ -272,16 +305,21 @@ typedef enum {
|
||||
* \brief Calculate memory usage of lzma_index
|
||||
*
|
||||
* On disk, the size of the Index field depends on both the number of Records
|
||||
* stored and how big values the Records store (due to variable-length integer
|
||||
* stored and the size of the Records (due to variable-length integer
|
||||
* encoding). When the Index is kept in lzma_index structure, the memory usage
|
||||
* depends only on the number of Records/Blocks stored in the Index(es), and
|
||||
* in case of concatenated lzma_indexes, the number of Streams. The size in
|
||||
* RAM is almost always significantly bigger than in the encoded form on disk.
|
||||
*
|
||||
* This function calculates an approximate amount of memory needed hold
|
||||
* This function calculates an approximate amount of memory needed to hold
|
||||
* the given number of Streams and Blocks in lzma_index structure. This
|
||||
* value may vary between CPU architectures and also between liblzma versions
|
||||
* if the internal implementation is modified.
|
||||
*
|
||||
* \param streams Number of Streams
|
||||
* \param blocks Number of Blocks
|
||||
*
|
||||
* \return Approximate memory in bytes needed in a lzma_index structure.
|
||||
*/
|
||||
extern LZMA_API(uint64_t) lzma_index_memusage(
|
||||
lzma_vli streams, lzma_vli blocks) lzma_nothrow;
|
||||
@@ -292,6 +330,10 @@ extern LZMA_API(uint64_t) lzma_index_memusage(
|
||||
*
|
||||
* This is a shorthand for lzma_index_memusage(lzma_index_stream_count(i),
|
||||
* lzma_index_block_count(i)).
|
||||
*
|
||||
* \param i Pointer to lzma_index structure
|
||||
*
|
||||
* \return Approximate memory in bytes used by the lzma_index structure.
|
||||
*/
|
||||
extern LZMA_API(uint64_t) lzma_index_memused(const lzma_index *i)
|
||||
lzma_nothrow;
|
||||
@@ -300,6 +342,9 @@ extern LZMA_API(uint64_t) lzma_index_memused(const lzma_index *i)
|
||||
/**
|
||||
* \brief Allocate and initialize a new lzma_index structure
|
||||
*
|
||||
* \param allocator lzma_allocator for custom allocator functions.
|
||||
* Set to NULL to use malloc() and free().
|
||||
*
|
||||
* \return On success, a pointer to an empty initialized lzma_index is
|
||||
* returned. If allocation fails, NULL is returned.
|
||||
*/
|
||||
@@ -311,6 +356,10 @@ extern LZMA_API(lzma_index *) lzma_index_init(const lzma_allocator *allocator)
|
||||
* \brief Deallocate lzma_index
|
||||
*
|
||||
* If i is NULL, this does nothing.
|
||||
*
|
||||
* \param i Pointer to lzma_index structure to deallocate
|
||||
* \param allocator lzma_allocator for custom allocator functions.
|
||||
* Set to NULL to use malloc() and free().
|
||||
*/
|
||||
extern LZMA_API(void) lzma_index_end(
|
||||
lzma_index *i, const lzma_allocator *allocator) lzma_nothrow;
|
||||
@@ -320,8 +369,9 @@ extern LZMA_API(void) lzma_index_end(
|
||||
* \brief Add a new Block to lzma_index
|
||||
*
|
||||
* \param i Pointer to a lzma_index structure
|
||||
* \param allocator Pointer to lzma_allocator, or NULL to
|
||||
* use malloc()
|
||||
* \param allocator lzma_allocator for custom allocator
|
||||
* functions. Set to NULL to use malloc()
|
||||
* and free().
|
||||
* \param unpadded_size Unpadded Size of a Block. This can be
|
||||
* calculated with lzma_block_unpadded_size()
|
||||
* after encoding or decoding the Block.
|
||||
@@ -334,7 +384,8 @@ extern LZMA_API(void) lzma_index_end(
|
||||
* lzma_index_append() it is possible to read the next Block with
|
||||
* an existing iterator.
|
||||
*
|
||||
* \return - LZMA_OK
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK
|
||||
* - LZMA_MEM_ERROR
|
||||
* - LZMA_DATA_ERROR: Compressed or uncompressed size of the
|
||||
* Stream or size of the Index field would grow too big.
|
||||
@@ -354,11 +405,15 @@ extern LZMA_API(lzma_ret) lzma_index_append(
|
||||
* lzma_index, because to decode Blocks, knowing the integrity check type
|
||||
* is needed.
|
||||
*
|
||||
* The given Stream Flags are copied into internal preallocated structure
|
||||
* in the lzma_index, thus the caller doesn't need to keep the *stream_flags
|
||||
* available after calling this function.
|
||||
* \param i Pointer to lzma_index structure
|
||||
* \param stream_flags Pointer to lzma_stream_flags structure. This
|
||||
* is copied into the internal preallocated
|
||||
* structure, so the caller doesn't need to keep
|
||||
* the flags' data available after calling this
|
||||
* function.
|
||||
*
|
||||
* \return - LZMA_OK
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK
|
||||
* - LZMA_OPTIONS_ERROR: Unsupported stream_flags->version.
|
||||
* - LZMA_PROG_ERROR
|
||||
*/
|
||||
@@ -376,6 +431,10 @@ extern LZMA_API(lzma_ret) lzma_index_stream_flags(
|
||||
* showing the Check types to the user.
|
||||
*
|
||||
* The bitmask is 1 << check_id, e.g. CRC32 is 1 << 1 and SHA-256 is 1 << 10.
|
||||
*
|
||||
* \param i Pointer to lzma_index structure
|
||||
*
|
||||
* \return Bitmask indicating which Check types are used in the lzma_index
|
||||
*/
|
||||
extern LZMA_API(uint32_t) lzma_index_checks(const lzma_index *i)
|
||||
lzma_nothrow lzma_attr_pure;
|
||||
@@ -390,7 +449,8 @@ extern LZMA_API(uint32_t) lzma_index_checks(const lzma_index *i)
|
||||
*
|
||||
* By default, the amount of Stream Padding is assumed to be zero bytes.
|
||||
*
|
||||
* \return - LZMA_OK
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK
|
||||
* - LZMA_DATA_ERROR: The file size would grow too big.
|
||||
* - LZMA_PROG_ERROR
|
||||
*/
|
||||
@@ -401,6 +461,10 @@ extern LZMA_API(lzma_ret) lzma_index_stream_padding(
|
||||
|
||||
/**
|
||||
* \brief Get the number of Streams
|
||||
*
|
||||
* \param i Pointer to lzma_index structure
|
||||
*
|
||||
* \return Number of Streams in the lzma_index
|
||||
*/
|
||||
extern LZMA_API(lzma_vli) lzma_index_stream_count(const lzma_index *i)
|
||||
lzma_nothrow lzma_attr_pure;
|
||||
@@ -411,6 +475,10 @@ extern LZMA_API(lzma_vli) lzma_index_stream_count(const lzma_index *i)
|
||||
*
|
||||
* This returns the total number of Blocks in lzma_index. To get number
|
||||
* of Blocks in individual Streams, use lzma_index_iter.
|
||||
*
|
||||
* \param i Pointer to lzma_index structure
|
||||
*
|
||||
* \return Number of blocks in the lzma_index
|
||||
*/
|
||||
extern LZMA_API(lzma_vli) lzma_index_block_count(const lzma_index *i)
|
||||
lzma_nothrow lzma_attr_pure;
|
||||
@@ -420,6 +488,10 @@ extern LZMA_API(lzma_vli) lzma_index_block_count(const lzma_index *i)
|
||||
* \brief Get the size of the Index field as bytes
|
||||
*
|
||||
* This is needed to verify the Backward Size field in the Stream Footer.
|
||||
*
|
||||
* \param i Pointer to lzma_index structure
|
||||
*
|
||||
* \return Size in bytes of the Index
|
||||
*/
|
||||
extern LZMA_API(lzma_vli) lzma_index_size(const lzma_index *i)
|
||||
lzma_nothrow lzma_attr_pure;
|
||||
@@ -431,6 +503,11 @@ extern LZMA_API(lzma_vli) lzma_index_size(const lzma_index *i)
|
||||
* If multiple lzma_indexes have been combined, this works as if the Blocks
|
||||
* were in a single Stream. This is useful if you are going to combine
|
||||
* Blocks from multiple Streams into a single new Stream.
|
||||
*
|
||||
* \param i Pointer to lzma_index structure
|
||||
*
|
||||
* \return Size in bytes of the Stream (if all Blocks are combined
|
||||
* into one Stream).
|
||||
*/
|
||||
extern LZMA_API(lzma_vli) lzma_index_stream_size(const lzma_index *i)
|
||||
lzma_nothrow lzma_attr_pure;
|
||||
@@ -441,6 +518,10 @@ extern LZMA_API(lzma_vli) lzma_index_stream_size(const lzma_index *i)
|
||||
*
|
||||
* This doesn't include the Stream Header, Stream Footer, Stream Padding,
|
||||
* or Index fields.
|
||||
*
|
||||
* \param i Pointer to lzma_index structure
|
||||
*
|
||||
* \return Size in bytes of all Blocks in the Stream(s)
|
||||
*/
|
||||
extern LZMA_API(lzma_vli) lzma_index_total_size(const lzma_index *i)
|
||||
lzma_nothrow lzma_attr_pure;
|
||||
@@ -453,6 +534,10 @@ extern LZMA_API(lzma_vli) lzma_index_total_size(const lzma_index *i)
|
||||
* no Stream Padding, this function is identical to lzma_index_stream_size().
|
||||
* If multiple lzma_indexes have been combined, this includes also the headers
|
||||
* of each separate Stream and the possible Stream Padding fields.
|
||||
*
|
||||
* \param i Pointer to lzma_index structure
|
||||
*
|
||||
* \return Total size of the .xz file in bytes
|
||||
*/
|
||||
extern LZMA_API(lzma_vli) lzma_index_file_size(const lzma_index *i)
|
||||
lzma_nothrow lzma_attr_pure;
|
||||
@@ -460,6 +545,10 @@ extern LZMA_API(lzma_vli) lzma_index_file_size(const lzma_index *i)
|
||||
|
||||
/**
|
||||
* \brief Get the uncompressed size of the file
|
||||
*
|
||||
* \param i Pointer to lzma_index structure
|
||||
*
|
||||
* \return Size in bytes of the uncompressed data in the file
|
||||
*/
|
||||
extern LZMA_API(lzma_vli) lzma_index_uncompressed_size(const lzma_index *i)
|
||||
lzma_nothrow lzma_attr_pure;
|
||||
@@ -468,9 +557,6 @@ extern LZMA_API(lzma_vli) lzma_index_uncompressed_size(const lzma_index *i)
|
||||
/**
|
||||
* \brief Initialize an iterator
|
||||
*
|
||||
* \param iter Pointer to a lzma_index_iter structure
|
||||
* \param i lzma_index to which the iterator will be associated
|
||||
*
|
||||
* This function associates the iterator with the given lzma_index, and calls
|
||||
* lzma_index_iter_rewind() on the iterator.
|
||||
*
|
||||
@@ -483,6 +569,9 @@ extern LZMA_API(lzma_vli) lzma_index_uncompressed_size(const lzma_index *i)
|
||||
*
|
||||
* It is safe to make copies of an initialized lzma_index_iter, for example,
|
||||
* to easily restart reading at some particular position.
|
||||
*
|
||||
* \param iter Pointer to a lzma_index_iter structure
|
||||
* \param i lzma_index to which the iterator will be associated
|
||||
*/
|
||||
extern LZMA_API(void) lzma_index_iter_init(
|
||||
lzma_index_iter *iter, const lzma_index *i) lzma_nothrow;
|
||||
@@ -493,6 +582,8 @@ extern LZMA_API(void) lzma_index_iter_init(
|
||||
*
|
||||
* Rewind the iterator so that next call to lzma_index_iter_next() will
|
||||
* return the first Block or Stream.
|
||||
*
|
||||
* \param iter Pointer to a lzma_index_iter structure
|
||||
*/
|
||||
extern LZMA_API(void) lzma_index_iter_rewind(lzma_index_iter *iter)
|
||||
lzma_nothrow;
|
||||
@@ -505,11 +596,11 @@ extern LZMA_API(void) lzma_index_iter_rewind(lzma_index_iter *iter)
|
||||
* \param mode Specify what kind of information the caller wants
|
||||
* to get. See lzma_index_iter_mode for details.
|
||||
*
|
||||
* \return If next Block or Stream matching the mode was found, *iter
|
||||
* is updated and this function returns false. If no Block or
|
||||
* Stream matching the mode is found, *iter is not modified
|
||||
* and this function returns true. If mode is set to an unknown
|
||||
* value, *iter is not modified and this function returns true.
|
||||
* \return lzma_bool:
|
||||
* - true if no Block or Stream matching the mode is found.
|
||||
* *iter is not updated (failure).
|
||||
* - false if the next Block or Stream matching the mode was
|
||||
* found. *iter is updated (success).
|
||||
*/
|
||||
extern LZMA_API(lzma_bool) lzma_index_iter_next(
|
||||
lzma_index_iter *iter, lzma_index_iter_mode mode)
|
||||
@@ -523,21 +614,26 @@ extern LZMA_API(lzma_bool) lzma_index_iter_next(
|
||||
* the Index field(s) and use lzma_index_iter_locate() to do random-access
|
||||
* reading with granularity of Block size.
|
||||
*
|
||||
* \param iter Iterator that was earlier initialized with
|
||||
* lzma_index_iter_init().
|
||||
* \param target Uncompressed target offset which the caller would
|
||||
* like to locate from the Stream
|
||||
*
|
||||
* If the target is smaller than the uncompressed size of the Stream (can be
|
||||
* checked with lzma_index_uncompressed_size()):
|
||||
* - Information about the Stream and Block containing the requested
|
||||
* uncompressed offset is stored into *iter.
|
||||
* - Internal state of the iterator is adjusted so that
|
||||
* lzma_index_iter_next() can be used to read subsequent Blocks or Streams.
|
||||
* - This function returns false.
|
||||
*
|
||||
* If target is greater than the uncompressed size of the Stream, *iter
|
||||
* is not modified, and this function returns true.
|
||||
* If the target is greater than the uncompressed size of the Stream, *iter
|
||||
* is not modified.
|
||||
*
|
||||
* \param iter Iterator that was earlier initialized with
|
||||
* lzma_index_iter_init().
|
||||
* \param target Uncompressed target offset which the caller would
|
||||
* like to locate from the Stream
|
||||
*
|
||||
* \return lzma_bool:
|
||||
* - true if the target is greater than or equal to the
|
||||
* uncompressed size of the Stream (failure)
|
||||
* - false if the target is smaller than the uncompressed size
|
||||
* of the Stream (success)
|
||||
*/
|
||||
extern LZMA_API(lzma_bool) lzma_index_iter_locate(
|
||||
lzma_index_iter *iter, lzma_vli target) lzma_nothrow;
|
||||
@@ -550,15 +646,16 @@ extern LZMA_API(lzma_bool) lzma_index_iter_locate(
|
||||
* multi-Stream .xz file, or when combining multiple Streams into single
|
||||
* Stream.
|
||||
*
|
||||
* \param dest lzma_index after which src is appended
|
||||
* \param[out] dest lzma_index after which src is appended
|
||||
* \param src lzma_index to be appended after dest. If this
|
||||
* function succeeds, the memory allocated for src
|
||||
* is freed or moved to be part of dest, and all
|
||||
* iterators pointing to src will become invalid.
|
||||
* \param allocator Custom memory allocator; can be NULL to use
|
||||
* malloc() and free().
|
||||
* \param allocator lzma_allocator for custom allocator functions.
|
||||
* Set to NULL to use malloc() and free().
|
||||
*
|
||||
* \return - LZMA_OK: lzma_indexes were concatenated successfully.
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: lzma_indexes were concatenated successfully.
|
||||
* src is now a dangling pointer.
|
||||
* - LZMA_DATA_ERROR: *dest would grow too big.
|
||||
* - LZMA_MEM_ERROR
|
||||
@@ -572,6 +669,10 @@ extern LZMA_API(lzma_ret) lzma_index_cat(lzma_index *dest, lzma_index *src,
|
||||
/**
|
||||
* \brief Duplicate lzma_index
|
||||
*
|
||||
* \param i Pointer to lzma_index structure to be duplicated
|
||||
* \param allocator lzma_allocator for custom allocator functions.
|
||||
* Set to NULL to use malloc() and free().
|
||||
*
|
||||
* \return A copy of the lzma_index, or NULL if memory allocation failed.
|
||||
*/
|
||||
extern LZMA_API(lzma_index *) lzma_index_dup(
|
||||
@@ -588,7 +689,8 @@ extern LZMA_API(lzma_index *) lzma_index_dup(
|
||||
* The valid `action' values for lzma_code() are LZMA_RUN and LZMA_FINISH.
|
||||
* It is enough to use only one of them (you can choose freely).
|
||||
*
|
||||
* \return - LZMA_OK: Initialization succeeded, continue with lzma_code().
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Initialization succeeded, continue with lzma_code().
|
||||
* - LZMA_MEM_ERROR
|
||||
* - LZMA_PROG_ERROR
|
||||
*/
|
||||
@@ -601,7 +703,7 @@ extern LZMA_API(lzma_ret) lzma_index_encoder(
|
||||
* \brief Initialize .xz Index decoder
|
||||
*
|
||||
* \param strm Pointer to properly prepared lzma_stream
|
||||
* \param i The decoded Index will be made available via
|
||||
* \param[out] i The decoded Index will be made available via
|
||||
* this pointer. Initially this function will
|
||||
* set *i to NULL (the old value is ignored). If
|
||||
* decoding succeeds (lzma_code() returns
|
||||
@@ -617,11 +719,12 @@ extern LZMA_API(lzma_ret) lzma_index_encoder(
|
||||
* There is no need to use LZMA_FINISH, but it's allowed because it may
|
||||
* simplify certain types of applications.
|
||||
*
|
||||
* \return - LZMA_OK: Initialization succeeded, continue with lzma_code().
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Initialization succeeded, continue with lzma_code().
|
||||
* - LZMA_MEM_ERROR
|
||||
* - LZMA_PROG_ERROR
|
||||
*
|
||||
* liblzma 5.2.3 and older list also LZMA_MEMLIMIT_ERROR here
|
||||
* \note liblzma 5.2.3 and older list also LZMA_MEMLIMIT_ERROR here
|
||||
* but that error code has never been possible from this
|
||||
* initialization function.
|
||||
*/
|
||||
@@ -633,21 +736,23 @@ extern LZMA_API(lzma_ret) lzma_index_decoder(
|
||||
/**
|
||||
* \brief Single-call .xz Index encoder
|
||||
*
|
||||
* \note This function doesn't take allocator argument since all
|
||||
* the internal data is allocated on stack.
|
||||
*
|
||||
* \param i lzma_index to be encoded
|
||||
* \param out Beginning of the output buffer
|
||||
* \param out_pos The next byte will be written to out[*out_pos].
|
||||
* \param[out] out Beginning of the output buffer
|
||||
* \param[out] out_pos The next byte will be written to out[*out_pos].
|
||||
* *out_pos is updated only if encoding succeeds.
|
||||
* \param out_size Size of the out buffer; the first byte into
|
||||
* which no data is written to is out[out_size].
|
||||
*
|
||||
* \return - LZMA_OK: Encoding was successful.
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Encoding was successful.
|
||||
* - LZMA_BUF_ERROR: Output buffer is too small. Use
|
||||
* lzma_index_size() to find out how much output
|
||||
* space is needed.
|
||||
* - LZMA_PROG_ERROR
|
||||
*
|
||||
* \note This function doesn't take allocator argument since all
|
||||
* the internal data is allocated on stack.
|
||||
*/
|
||||
extern LZMA_API(lzma_ret) lzma_index_buffer_encode(const lzma_index *i,
|
||||
uint8_t *out, size_t *out_pos, size_t out_size) lzma_nothrow;
|
||||
@@ -656,24 +761,26 @@ extern LZMA_API(lzma_ret) lzma_index_buffer_encode(const lzma_index *i,
|
||||
/**
|
||||
* \brief Single-call .xz Index decoder
|
||||
*
|
||||
* \param i If decoding succeeds, *i will point to a new
|
||||
* \param[out] i If decoding succeeds, *i will point to a new
|
||||
* lzma_index, which the application has to
|
||||
* later free with lzma_index_end(). If an error
|
||||
* occurs, *i will be NULL. The old value of *i
|
||||
* is always ignored and thus doesn't need to be
|
||||
* initialized by the caller.
|
||||
* \param memlimit Pointer to how much memory the resulting
|
||||
* \param[out] memlimit Pointer to how much memory the resulting
|
||||
* lzma_index is allowed to require. The value
|
||||
* pointed by this pointer is modified if and only
|
||||
* if LZMA_MEMLIMIT_ERROR is returned.
|
||||
* \param allocator Pointer to lzma_allocator, or NULL to use malloc()
|
||||
* \param allocator lzma_allocator for custom allocator functions.
|
||||
* Set to NULL to use malloc() and free().
|
||||
* \param in Beginning of the input buffer
|
||||
* \param in_pos The next byte will be read from in[*in_pos].
|
||||
* *in_pos is updated only if decoding succeeds.
|
||||
* \param in_size Size of the input buffer; the first byte that
|
||||
* won't be read is in[in_size].
|
||||
*
|
||||
* \return - LZMA_OK: Decoding was successful.
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Decoding was successful.
|
||||
* - LZMA_MEM_ERROR
|
||||
* - LZMA_MEMLIMIT_ERROR: Memory usage limit was reached.
|
||||
* The minimum required memlimit value was stored to *memlimit.
|
||||
@@ -684,3 +791,70 @@ extern LZMA_API(lzma_ret) lzma_index_buffer_decode(lzma_index **i,
|
||||
uint64_t *memlimit, const lzma_allocator *allocator,
|
||||
const uint8_t *in, size_t *in_pos, size_t in_size)
|
||||
lzma_nothrow;
|
||||
|
||||
|
||||
/**
|
||||
* \brief Initialize a .xz file information decoder
|
||||
*
|
||||
* This decoder decodes the Stream Header, Stream Footer, Index, and
|
||||
* Stream Padding field(s) from the input .xz file and stores the resulting
|
||||
* combined index in *dest_index. This information can be used to get the
|
||||
* uncompressed file size with lzma_index_uncompressed_size(*dest_index) or,
|
||||
* for example, to implement random access reading by locating the Blocks
|
||||
* in the Streams.
|
||||
*
|
||||
* To get the required information from the .xz file, lzma_code() may ask
|
||||
* the application to seek in the input file by returning LZMA_SEEK_NEEDED
|
||||
* and having the target file position specified in lzma_stream.seek_pos.
|
||||
* The number of seeks required depends on the input file and how big buffers
|
||||
* the application provides. When possible, the decoder will seek backward
|
||||
* and forward in the given buffer to avoid useless seek requests. Thus, if
|
||||
* the application provides the whole file at once, no external seeking will
|
||||
* be required (that is, lzma_code() won't return LZMA_SEEK_NEEDED).
|
||||
*
|
||||
* The value in lzma_stream.total_in can be used to estimate how much data
|
||||
* liblzma had to read to get the file information. However, due to seeking
|
||||
* and the way total_in is updated, the value of total_in will be somewhat
|
||||
* inaccurate (a little too big). Thus, total_in is a good estimate but don't
|
||||
* expect to see the same exact value for the same file if you change the
|
||||
* input buffer size or switch to a different liblzma version.
|
||||
*
|
||||
* Valid `action' arguments to lzma_code() are LZMA_RUN and LZMA_FINISH.
|
||||
* You only need to use LZMA_RUN; LZMA_FINISH is only supported because it
|
||||
* might be convenient for some applications. If you use LZMA_FINISH and if
|
||||
* lzma_code() asks the application to seek, remember to reset `action' back
|
||||
* to LZMA_RUN unless you hit the end of the file again.
|
||||
*
|
||||
* Possible return values from lzma_code():
|
||||
* - LZMA_OK: All OK so far, more input needed
|
||||
* - LZMA_SEEK_NEEDED: Provide more input starting from the absolute
|
||||
* file position strm->seek_pos
|
||||
* - LZMA_STREAM_END: Decoding was successful, *dest_index has been set
|
||||
* - LZMA_FORMAT_ERROR: The input file is not in the .xz format (the
|
||||
* expected magic bytes were not found from the beginning of the file)
|
||||
* - LZMA_OPTIONS_ERROR: File looks valid but contains headers that aren't
|
||||
* supported by this version of liblzma
|
||||
* - LZMA_DATA_ERROR: File is corrupt
|
||||
* - LZMA_BUF_ERROR
|
||||
* - LZMA_MEM_ERROR
|
||||
* - LZMA_MEMLIMIT_ERROR
|
||||
* - LZMA_PROG_ERROR
|
||||
*
|
||||
* \param strm Pointer to a properly prepared lzma_stream
|
||||
* \param[out] dest_index Pointer to a pointer where the decoder will put
|
||||
* the decoded lzma_index. The old value
|
||||
* of *dest_index is ignored (not freed).
|
||||
* \param memlimit How much memory the resulting lzma_index is
|
||||
* allowed to require. Use UINT64_MAX to
|
||||
* effectively disable the limiter.
|
||||
* \param file_size Size of the input .xz file
|
||||
*
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK
|
||||
* - LZMA_MEM_ERROR
|
||||
* - LZMA_PROG_ERROR
|
||||
*/
|
||||
extern LZMA_API(lzma_ret) lzma_file_info_decoder(
|
||||
lzma_stream *strm, lzma_index **dest_index,
|
||||
uint64_t memlimit, uint64_t file_size)
|
||||
lzma_nothrow;
|
||||
|
||||
39
.CondaPkg/env/Library/include/lzma/index_hash.h
vendored
39
.CondaPkg/env/Library/include/lzma/index_hash.h
vendored
@@ -1,6 +1,7 @@
|
||||
/**
|
||||
* \file lzma/index_hash.h
|
||||
* \brief Validate Index by using a hash function
|
||||
* \note Never include this file directly. Use <lzma.h> instead.
|
||||
*
|
||||
* Hashing makes it possible to use constant amount of memory to validate
|
||||
* Index of arbitrary size.
|
||||
@@ -11,8 +12,6 @@
|
||||
*
|
||||
* This file has been put into the public domain.
|
||||
* You can do whatever you want with this file.
|
||||
*
|
||||
* See ../lzma.h for information about liblzma as a whole.
|
||||
*/
|
||||
|
||||
#ifndef LZMA_H_INTERNAL
|
||||
@@ -28,13 +27,21 @@ typedef struct lzma_index_hash_s lzma_index_hash;
|
||||
/**
|
||||
* \brief Allocate and initialize a new lzma_index_hash structure
|
||||
*
|
||||
* If index_hash is NULL, a new lzma_index_hash structure is allocated,
|
||||
* initialized, and a pointer to it returned. If allocation fails, NULL
|
||||
* is returned.
|
||||
* If index_hash is NULL, this function allocates and initializes a new
|
||||
* lzma_index_hash structure and returns a pointer to it. If allocation
|
||||
* fails, NULL is returned.
|
||||
*
|
||||
* If index_hash is non-NULL, it is reinitialized and the same pointer
|
||||
* returned. In this case, return value cannot be NULL or a different
|
||||
* pointer than the index_hash that was given as an argument.
|
||||
* If index_hash is non-NULL, this function reinitializes the lzma_index_hash
|
||||
* structure and returns the same pointer. In this case, return value cannot
|
||||
* be NULL or a different pointer than the index_hash that was given as
|
||||
* an argument.
|
||||
*
|
||||
* \param index_hash Pointer to a lzma_index_hash structure or NULL.
|
||||
* \param allocator lzma_allocator for custom allocator functions.
|
||||
* Set to NULL to use malloc() and free().
|
||||
*
|
||||
* \return Initialized lzma_index_hash structure on success or
|
||||
* NULL on failure.
|
||||
*/
|
||||
extern LZMA_API(lzma_index_hash *) lzma_index_hash_init(
|
||||
lzma_index_hash *index_hash, const lzma_allocator *allocator)
|
||||
@@ -43,6 +50,10 @@ extern LZMA_API(lzma_index_hash *) lzma_index_hash_init(
|
||||
|
||||
/**
|
||||
* \brief Deallocate lzma_index_hash structure
|
||||
*
|
||||
* \param index_hash Pointer to a lzma_index_hash structure to free.
|
||||
* \param allocator lzma_allocator for custom allocator functions.
|
||||
* Set to NULL to use malloc() and free().
|
||||
*/
|
||||
extern LZMA_API(void) lzma_index_hash_end(
|
||||
lzma_index_hash *index_hash, const lzma_allocator *allocator)
|
||||
@@ -56,7 +67,8 @@ extern LZMA_API(void) lzma_index_hash_end(
|
||||
* \param unpadded_size Unpadded Size of a Block
|
||||
* \param uncompressed_size Uncompressed Size of a Block
|
||||
*
|
||||
* \return - LZMA_OK
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK
|
||||
* - LZMA_DATA_ERROR: Compressed or uncompressed size of the
|
||||
* Stream or size of the Index field would grow too big.
|
||||
* - LZMA_PROG_ERROR: Invalid arguments or this function is being
|
||||
@@ -81,10 +93,11 @@ extern LZMA_API(lzma_ret) lzma_index_hash_append(lzma_index_hash *index_hash,
|
||||
*
|
||||
* \param index_hash Pointer to a lzma_index_hash structure
|
||||
* \param in Pointer to the beginning of the input buffer
|
||||
* \param in_pos in[*in_pos] is the next byte to process
|
||||
* \param[out] in_pos in[*in_pos] is the next byte to process
|
||||
* \param in_size in[in_size] is the first byte not to process
|
||||
*
|
||||
* \return - LZMA_OK: So far good, but more input is needed.
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: So far good, but more input is needed.
|
||||
* - LZMA_STREAM_END: Index decoded successfully and it matches
|
||||
* the Records given with lzma_index_hash_append().
|
||||
* - LZMA_DATA_ERROR: Index is corrupt or doesn't match the
|
||||
@@ -101,6 +114,10 @@ extern LZMA_API(lzma_ret) lzma_index_hash_decode(lzma_index_hash *index_hash,
|
||||
* \brief Get the size of the Index field as bytes
|
||||
*
|
||||
* This is needed to verify the Backward Size field in the Stream Footer.
|
||||
*
|
||||
* \param index_hash Pointer to a lzma_index_hash structure
|
||||
*
|
||||
* \return Size of the Index field in bytes.
|
||||
*/
|
||||
extern LZMA_API(lzma_vli) lzma_index_hash_size(
|
||||
const lzma_index_hash *index_hash)
|
||||
|
||||
189
.CondaPkg/env/Library/include/lzma/lzma12.h
vendored
189
.CondaPkg/env/Library/include/lzma/lzma12.h
vendored
@@ -1,6 +1,7 @@
|
||||
/**
|
||||
* \file lzma/lzma12.h
|
||||
* \brief LZMA1 and LZMA2 filters
|
||||
* \note Never include this file directly. Use <lzma.h> instead.
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -8,8 +9,6 @@
|
||||
*
|
||||
* This file has been put into the public domain.
|
||||
* You can do whatever you want with this file.
|
||||
*
|
||||
* See ../lzma.h for information about liblzma as a whole.
|
||||
*/
|
||||
|
||||
#ifndef LZMA_H_INTERNAL
|
||||
@@ -18,23 +17,46 @@
|
||||
|
||||
|
||||
/**
|
||||
* \brief LZMA1 Filter ID
|
||||
* \brief LZMA1 Filter ID (for raw encoder/decoder only, not in .xz)
|
||||
*
|
||||
* LZMA1 is the very same thing as what was called just LZMA in LZMA Utils,
|
||||
* 7-Zip, and LZMA SDK. It's called LZMA1 here to prevent developers from
|
||||
* accidentally using LZMA when they actually want LZMA2.
|
||||
*
|
||||
* LZMA1 shouldn't be used for new applications unless you _really_ know
|
||||
* what you are doing. LZMA2 is almost always a better choice.
|
||||
*/
|
||||
#define LZMA_FILTER_LZMA1 LZMA_VLI_C(0x4000000000000001)
|
||||
|
||||
/**
|
||||
* \brief LZMA1 Filter ID with extended options (for raw encoder/decoder)
|
||||
*
|
||||
* This is like LZMA_FILTER_LZMA1 but with this ID a few extra options
|
||||
* are supported in the lzma_options_lzma structure:
|
||||
*
|
||||
* - A flag to tell the encoder if the end of payload marker (EOPM) alias
|
||||
* end of stream (EOS) marker must be written at the end of the stream.
|
||||
* In contrast, LZMA_FILTER_LZMA1 always writes the end marker.
|
||||
*
|
||||
* - Decoder needs to be told the uncompressed size of the stream
|
||||
* or that it is unknown (using the special value UINT64_MAX).
|
||||
* If the size is known, a flag can be set to allow the presence of
|
||||
* the end marker anyway. In contrast, LZMA_FILTER_LZMA1 always
|
||||
* behaves as if the uncompressed size was unknown.
|
||||
*
|
||||
* This allows handling file formats where LZMA1 streams are used but where
|
||||
* the end marker isn't allowed or where it might not (always) be present.
|
||||
* This extended LZMA1 functionality is provided as a Filter ID for raw
|
||||
* encoder and decoder instead of adding new encoder and decoder initialization
|
||||
* functions because this way it is possible to also use extra filters,
|
||||
* for example, LZMA_FILTER_X86 in a filter chain with LZMA_FILTER_LZMA1EXT,
|
||||
* which might be needed to handle some file formats.
|
||||
*/
|
||||
#define LZMA_FILTER_LZMA1EXT LZMA_VLI_C(0x4000000000000002)
|
||||
|
||||
/**
|
||||
* \brief LZMA2 Filter ID
|
||||
*
|
||||
* Usually you want this instead of LZMA1. Compared to LZMA1, LZMA2 adds
|
||||
* support for LZMA_SYNC_FLUSH, uncompressed chunks (smaller expansion
|
||||
* when trying to compress uncompressible data), possibility to change
|
||||
* when trying to compress incompressible data), possibility to change
|
||||
* lc/lp/pb in the middle of encoding, and some other internal improvements.
|
||||
*/
|
||||
#define LZMA_FILTER_LZMA2 LZMA_VLI_C(0x21)
|
||||
@@ -114,16 +136,20 @@ typedef enum {
|
||||
/**
|
||||
* \brief Test if given match finder is supported
|
||||
*
|
||||
* Return true if the given match finder is supported by this liblzma build.
|
||||
* Otherwise false is returned. It is safe to call this with a value that
|
||||
* isn't listed in lzma_match_finder enumeration; the return value will be
|
||||
* false.
|
||||
* It is safe to call this with a value that isn't listed in
|
||||
* lzma_match_finder enumeration; the return value will be false.
|
||||
*
|
||||
* There is no way to list which match finders are available in this
|
||||
* particular liblzma version and build. It would be useless, because
|
||||
* a new match finder, which the application developer wasn't aware,
|
||||
* could require giving additional options to the encoder that the older
|
||||
* match finders don't need.
|
||||
*
|
||||
* \param match_finder Match finder ID
|
||||
*
|
||||
* \return lzma_bool:
|
||||
* - true if the match finder is supported by this liblzma build.
|
||||
* - false otherwise.
|
||||
*/
|
||||
extern LZMA_API(lzma_bool) lzma_mf_is_supported(lzma_match_finder match_finder)
|
||||
lzma_nothrow lzma_attr_const;
|
||||
@@ -158,14 +184,20 @@ typedef enum {
|
||||
/**
|
||||
* \brief Test if given compression mode is supported
|
||||
*
|
||||
* Return true if the given compression mode is supported by this liblzma
|
||||
* build. Otherwise false is returned. It is safe to call this with a value
|
||||
* that isn't listed in lzma_mode enumeration; the return value will be false.
|
||||
* It is safe to call this with a value that isn't listed in lzma_mode
|
||||
* enumeration; the return value will be false.
|
||||
*
|
||||
* There is no way to list which modes are available in this particular
|
||||
* liblzma version and build. It would be useless, because a new compression
|
||||
* mode, which the application developer wasn't aware, could require giving
|
||||
* additional options to the encoder that the older modes don't need.
|
||||
*
|
||||
* \param mode Mode ID.
|
||||
*
|
||||
* \return lzma_bool:
|
||||
* - true if the compression mode is supported by this liblzma
|
||||
* build.
|
||||
* - false otherwise.
|
||||
*/
|
||||
extern LZMA_API(lzma_bool) lzma_mode_is_supported(lzma_mode mode)
|
||||
lzma_nothrow lzma_attr_const;
|
||||
@@ -374,6 +406,82 @@ typedef struct {
|
||||
*/
|
||||
uint32_t depth;
|
||||
|
||||
/**
|
||||
* \brief For LZMA_FILTER_LZMA1EXT: Extended flags
|
||||
*
|
||||
* This is used only with LZMA_FILTER_LZMA1EXT.
|
||||
*
|
||||
* Currently only one flag is supported, LZMA_LZMA1EXT_ALLOW_EOPM:
|
||||
*
|
||||
* - Encoder: If the flag is set, then end marker is written just
|
||||
* like it is with LZMA_FILTER_LZMA1. Without this flag the
|
||||
* end marker isn't written and the application has to store
|
||||
* the uncompressed size somewhere outside the compressed stream.
|
||||
* To decompress streams without the end marker, the application
|
||||
* has to set the correct uncompressed size in ext_size_low and
|
||||
* ext_size_high.
|
||||
*
|
||||
* - Decoder: If the uncompressed size in ext_size_low and
|
||||
* ext_size_high is set to the special value UINT64_MAX
|
||||
* (indicating unknown uncompressed size) then this flag is
|
||||
* ignored and the end marker must always be present, that is,
|
||||
* the behavior is identical to LZMA_FILTER_LZMA1.
|
||||
*
|
||||
* Otherwise, if this flag isn't set, then the input stream
|
||||
* must not have the end marker; if the end marker is detected
|
||||
* then it will result in LZMA_DATA_ERROR. This is useful when
|
||||
* it is known that the stream must not have the end marker and
|
||||
* strict validation is wanted.
|
||||
*
|
||||
* If this flag is set, then it is autodetected if the end marker
|
||||
* is present after the specified number of uncompressed bytes
|
||||
* has been decompressed (ext_size_low and ext_size_high). The
|
||||
* end marker isn't allowed in any other position. This behavior
|
||||
* is useful when uncompressed size is known but the end marker
|
||||
* may or may not be present. This is the case, for example,
|
||||
* in .7z files (valid .7z files that have the end marker in
|
||||
* LZMA1 streams are rare but they do exist).
|
||||
*/
|
||||
uint32_t ext_flags;
|
||||
# define LZMA_LZMA1EXT_ALLOW_EOPM UINT32_C(0x01)
|
||||
|
||||
/**
|
||||
* \brief For LZMA_FILTER_LZMA1EXT: Uncompressed size (low bits)
|
||||
*
|
||||
* The 64-bit uncompressed size is needed for decompression with
|
||||
* LZMA_FILTER_LZMA1EXT. The size is ignored by the encoder.
|
||||
*
|
||||
* The special value UINT64_MAX indicates that the uncompressed size
|
||||
* is unknown and that the end of payload marker (also known as
|
||||
* end of stream marker) must be present to indicate the end of
|
||||
* the LZMA1 stream. Any other value indicates the expected
|
||||
* uncompressed size of the LZMA1 stream. (If LZMA1 was used together
|
||||
* with filters that change the size of the data then the uncompressed
|
||||
* size of the LZMA1 stream could be different than the final
|
||||
* uncompressed size of the filtered stream.)
|
||||
*
|
||||
* ext_size_low holds the least significant 32 bits of the
|
||||
* uncompressed size. The most significant 32 bits must be set
|
||||
* in ext_size_high. The macro lzma_ext_size_set(opt_lzma, u64size)
|
||||
* can be used to set these members.
|
||||
*
|
||||
* The 64-bit uncompressed size is split into two uint32_t variables
|
||||
* because there were no reserved uint64_t members and using the
|
||||
* same options structure for LZMA_FILTER_LZMA1, LZMA_FILTER_LZMA1EXT,
|
||||
* and LZMA_FILTER_LZMA2 was otherwise more convenient than having
|
||||
* a new options structure for LZMA_FILTER_LZMA1EXT. (Replacing two
|
||||
* uint32_t members with one uint64_t changes the ABI on some systems
|
||||
* as the alignment of this struct can increase from 4 bytes to 8.)
|
||||
*/
|
||||
uint32_t ext_size_low;
|
||||
|
||||
/**
|
||||
* \brief For LZMA_FILTER_LZMA1EXT: Uncompressed size (high bits)
|
||||
*
|
||||
* This holds the most significant 32 bits of the uncompressed size.
|
||||
*/
|
||||
uint32_t ext_size_high;
|
||||
|
||||
/*
|
||||
* Reserved space to allow possible future extensions without
|
||||
* breaking the ABI. You should not touch these, because the names
|
||||
@@ -381,24 +489,56 @@ typedef struct {
|
||||
* with the currently supported options, so it is safe to leave these
|
||||
* uninitialized.
|
||||
*/
|
||||
uint32_t reserved_int1;
|
||||
uint32_t reserved_int2;
|
||||
uint32_t reserved_int3;
|
||||
|
||||
/** \private Reserved member. */
|
||||
uint32_t reserved_int4;
|
||||
|
||||
/** \private Reserved member. */
|
||||
uint32_t reserved_int5;
|
||||
|
||||
/** \private Reserved member. */
|
||||
uint32_t reserved_int6;
|
||||
|
||||
/** \private Reserved member. */
|
||||
uint32_t reserved_int7;
|
||||
|
||||
/** \private Reserved member. */
|
||||
uint32_t reserved_int8;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_reserved_enum reserved_enum1;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_reserved_enum reserved_enum2;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_reserved_enum reserved_enum3;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_reserved_enum reserved_enum4;
|
||||
|
||||
/** \private Reserved member. */
|
||||
void *reserved_ptr1;
|
||||
|
||||
/** \private Reserved member. */
|
||||
void *reserved_ptr2;
|
||||
|
||||
} lzma_options_lzma;
|
||||
|
||||
|
||||
/**
|
||||
* \brief Macro to set the 64-bit uncompressed size in ext_size_*
|
||||
*
|
||||
* This might be convenient when decoding using LZMA_FILTER_LZMA1EXT.
|
||||
* This isn't used with LZMA_FILTER_LZMA1 or LZMA_FILTER_LZMA2.
|
||||
*/
|
||||
#define lzma_set_ext_size(opt_lzma2, u64size) \
|
||||
do { \
|
||||
(opt_lzma2).ext_size_low = (uint32_t)(u64size); \
|
||||
(opt_lzma2).ext_size_high = (uint32_t)((uint64_t)(u64size) >> 32); \
|
||||
} while (0)
|
||||
|
||||
|
||||
/**
|
||||
* \brief Set a compression preset to lzma_options_lzma structure
|
||||
*
|
||||
@@ -408,13 +548,22 @@ typedef struct {
|
||||
* The flags are defined in container.h, because the flags are used also
|
||||
* with lzma_easy_encoder().
|
||||
*
|
||||
* The preset values are subject to changes between liblzma versions.
|
||||
* The preset levels are subject to changes between liblzma versions.
|
||||
*
|
||||
* This function is available only if LZMA1 or LZMA2 encoder has been enabled
|
||||
* when building liblzma.
|
||||
*
|
||||
* \return On success, false is returned. If the preset is not
|
||||
* supported, true is returned.
|
||||
* If features (like certain match finders) have been disabled at build time,
|
||||
* then the function may return success (false) even though the resulting
|
||||
* LZMA1/LZMA2 options may not be usable for encoder initialization
|
||||
* (LZMA_OPTIONS_ERROR).
|
||||
*
|
||||
* \param[out] options Pointer to LZMA1 or LZMA2 options to be filled
|
||||
* \param preset Preset level bitwse-ORed with preset flags
|
||||
*
|
||||
* \return lzma_bool:
|
||||
* - true if the preset is not supported (failure).
|
||||
* - false otherwise (success).
|
||||
*/
|
||||
extern LZMA_API(lzma_bool) lzma_lzma_preset(
|
||||
lzma_options_lzma *options, uint32_t preset) lzma_nothrow;
|
||||
|
||||
109
.CondaPkg/env/Library/include/lzma/stream_flags.h
vendored
109
.CondaPkg/env/Library/include/lzma/stream_flags.h
vendored
@@ -1,6 +1,7 @@
|
||||
/**
|
||||
* \file lzma/stream_flags.h
|
||||
* \brief .xz Stream Header and Stream Footer encoder and decoder
|
||||
* \note Never include this file directly. Use <lzma.h> instead.
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -8,8 +9,6 @@
|
||||
*
|
||||
* This file has been put into the public domain.
|
||||
* You can do whatever you want with this file.
|
||||
*
|
||||
* See ../lzma.h for information about liblzma as a whole.
|
||||
*/
|
||||
|
||||
#ifndef LZMA_H_INTERNAL
|
||||
@@ -36,7 +35,7 @@ typedef struct {
|
||||
*
|
||||
* To prevent API and ABI breakages if new features are needed in
|
||||
* Stream Header or Stream Footer, a version number is used to
|
||||
* indicate which fields in this structure are in use. For now,
|
||||
* indicate which members in this structure are in use. For now,
|
||||
* version must always be zero. With non-zero version, the
|
||||
* lzma_stream_header_encode() and lzma_stream_footer_encode()
|
||||
* will return LZMA_OPTIONS_ERROR.
|
||||
@@ -67,7 +66,15 @@ typedef struct {
|
||||
* Footer have been decoded.
|
||||
*/
|
||||
lzma_vli backward_size;
|
||||
|
||||
/**
|
||||
* \brief Minimum value for lzma_stream_flags.backward_size
|
||||
*/
|
||||
# define LZMA_BACKWARD_SIZE_MIN 4
|
||||
|
||||
/**
|
||||
* \brief Maximum value for lzma_stream_flags.backward_size
|
||||
*/
|
||||
# define LZMA_BACKWARD_SIZE_MAX (LZMA_VLI_C(1) << 34)
|
||||
|
||||
/**
|
||||
@@ -87,19 +94,47 @@ typedef struct {
|
||||
* is just two bytes plus Backward Size of four bytes. But it's
|
||||
* nice to have the proper types when they are needed.)
|
||||
*/
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_reserved_enum reserved_enum1;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_reserved_enum reserved_enum2;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_reserved_enum reserved_enum3;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_reserved_enum reserved_enum4;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_bool reserved_bool1;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_bool reserved_bool2;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_bool reserved_bool3;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_bool reserved_bool4;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_bool reserved_bool5;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_bool reserved_bool6;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_bool reserved_bool7;
|
||||
|
||||
/** \private Reserved member. */
|
||||
lzma_bool reserved_bool8;
|
||||
|
||||
/** \private Reserved member. */
|
||||
uint32_t reserved_int1;
|
||||
|
||||
/** \private Reserved member. */
|
||||
uint32_t reserved_int2;
|
||||
|
||||
} lzma_stream_flags;
|
||||
@@ -111,10 +146,11 @@ typedef struct {
|
||||
* \param options Stream Header options to be encoded.
|
||||
* options->backward_size is ignored and doesn't
|
||||
* need to be initialized.
|
||||
* \param out Beginning of the output buffer of
|
||||
* \param[out] out Beginning of the output buffer of
|
||||
* LZMA_STREAM_HEADER_SIZE bytes.
|
||||
*
|
||||
* \return - LZMA_OK: Encoding was successful.
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Encoding was successful.
|
||||
* - LZMA_OPTIONS_ERROR: options->version is not supported by
|
||||
* this liblzma version.
|
||||
* - LZMA_PROG_ERROR: Invalid options.
|
||||
@@ -128,10 +164,11 @@ extern LZMA_API(lzma_ret) lzma_stream_header_encode(
|
||||
* \brief Encode Stream Footer
|
||||
*
|
||||
* \param options Stream Footer options to be encoded.
|
||||
* \param out Beginning of the output buffer of
|
||||
* \param[out] out Beginning of the output buffer of
|
||||
* LZMA_STREAM_HEADER_SIZE bytes.
|
||||
*
|
||||
* \return - LZMA_OK: Encoding was successful.
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Encoding was successful.
|
||||
* - LZMA_OPTIONS_ERROR: options->version is not supported by
|
||||
* this liblzma version.
|
||||
* - LZMA_PROG_ERROR: Invalid options.
|
||||
@@ -144,32 +181,33 @@ extern LZMA_API(lzma_ret) lzma_stream_footer_encode(
|
||||
/**
|
||||
* \brief Decode Stream Header
|
||||
*
|
||||
* \param options Target for the decoded Stream Header options.
|
||||
* \param in Beginning of the input buffer of
|
||||
* LZMA_STREAM_HEADER_SIZE bytes.
|
||||
*
|
||||
* options->backward_size is always set to LZMA_VLI_UNKNOWN. This is to
|
||||
* help comparing Stream Flags from Stream Header and Stream Footer with
|
||||
* lzma_stream_flags_compare().
|
||||
*
|
||||
* \return - LZMA_OK: Decoding was successful.
|
||||
* \note When decoding .xz files that contain multiple Streams, it may
|
||||
* make sense to print "file format not recognized" only if
|
||||
* decoding of the Stream Header of the \a first Stream gives
|
||||
* LZMA_FORMAT_ERROR. If non-first Stream Header gives
|
||||
* LZMA_FORMAT_ERROR, the message used for LZMA_DATA_ERROR is
|
||||
* probably more appropriate.
|
||||
* For example, the Stream decoder in liblzma uses
|
||||
* LZMA_DATA_ERROR if LZMA_FORMAT_ERROR is returned by
|
||||
* lzma_stream_header_decode() when decoding non-first Stream.
|
||||
*
|
||||
* \param[out] options Target for the decoded Stream Header options.
|
||||
* \param in Beginning of the input buffer of
|
||||
* LZMA_STREAM_HEADER_SIZE bytes.
|
||||
*
|
||||
*
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Decoding was successful.
|
||||
* - LZMA_FORMAT_ERROR: Magic bytes don't match, thus the given
|
||||
* buffer cannot be Stream Header.
|
||||
* - LZMA_DATA_ERROR: CRC32 doesn't match, thus the header
|
||||
* is corrupt.
|
||||
* - LZMA_OPTIONS_ERROR: Unsupported options are present
|
||||
* in the header.
|
||||
*
|
||||
* \note When decoding .xz files that contain multiple Streams, it may
|
||||
* make sense to print "file format not recognized" only if
|
||||
* decoding of the Stream Header of the _first_ Stream gives
|
||||
* LZMA_FORMAT_ERROR. If non-first Stream Header gives
|
||||
* LZMA_FORMAT_ERROR, the message used for LZMA_DATA_ERROR is
|
||||
* probably more appropriate.
|
||||
*
|
||||
* For example, Stream decoder in liblzma uses LZMA_DATA_ERROR if
|
||||
* LZMA_FORMAT_ERROR is returned by lzma_stream_header_decode()
|
||||
* when decoding non-first Stream.
|
||||
*/
|
||||
extern LZMA_API(lzma_ret) lzma_stream_header_decode(
|
||||
lzma_stream_flags *options, const uint8_t *in)
|
||||
@@ -179,24 +217,25 @@ extern LZMA_API(lzma_ret) lzma_stream_header_decode(
|
||||
/**
|
||||
* \brief Decode Stream Footer
|
||||
*
|
||||
* \param options Target for the decoded Stream Header options.
|
||||
* \note If Stream Header was already decoded successfully, but
|
||||
* decoding Stream Footer returns LZMA_FORMAT_ERROR, the
|
||||
* application should probably report some other error message
|
||||
* than "file format not recognized". The file likely
|
||||
* is corrupt (possibly truncated). The Stream decoder in liblzma
|
||||
* uses LZMA_DATA_ERROR in this situation.
|
||||
*
|
||||
* \param[out] options Target for the decoded Stream Footer options.
|
||||
* \param in Beginning of the input buffer of
|
||||
* LZMA_STREAM_HEADER_SIZE bytes.
|
||||
*
|
||||
* \return - LZMA_OK: Decoding was successful.
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Decoding was successful.
|
||||
* - LZMA_FORMAT_ERROR: Magic bytes don't match, thus the given
|
||||
* buffer cannot be Stream Footer.
|
||||
* - LZMA_DATA_ERROR: CRC32 doesn't match, thus the Stream Footer
|
||||
* is corrupt.
|
||||
* - LZMA_OPTIONS_ERROR: Unsupported options are present
|
||||
* in Stream Footer.
|
||||
*
|
||||
* \note If Stream Header was already decoded successfully, but
|
||||
* decoding Stream Footer returns LZMA_FORMAT_ERROR, the
|
||||
* application should probably report some other error message
|
||||
* than "file format not recognized", since the file more likely
|
||||
* is corrupt (possibly truncated). Stream decoder in liblzma
|
||||
* uses LZMA_DATA_ERROR in this situation.
|
||||
*/
|
||||
extern LZMA_API(lzma_ret) lzma_stream_footer_decode(
|
||||
lzma_stream_flags *options, const uint8_t *in)
|
||||
@@ -209,7 +248,11 @@ extern LZMA_API(lzma_ret) lzma_stream_footer_decode(
|
||||
* backward_size values are compared only if both are not
|
||||
* LZMA_VLI_UNKNOWN.
|
||||
*
|
||||
* \return - LZMA_OK: Both are equal. If either had backward_size set
|
||||
* \param a Pointer to lzma_stream_flags structure
|
||||
* \param b Pointer to lzma_stream_flags structure
|
||||
*
|
||||
* \return Possible lzma_ret values:
|
||||
* - LZMA_OK: Both are equal. If either had backward_size set
|
||||
* to LZMA_VLI_UNKNOWN, backward_size values were not
|
||||
* compared or validated.
|
||||
* - LZMA_DATA_ERROR: The structures differ.
|
||||
|
||||
38
.CondaPkg/env/Library/include/lzma/version.h
vendored
38
.CondaPkg/env/Library/include/lzma/version.h
vendored
@@ -1,6 +1,7 @@
|
||||
/**
|
||||
* \file lzma/version.h
|
||||
* \brief Version number
|
||||
* \note Never include this file directly. Use <lzma.h> instead.
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -8,8 +9,6 @@
|
||||
*
|
||||
* This file has been put into the public domain.
|
||||
* You can do whatever you want with this file.
|
||||
*
|
||||
* See ../lzma.h for information about liblzma as a whole.
|
||||
*/
|
||||
|
||||
#ifndef LZMA_H_INTERNAL
|
||||
@@ -17,14 +16,26 @@
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Version number split into components
|
||||
*/
|
||||
/** \brief Major version number of the liblzma release. */
|
||||
#define LZMA_VERSION_MAJOR 5
|
||||
#define LZMA_VERSION_MINOR 2
|
||||
#define LZMA_VERSION_PATCH 10
|
||||
|
||||
/** \brief Minor version number of the liblzma release. */
|
||||
#define LZMA_VERSION_MINOR 4
|
||||
|
||||
/** \brief Patch version number of the liblzma release. */
|
||||
#define LZMA_VERSION_PATCH 6
|
||||
|
||||
/**
|
||||
* \brief Version stability marker
|
||||
*
|
||||
* This will always be one of three values:
|
||||
* - LZMA_VERSION_STABILITY_ALPHA
|
||||
* - LZMA_VERSION_STABILITY_BETA
|
||||
* - LZMA_VERSION_STABILITY_STABLE
|
||||
*/
|
||||
#define LZMA_VERSION_STABILITY LZMA_VERSION_STABILITY_STABLE
|
||||
|
||||
/** \brief Commit version number of the liblzma release */
|
||||
#ifndef LZMA_VERSION_COMMIT
|
||||
# define LZMA_VERSION_COMMIT ""
|
||||
#endif
|
||||
@@ -95,15 +106,16 @@
|
||||
LZMA_VERSION_COMMIT)
|
||||
|
||||
|
||||
/* #ifndef is needed for use with windres (MinGW or Cygwin). */
|
||||
/* #ifndef is needed for use with windres (MinGW-w64 or Cygwin). */
|
||||
#ifndef LZMA_H_INTERNAL_RC
|
||||
|
||||
/**
|
||||
* \brief Run-time version number as an integer
|
||||
*
|
||||
* Return the value of LZMA_VERSION macro at the compile time of liblzma.
|
||||
* This allows the application to compare if it was built against the same,
|
||||
* This allows an application to compare if it was built against the same,
|
||||
* older, or newer version of liblzma that is currently running.
|
||||
*
|
||||
* \return The value of LZMA_VERSION macro at the compile time of liblzma
|
||||
*/
|
||||
extern LZMA_API(uint32_t) lzma_version_number(void)
|
||||
lzma_nothrow lzma_attr_const;
|
||||
@@ -112,8 +124,10 @@ extern LZMA_API(uint32_t) lzma_version_number(void)
|
||||
/**
|
||||
* \brief Run-time version as a string
|
||||
*
|
||||
* This function may be useful if you want to display which version of
|
||||
* liblzma your application is currently using.
|
||||
* This function may be useful to display which version of liblzma an
|
||||
* application is currently using.
|
||||
*
|
||||
* \return Run-time version of liblzma
|
||||
*/
|
||||
extern LZMA_API(const char *) lzma_version_string(void)
|
||||
lzma_nothrow lzma_attr_const;
|
||||
|
||||
18
.CondaPkg/env/Library/include/lzma/vli.h
vendored
18
.CondaPkg/env/Library/include/lzma/vli.h
vendored
@@ -1,6 +1,7 @@
|
||||
/**
|
||||
* \file lzma/vli.h
|
||||
* \brief Variable-length integer handling
|
||||
* \note Never include this file directly. Use <lzma.h> instead.
|
||||
*
|
||||
* In the .xz format, most integers are encoded in a variable-length
|
||||
* representation, which is sometimes called little endian base-128 encoding.
|
||||
@@ -19,8 +20,6 @@
|
||||
*
|
||||
* This file has been put into the public domain.
|
||||
* You can do whatever you want with this file.
|
||||
*
|
||||
* See ../lzma.h for information about liblzma as a whole.
|
||||
*/
|
||||
|
||||
#ifndef LZMA_H_INTERNAL
|
||||
@@ -70,7 +69,8 @@ typedef uint64_t lzma_vli;
|
||||
* for example in the uncompressed_size and compressed_size variables.
|
||||
*
|
||||
* \return True if the integer is representable as VLI or if it
|
||||
* indicates unknown value.
|
||||
* indicates unknown value. False if the integer cannot be
|
||||
* represented as VLI.
|
||||
*/
|
||||
#define lzma_vli_is_valid(vli) \
|
||||
((vli) <= LZMA_VLI_MAX || (vli) == LZMA_VLI_UNKNOWN)
|
||||
@@ -86,12 +86,12 @@ typedef uint64_t lzma_vli;
|
||||
* integer has been encoded.
|
||||
*
|
||||
* \param vli Integer to be encoded
|
||||
* \param vli_pos How many VLI-encoded bytes have already been written
|
||||
* \param[out] vli_pos How many VLI-encoded bytes have already been written
|
||||
* out. When starting to encode a new integer in
|
||||
* multi-call mode, *vli_pos must be set to zero.
|
||||
* To use single-call encoding, set vli_pos to NULL.
|
||||
* \param out Beginning of the output buffer
|
||||
* \param out_pos The next byte will be written to out[*out_pos].
|
||||
* \param[out] out Beginning of the output buffer
|
||||
* \param[out] out_pos The next byte will be written to out[*out_pos].
|
||||
* \param out_size Size of the out buffer; the first byte into
|
||||
* which no data is written to is out[out_size].
|
||||
*
|
||||
@@ -121,15 +121,15 @@ extern LZMA_API(lzma_ret) lzma_vli_encode(lzma_vli vli, size_t *vli_pos,
|
||||
*
|
||||
* Like lzma_vli_encode(), this function has single-call and multi-call modes.
|
||||
*
|
||||
* \param vli Pointer to decoded integer. The decoder will
|
||||
* \param[out] vli Pointer to decoded integer. The decoder will
|
||||
* initialize it to zero when *vli_pos == 0, so
|
||||
* application isn't required to initialize *vli.
|
||||
* \param vli_pos How many bytes have already been decoded. When
|
||||
* \param[out] vli_pos How many bytes have already been decoded. When
|
||||
* starting to decode a new integer in multi-call
|
||||
* mode, *vli_pos must be initialized to zero. To
|
||||
* use single-call decoding, set vli_pos to NULL.
|
||||
* \param in Beginning of the input buffer
|
||||
* \param in_pos The next byte will be read from in[*in_pos].
|
||||
* \param[out] in_pos The next byte will be read from in[*in_pos].
|
||||
* \param in_size Size of the input buffer; the first byte that
|
||||
* won't be read is in[in_size].
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user