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

Options for BCJ filters. More...

#include <bcj.h>

Public Attributes

uint32_t start_offset
 Start offset for conversions. More...
 

Detailed Description

Options for BCJ filters.

The BCJ filters never change the size of the data. Specifying options for them is optional: if pointer to options is NULL, default value is used. You probably never need to specify options to BCJ filters, so just set the options pointer to NULL and be happy.

If options with non-default values have been specified when encoding, the same options must also be specified when decoding.

Note
At the moment, none of the BCJ filters support LZMA_SYNC_FLUSH. If LZMA_SYNC_FLUSH is specified, LZMA_OPTIONS_ERROR will be returned. If there is need, partial support for LZMA_SYNC_FLUSH can be added in future. Partial means that flushing would be possible only at offsets that are multiple of 2, 4, or 16 depending on the filter, except x86 which cannot be made to support LZMA_SYNC_FLUSH predictably.

Definition at line 73 of file bcj.h.

Member Data Documentation

◆ start_offset

uint32_t lzma_options_bcj::start_offset

Start offset for conversions.

This setting is useful only when the same filter is used separately for multiple sections of the same executable file, and the sections contain cross-section branch/call/jump instructions. In that case it is beneficial to set the start offset of the non-first sections so that the relative addresses of the cross-section branch/call/jump instructions will use the same absolute addresses as in the first section.

When the pointer to options is NULL, the default value (zero) is used.

Definition at line 88 of file bcj.h.

Referenced by lzma_simple_coder_init(), lzma_simple_props_decode(), lzma_simple_props_encode(), lzma_simple_props_size(), message_filters_to_str(), and set_bcj().


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