| block.h | block.h | |||
|---|---|---|---|---|
| skipping to change at line 33 | skipping to change at line 33 | |||
| * Some read some members, other functions write, and some do both. Only th e | * Some read some members, other functions write, and some do both. Only th e | |||
| * members listed for reading need to be initialized when the specified | * members listed for reading need to be initialized when the specified | |||
| * functions are called. The members marked for writing will be assigned | * functions are called. The members marked for writing will be assigned | |||
| * new values at some point either by calling the given function or by | * new values at some point either by calling the given function or by | |||
| * later calls to lzma_code(). | * later calls to lzma_code(). | |||
| */ | */ | |||
| typedef struct { | typedef struct { | |||
| /** | /** | |||
| * \brief Block format version | * \brief Block format version | |||
| * | * | |||
| * To prevent API and ABI breakages if new features are needed in | * To prevent API and ABI breakages when new features are needed, | |||
| * the Block field, a version number is used to indicate which | * a version number is used to indicate which fields in this | |||
| * fields in this structure are in use. For now, version must always | * structure are in use: | |||
| * be zero. With non-zero version, most Block related functions will | * - liblzma >= 5.0.0: version = 0 is supported. | |||
| * return LZMA_OPTIONS_ERROR. | * - liblzma >= 5.1.4beta: Support for version = 1 was added, | |||
| * which adds the ignore_check field. | ||||
| * | ||||
| * 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: | * Read by: | |||
| * - All functions that take pointer to lzma_block as argument, | * - All functions that take pointer to lzma_block as argument, | |||
| * including lzma_block_header_decode(). | * including lzma_block_header_decode(). | |||
| * | * | |||
| * Written by: | * Written by: | |||
| * - lzma_block_header_decode() | * - lzma_block_header_decode() | |||
| */ | */ | |||
| uint32_t version; | uint32_t version; | |||
| skipping to change at line 235 | skipping to change at line 240 | |||
| lzma_vli reserved_int3; | lzma_vli reserved_int3; | |||
| lzma_vli reserved_int4; | lzma_vli reserved_int4; | |||
| lzma_vli reserved_int5; | lzma_vli reserved_int5; | |||
| lzma_vli reserved_int6; | lzma_vli reserved_int6; | |||
| lzma_vli reserved_int7; | lzma_vli reserved_int7; | |||
| lzma_vli reserved_int8; | lzma_vli reserved_int8; | |||
| lzma_reserved_enum reserved_enum1; | lzma_reserved_enum reserved_enum1; | |||
| lzma_reserved_enum reserved_enum2; | lzma_reserved_enum reserved_enum2; | |||
| lzma_reserved_enum reserved_enum3; | lzma_reserved_enum reserved_enum3; | |||
| lzma_reserved_enum reserved_enum4; | lzma_reserved_enum reserved_enum4; | |||
| lzma_bool reserved_bool1; | ||||
| /** | ||||
| * \brief A flag to Block decoder to not verify the Check fiel | ||||
| d | ||||
| * | ||||
| * This field 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 | ||||
| * leave this to false. (A reason to set this to true is when the | ||||
| * file integrity is verified externally anyway and you want to | ||||
| * speed up the decompression, which matters mostly when using | ||||
| * SHA-256 as the integrity check.) | ||||
| * | ||||
| * If .version >= 1, read by: | ||||
| * - lzma_block_decoder() | ||||
| * - lzma_block_buffer_decode() | ||||
| * | ||||
| * Written by (.version is ignored): | ||||
| * - lzma_block_header_decode() always sets this to false | ||||
| */ | ||||
| lzma_bool ignore_check; | ||||
| lzma_bool reserved_bool2; | lzma_bool reserved_bool2; | |||
| lzma_bool reserved_bool3; | lzma_bool reserved_bool3; | |||
| lzma_bool reserved_bool4; | lzma_bool reserved_bool4; | |||
| lzma_bool reserved_bool5; | lzma_bool reserved_bool5; | |||
| lzma_bool reserved_bool6; | lzma_bool reserved_bool6; | |||
| lzma_bool reserved_bool7; | lzma_bool reserved_bool7; | |||
| lzma_bool reserved_bool8; | lzma_bool reserved_bool8; | |||
| } lzma_block; | } lzma_block; | |||
| skipping to change at line 308 | skipping to change at line 334 | |||
| * - LZMA_PROG_ERROR: Invalid arguments, for example | * - LZMA_PROG_ERROR: Invalid arguments, for example | |||
| * block->header_size is invalid or block->filters is NULL. | * block->header_size is invalid or block->filters is NULL. | |||
| */ | */ | |||
| extern LZMA_API(lzma_ret) lzma_block_header_encode( | extern LZMA_API(lzma_ret) lzma_block_header_encode( | |||
| const lzma_block *block, uint8_t *out) | const lzma_block *block, uint8_t *out) | |||
| lzma_nothrow lzma_attr_warn_unused_result; | lzma_nothrow lzma_attr_warn_unused_result; | |||
| /** | /** | |||
| * \brief Decode Block Header | * \brief Decode Block Header | |||
| * | * | |||
| * block->version should be set to the highest value supported by the | * block->version should (usually) be set to the highest value supported | |||
| * application; currently the only possible version is zero. This function | * by the application. If the application sets block->version to a value | |||
| * will set version to the lowest value that still supports all the feature | * higher than supported by the current liblzma version, this function will | |||
| s | * downgrade block->version to the highest value supported by it. Thus one | |||
| * required by the Block Header. | * should check the value of block->version after calling this function if | |||
| * block->version was set to a non-zero value and the application doesn't | ||||
| * otherwise know that the liblzma version being used is new enough to | ||||
| * support the specified block->version. | ||||
| * | * | |||
| * The size of the Block Header must have already been decoded with | * The size of the Block Header must have already been decoded with | |||
| * lzma_block_header_size_decode() macro and stored to block->header_size. | * lzma_block_header_size_decode() macro and stored to block->header_size. | |||
| * | * | |||
| * The integrity check type from Stream Header must have been stored | ||||
| * to block->check. | ||||
| * | ||||
| * block->filters must have been allocated, but they don't need to be | * block->filters must have been allocated, but they don't need to be | |||
| * initialized (possible existing filter options are not freed). | * initialized (possible existing filter options are not freed). | |||
| * | * | |||
| * \param block Destination for Block options. | * \param block Destination for Block options. | |||
| * \param allocator lzma_allocator for custom allocator functions. | * \param allocator lzma_allocator for custom allocator functions. | |||
| * Set to NULL to use malloc() (and also free() | * Set to NULL to use malloc() (and also free() | |||
| * if an error occurs). | * if an error occurs). | |||
| * \param in Beginning of the input buffer. This must be | * \param in Beginning of the input buffer. This must be | |||
| * at least block->header_size bytes. | * at least block->header_size bytes. | |||
| * | * | |||
| skipping to change at line 339 | skipping to change at line 372 | |||
| * unsupported options such as unsupported filters. This can | * unsupported options such as unsupported filters. This can | |||
| * happen also if block->version was set to a too low value | * happen also if block->version was set to a too low value | |||
| * compared to what would be required to properly represent | * compared to what would be required to properly represent | |||
| * the information stored in the Block Header. | * the information stored in the Block Header. | |||
| * - LZMA_DATA_ERROR: Block Header is corrupt, for example, | * - LZMA_DATA_ERROR: Block Header is corrupt, for example, | |||
| * the CRC32 doesn't match. | * the CRC32 doesn't match. | |||
| * - LZMA_PROG_ERROR: Invalid arguments, for example | * - LZMA_PROG_ERROR: Invalid arguments, for example | |||
| * block->header_size is invalid or block->filters is NULL. | * block->header_size is invalid or block->filters is NULL. | |||
| */ | */ | |||
| extern LZMA_API(lzma_ret) lzma_block_header_decode(lzma_block *block, | extern LZMA_API(lzma_ret) lzma_block_header_decode(lzma_block *block, | |||
| lzma_allocator *allocator, const uint8_t *in) | const lzma_allocator *allocator, const uint8_t *in) | |||
| lzma_nothrow lzma_attr_warn_unused_result; | lzma_nothrow lzma_attr_warn_unused_result; | |||
| /** | /** | |||
| * \brief Validate and set Compressed Size according to Unpadded Size | * \brief Validate and set Compressed Size according to Unpadded Size | |||
| * | * | |||
| * Block Header stores Compressed Size, but Index has Unpadded Size. If the | * Block Header stores Compressed Size, but Index has Unpadded Size. If the | |||
| * application has already parsed the Index and is now decoding Blocks, | * application has already parsed the Index and is now decoding Blocks, | |||
| * it can calculate Compressed Size from Unpadded Size. This function does | * it can calculate Compressed Size from Unpadded Size. This function does | |||
| * exactly that with error checking: | * exactly that with error checking: | |||
| * | * | |||
| skipping to change at line 481 | skipping to change at line 514 | |||
| * | * | |||
| * \return - LZMA_OK: Encoding was successful. | * \return - LZMA_OK: Encoding was successful. | |||
| * - LZMA_BUF_ERROR: Not enough output buffer space. | * - LZMA_BUF_ERROR: Not enough output buffer space. | |||
| * - LZMA_UNSUPPORTED_CHECK | * - LZMA_UNSUPPORTED_CHECK | |||
| * - LZMA_OPTIONS_ERROR | * - LZMA_OPTIONS_ERROR | |||
| * - LZMA_MEM_ERROR | * - LZMA_MEM_ERROR | |||
| * - LZMA_DATA_ERROR | * - LZMA_DATA_ERROR | |||
| * - LZMA_PROG_ERROR | * - LZMA_PROG_ERROR | |||
| */ | */ | |||
| extern LZMA_API(lzma_ret) lzma_block_buffer_encode( | extern LZMA_API(lzma_ret) lzma_block_buffer_encode( | |||
| lzma_block *block, lzma_allocator *allocator, | lzma_block *block, const lzma_allocator *allocator, | |||
| const uint8_t *in, size_t in_size, | ||||
| uint8_t *out, size_t *out_pos, size_t out_size) | ||||
| lzma_nothrow lzma_attr_warn_unused_result; | ||||
| /** | ||||
| * \brief Single-call uncompressed .xz Block encoder | ||||
| * | ||||
| * This is like lzma_block_buffer_encode() except this doesn't try to | ||||
| * compress the data and instead encodes the data using LZMA2 uncompressed | ||||
| * chunks. The required output buffer size can be determined with | ||||
| * lzma_block_buffer_bound(). | ||||
| * | ||||
| * 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. | ||||
| */ | ||||
| extern LZMA_API(lzma_ret) lzma_block_uncomp_encode(lzma_block *block, | ||||
| const uint8_t *in, size_t in_size, | const uint8_t *in, size_t in_size, | |||
| uint8_t *out, size_t *out_pos, size_t out_size) | uint8_t *out, size_t *out_pos, size_t out_size) | |||
| lzma_nothrow lzma_attr_warn_unused_result; | lzma_nothrow lzma_attr_warn_unused_result; | |||
| /** | /** | |||
| * \brief Single-call .xz Block decoder | * \brief Single-call .xz Block decoder | |||
| * | * | |||
| * This is single-call equivalent of lzma_block_decoder(), and requires tha t | * This is single-call equivalent of lzma_block_decoder(), and requires tha t | |||
| * the caller has already decoded Block Header and checked its memory usage . | * the caller has already decoded Block Header and checked its memory usage . | |||
| * | * | |||
| skipping to change at line 514 | skipping to change at line 564 | |||
| * which no data is written to is out[out_size]. | * which no data is written to is out[out_size]. | |||
| * | * | |||
| * \return - LZMA_OK: Decoding was successful. | * \return - LZMA_OK: Decoding was successful. | |||
| * - LZMA_OPTIONS_ERROR | * - LZMA_OPTIONS_ERROR | |||
| * - LZMA_DATA_ERROR | * - LZMA_DATA_ERROR | |||
| * - LZMA_MEM_ERROR | * - LZMA_MEM_ERROR | |||
| * - LZMA_BUF_ERROR: Output buffer was too small. | * - LZMA_BUF_ERROR: Output buffer was too small. | |||
| * - LZMA_PROG_ERROR | * - LZMA_PROG_ERROR | |||
| */ | */ | |||
| extern LZMA_API(lzma_ret) lzma_block_buffer_decode( | extern LZMA_API(lzma_ret) lzma_block_buffer_decode( | |||
| lzma_block *block, lzma_allocator *allocator, | lzma_block *block, const lzma_allocator *allocator, | |||
| const uint8_t *in, size_t *in_pos, size_t in_size, | const uint8_t *in, size_t *in_pos, size_t in_size, | |||
| uint8_t *out, size_t *out_pos, size_t out_size) | uint8_t *out, size_t *out_pos, size_t out_size) | |||
| lzma_nothrow; | lzma_nothrow; | |||
| End of changes. 7 change blocks. | ||||
| 14 lines changed or deleted | 65 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||