Rizin
unix-like reverse engineering framework and cli tools
lzma_index_iter Struct Reference

Iterator to get information about Blocks and Streams. More...

#include <index.h>

Public Attributes

struct {
   const lzma_stream_flags *   flags
 Pointer to Stream Flags. More...
 
   const void *   reserved_ptr1
 
   const void *   reserved_ptr2
 
   const void *   reserved_ptr3
 
   lzma_vli   number
 Stream number in the lzma_index. More...
 
   lzma_vli   block_count
 Number of Blocks in the Stream. More...
 
   lzma_vli   compressed_offset
 Compressed start offset of this Stream. More...
 
   lzma_vli   uncompressed_offset
 Uncompressed start offset of this Stream. More...
 
   lzma_vli   compressed_size
 Compressed size of this Stream. More...
 
   lzma_vli   uncompressed_size
 Uncompressed size of this Stream. More...
 
   lzma_vli   padding
 Size of Stream Padding after this Stream. More...
 
   lzma_vli   reserved_vli1
 
   lzma_vli   reserved_vli2
 
   lzma_vli   reserved_vli3
 
   lzma_vli   reserved_vli4
 
stream
 
struct {
   lzma_vli   number_in_file
 Block number in the file. More...
 
   lzma_vli   compressed_file_offset
 Compressed start offset of this Block. More...
 
   lzma_vli   uncompressed_file_offset
 Uncompressed start offset of this Block. More...
 
   lzma_vli   number_in_stream
 Block number in this Stream. More...
 
   lzma_vli   compressed_stream_offset
 Compressed start offset of this Block. More...
 
   lzma_vli   uncompressed_stream_offset
 Uncompressed start offset of this Block. More...
 
   lzma_vli   uncompressed_size
 Uncompressed size of this Block. More...
 
   lzma_vli   unpadded_size
 Unpadded size of this Block. More...
 
   lzma_vli   total_size
 Total compressed size. More...
 
   lzma_vli   reserved_vli1
 
   lzma_vli   reserved_vli2
 
   lzma_vli   reserved_vli3
 
   lzma_vli   reserved_vli4
 
   const void *   reserved_ptr1
 
   const void *   reserved_ptr2
 
   const void *   reserved_ptr3
 
   const void *   reserved_ptr4
 
block
 
union {
   const void *   p
 
   size_t   s
 
   lzma_vli   v
 
internal [6]
 

Detailed Description

Iterator to get information about Blocks and Streams.

Definition at line 43 of file index.h.

Member Data Documentation

◆ 

struct { ... } lzma_index_iter::block

Referenced by index_encode(), and is_equal().

◆ block_count

lzma_vli lzma_index_iter::block_count

Number of Blocks in the Stream.

If this is zero, the block structure below has undefined values.

Definition at line 70 of file index.h.

Referenced by is_equal().

◆ compressed_file_offset

lzma_vli lzma_index_iter::compressed_file_offset

Compressed start offset of this Block.

This offset is relative to the beginning of the lzma_index (i.e. usually the beginning of the .xz file). Normally this is where you should seek in the .xz file to start decompressing this Block.

Definition at line 132 of file index.h.

Referenced by is_equal().

◆ compressed_offset

lzma_vli lzma_index_iter::compressed_offset

Compressed start offset of this Stream.

The offset is relative to the beginning of the lzma_index (i.e. usually the beginning of the .xz file).

Definition at line 78 of file index.h.

Referenced by is_equal().

◆ compressed_size

lzma_vli lzma_index_iter::compressed_size

Compressed size of this Stream.

This includes all headers except the possible Stream Padding after this Stream.

Definition at line 94 of file index.h.

Referenced by is_equal().

◆ compressed_stream_offset

lzma_vli lzma_index_iter::compressed_stream_offset

Compressed start offset of this Block.

This offset is relative to the beginning of the Stream containing this Block.

Definition at line 162 of file index.h.

Referenced by is_equal().

◆ flags

const lzma_stream_flags* lzma_index_iter::flags

Pointer to Stream Flags.

This is NULL if Stream Flags have not been set for this Stream with lzma_index_stream_flags().

Definition at line 51 of file index.h.

Referenced by cmd_descs_generate.Arg::__str__().

◆ 

union { ... } lzma_index_iter::internal[6]

◆ number

lzma_vli lzma_index_iter::number

Stream number in the lzma_index.

The first Stream is 1.

Definition at line 62 of file index.h.

Referenced by is_equal().

◆ number_in_file

lzma_vli lzma_index_iter::number_in_file

Block number in the file.

The first Block is 1.

Definition at line 122 of file index.h.

Referenced by is_equal().

◆ number_in_stream

lzma_vli lzma_index_iter::number_in_stream

Block number in this Stream.

The first Block is 1.

Definition at line 154 of file index.h.

Referenced by is_equal().

◆ p

const void* lzma_index_iter::p

Definition at line 216 of file index.h.

◆ padding

lzma_vli lzma_index_iter::padding

Size of Stream Padding after this Stream.

If it hasn't been set with lzma_index_stream_padding(), this defaults to zero. Stream Padding is always a multiple of four bytes.

Definition at line 108 of file index.h.

Referenced by is_equal().

◆ reserved_ptr1

const void* lzma_index_iter::reserved_ptr1

Definition at line 53 of file index.h.

◆ reserved_ptr2

const void* lzma_index_iter::reserved_ptr2

Definition at line 54 of file index.h.

◆ reserved_ptr3

const void* lzma_index_iter::reserved_ptr3

Definition at line 55 of file index.h.

◆ reserved_ptr4

const void* lzma_index_iter::reserved_ptr4

Definition at line 207 of file index.h.

◆ reserved_vli1

lzma_vli lzma_index_iter::reserved_vli1

Definition at line 110 of file index.h.

◆ reserved_vli2

lzma_vli lzma_index_iter::reserved_vli2

Definition at line 111 of file index.h.

◆ reserved_vli3

lzma_vli lzma_index_iter::reserved_vli3

Definition at line 112 of file index.h.

◆ reserved_vli4

lzma_vli lzma_index_iter::reserved_vli4

Definition at line 113 of file index.h.

◆ s

size_t lzma_index_iter::s

Definition at line 217 of file index.h.

◆ 

struct { ... } lzma_index_iter::stream

Referenced by is_equal().

◆ total_size

lzma_vli lzma_index_iter::total_size

Total compressed size.

This includes all headers and padding in this Block. This is useful if you need to know how many bytes the Block decoder will actually read.

Definition at line 197 of file index.h.

Referenced by is_equal().

◆ uncompressed_file_offset

lzma_vli lzma_index_iter::uncompressed_file_offset

Uncompressed start offset of this Block.

This offset is relative to the beginning of the lzma_index (i.e. usually the beginning of the .xz file).

When doing random-access reading, it is possible that the target offset is not exactly at Block boundary. One will need to compare the target offset against uncompressed_file_offset or uncompressed_stream_offset, and possibly decode and throw away some amount of data before reaching the target offset.

Definition at line 147 of file index.h.

Referenced by is_equal().

◆ uncompressed_offset

lzma_vli lzma_index_iter::uncompressed_offset

Uncompressed start offset of this Stream.

The offset is relative to the beginning of the lzma_index (i.e. usually the beginning of the .xz file).

Definition at line 86 of file index.h.

Referenced by is_equal().

◆ uncompressed_size

lzma_vli lzma_index_iter::uncompressed_size

Uncompressed size of this Stream.

Uncompressed size of this Block.

You should pass this to the Block decoder if you will decode this Block. It will allow the Block decoder to validate the uncompressed size.

Definition at line 99 of file index.h.

Referenced by index_encode(), and is_equal().

◆ uncompressed_stream_offset

lzma_vli lzma_index_iter::uncompressed_stream_offset

Uncompressed start offset of this Block.

This offset is relative to the beginning of the Stream containing this Block.

Definition at line 170 of file index.h.

Referenced by is_equal().

◆ unpadded_size

lzma_vli lzma_index_iter::unpadded_size

Unpadded size of this Block.

You should pass this to the Block decoder if you will decode this Block. It will allow the Block decoder to validate the unpadded size.

Definition at line 188 of file index.h.

Referenced by index_encode(), and is_equal().

◆ v

lzma_vli lzma_index_iter::v

Definition at line 218 of file index.h.


The documentation for this struct was generated from the following file: