Parolin 0.7.9 6796
Console (soon DLLs) to do a tar like job
Loading...
Searching...
No Matches
index_hash.h File Reference

Go to the source code of this file.

Typedefs

typedef struct lzma_index_hash_s lzma_index_hash
 Opaque data type to hold the Index hash.
 

Functions

 LZMA_API (lzma_index_hash *) lzma_index_hash_init(lzma_index_hash *index_hash
 Allocate and initialize a new lzma_index_hash structure.
 
 LZMA_API (void) lzma_index_hash_end(lzma_index_hash *index_hash
 Deallocate lzma_index_hash structure.
 
 LZMA_API (lzma_ret) lzma_index_hash_append(lzma_index_hash *index_hash
 Add a new Record to an Index hash.
 
 LZMA_API (lzma_vli) lzma_index_hash_size(const lzma_index_hash *index_hash) lzma_nothrow lzma_attr_pure
 Get the size of the Index field as bytes.
 

Variables

const lzma_allocator *allocator lzma_nothrow lzma_attr_warn_unused_result
 
const lzma_allocator *allocator lzma_nothrow
 
lzma_vli unpadded_size
 
const uint8_t * in
 
const uint8_t size_t * in_pos
 

Typedef Documentation

◆ lzma_index_hash

Opaque data type to hold the Index hash.

Function Documentation

◆ LZMA_API() [1/4]

LZMA_API ( lzma_index_hash * )
extern

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 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.

◆ LZMA_API() [2/4]

LZMA_API ( lzma_ret )
extern

Add a new Record to an Index hash.

Decode and validate the Index field.

Parameters
indexPointer to a lzma_index_hash structure
unpadded_sizeUnpadded Size of a Block
uncompressed_sizeUncompressed Size of a Block
Returns
- 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 used when lzma_index_hash_decode() has already been used.

After telling the sizes of all Blocks with lzma_index_hash_append(), the actual Index field is decoded with this function. Specifically, once decoding of the Index field has been started, no more Records can be added using lzma_index_hash_append().

This function doesn't use lzma_stream structure to pass the input data. Instead, the input buffer is specified using three arguments. This is because it matches better the internal APIs of liblzma.

Parameters
index_hashPointer to a lzma_index_hash structure
inPointer to the beginning of the input buffer
in_posin[*in_pos] is the next byte to process
in_sizein[in_size] is the first byte not to process
Returns
- 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 information given with lzma_index_hash_append().
  • LZMA_BUF_ERROR: Cannot progress because *in_pos >= in_size.
  • LZMA_PROG_ERROR

◆ LZMA_API() [3/4]

LZMA_API ( uint64_t ) const
extern

Get the size of the Index field as bytes.

This is needed to verify the Backward Size field in the Stream Footer.

Get the size of the Index field as bytes.

Calculate approximate memory requirements for raw encoder.

Calculate Unpadded Size.

Get the memory usage of decoder filter chain.

Calculate CRC64 using the polynomial from the ECMA-182 standard.

This function is used similarly to lzma_crc32(). See its documentation.

Get the size of the Index field as bytes.

Calculate approximate memory requirements for raw encoder.

Calculate Unpadded Size.

Get the memory usage of decoder filter chain.

Calculate CRC64 using the polynomial from the ECMA-182 standard.

This function is used similarly to lzma_crc32().

Parameters
bufPointer to the input buffer
sizeSize of the input buffer
crcPreviously 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.
Returns
Updated CRC value, which can be passed to this function again to continue CRC calculation.

◆ LZMA_API() [4/4]

LZMA_API ( void )
extern

Deallocate lzma_index_hash structure.

Variable Documentation

◆ in

const uint8_t* in

◆ in_pos

const uint8_t size_t* in_pos

◆ lzma_attr_warn_unused_result

const uint8_t size_t size_t in_size lzma_nothrow lzma_attr_warn_unused_result

◆ lzma_nothrow

◆ unpadded_size

lzma_vli unpadded_size