lzma_options_bcj Struct Reference

Options for BCJ filters. More...

`#include <bcj.h>`

## Data Fields

uint32_t | start_offset
| Start offset for conversions.

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

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

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

- lzma/bcj.h