Rizin
unix-like reverse engineering framework and cli tools
|
Private definitions common to LZMA encoder and decoder. More...
Go to the source code of this file.
Macros | |
#define | POS_STATES_MAX (1 << LZMA_PB_MAX) |
#define | STATES 12 |
Total number of states. More... | |
#define | LIT_STATES 7 |
The lowest 7 states indicate that the previous state was a literal. More... | |
#define | update_literal(state) |
Indicate that the latest state was a literal. More... | |
#define | update_match(state) state = ((state) < LIT_STATES ? STATE_LIT_MATCH : STATE_NONLIT_MATCH) |
Indicate that the latest state was a match. More... | |
#define | update_long_rep(state) state = ((state) < LIT_STATES ? STATE_LIT_LONGREP : STATE_NONLIT_REP) |
Indicate that the latest state was a long repeated match. More... | |
#define | update_short_rep(state) state = ((state) < LIT_STATES ? STATE_LIT_SHORTREP : STATE_NONLIT_REP) |
Indicate that the latest state was a short match. More... | |
#define | is_literal_state(state) ((state) < LIT_STATES) |
Test if the previous state was a literal. More... | |
#define | LITERAL_CODER_SIZE 0x300 |
#define | LITERAL_CODERS_MAX (1 << LZMA_LCLP_MAX) |
Maximum number of literal coders. More... | |
#define | literal_subcoder(probs, lc, lp_mask, pos, prev_byte) |
#define | MATCH_LEN_MIN 2 |
#define | LEN_LOW_BITS 3 |
#define | LEN_LOW_SYMBOLS (1 << LEN_LOW_BITS) |
#define | LEN_MID_BITS 3 |
#define | LEN_MID_SYMBOLS (1 << LEN_MID_BITS) |
#define | LEN_HIGH_BITS 8 |
#define | LEN_HIGH_SYMBOLS (1 << LEN_HIGH_BITS) |
#define | LEN_SYMBOLS (LEN_LOW_SYMBOLS + LEN_MID_SYMBOLS + LEN_HIGH_SYMBOLS) |
#define | MATCH_LEN_MAX (MATCH_LEN_MIN + LEN_SYMBOLS - 1) |
#define | DIST_STATES 4 |
#define | get_dist_state(len) |
#define | DIST_SLOT_BITS 6 |
#define | DIST_SLOTS (1 << DIST_SLOT_BITS) |
#define | DIST_MODEL_START 4 |
#define | DIST_MODEL_END 14 |
#define | FULL_DISTANCES_BITS (DIST_MODEL_END / 2) |
#define | FULL_DISTANCES (1 << FULL_DISTANCES_BITS) |
#define | ALIGN_BITS 4 |
#define | ALIGN_SIZE (1 << ALIGN_BITS) |
#define | ALIGN_MASK (ALIGN_SIZE - 1) |
#define | REPS 4 |
Enumerations | |
enum | lzma_lzma_state { STATE_LIT_LIT , STATE_MATCH_LIT_LIT , STATE_REP_LIT_LIT , STATE_SHORTREP_LIT_LIT , STATE_MATCH_LIT , STATE_REP_LIT , STATE_SHORTREP_LIT , STATE_LIT_MATCH , STATE_LIT_LONGREP , STATE_LIT_SHORTREP , STATE_NONLIT_MATCH , STATE_NONLIT_REP } |
Functions | |
static bool | is_lclppb_valid (const lzma_options_lzma *options) |
Validates lc, lp, and pb. More... | |
static void | literal_init (probability(*probs)[LITERAL_CODER_SIZE], uint32_t lc, uint32_t lp) |
Private definitions common to LZMA encoder and decoder.
Definition in file lzma_common.h.
#define ALIGN_BITS 4 |
Definition at line 217 of file lzma_common.h.
#define ALIGN_MASK (ALIGN_SIZE - 1) |
Definition at line 219 of file lzma_common.h.
#define ALIGN_SIZE (1 << ALIGN_BITS) |
Definition at line 218 of file lzma_common.h.
#define DIST_MODEL_END 14 |
Definition at line 209 of file lzma_common.h.
#define DIST_MODEL_START 4 |
Definition at line 198 of file lzma_common.h.
#define DIST_SLOT_BITS 6 |
Definition at line 189 of file lzma_common.h.
#define DIST_SLOTS (1 << DIST_SLOT_BITS) |
Definition at line 190 of file lzma_common.h.
#define DIST_STATES 4 |
Definition at line 179 of file lzma_common.h.
#define FULL_DISTANCES (1 << FULL_DISTANCES_BITS) |
Definition at line 213 of file lzma_common.h.
#define FULL_DISTANCES_BITS (DIST_MODEL_END / 2) |
Definition at line 212 of file lzma_common.h.
#define get_dist_state | ( | len | ) |
Definition at line 182 of file lzma_common.h.
#define is_literal_state | ( | state | ) | ((state) < LIT_STATES) |
Test if the previous state was a literal.
Definition at line 100 of file lzma_common.h.
#define LEN_HIGH_BITS 8 |
Definition at line 162 of file lzma_common.h.
#define LEN_HIGH_SYMBOLS (1 << LEN_HIGH_BITS) |
Definition at line 163 of file lzma_common.h.
#define LEN_LOW_BITS 3 |
Definition at line 158 of file lzma_common.h.
#define LEN_LOW_SYMBOLS (1 << LEN_LOW_BITS) |
Definition at line 159 of file lzma_common.h.
#define LEN_MID_BITS 3 |
Definition at line 160 of file lzma_common.h.
#define LEN_MID_SYMBOLS (1 << LEN_MID_BITS) |
Definition at line 161 of file lzma_common.h.
#define LEN_SYMBOLS (LEN_LOW_SYMBOLS + LEN_MID_SYMBOLS + LEN_HIGH_SYMBOLS) |
Definition at line 164 of file lzma_common.h.
#define LIT_STATES 7 |
The lowest 7 states indicate that the previous state was a literal.
Definition at line 76 of file lzma_common.h.
#define LITERAL_CODER_SIZE 0x300 |
Each literal coder is divided in three sections:
Match byte is used when the previous LZMA symbol was something else than a literal (that is, it was some kind of match).
Definition at line 115 of file lzma_common.h.
#define LITERAL_CODERS_MAX (1 << LZMA_LCLP_MAX) |
Maximum number of literal coders.
Definition at line 118 of file lzma_common.h.
#define literal_subcoder | ( | probs, | |
lc, | |||
lp_mask, | |||
pos, | |||
prev_byte | |||
) |
Locate the literal coder for the next literal byte. The choice depends on
Definition at line 124 of file lzma_common.h.
#define MATCH_LEN_MAX (MATCH_LEN_MIN + LEN_SYMBOLS - 1) |
Definition at line 168 of file lzma_common.h.
#define MATCH_LEN_MIN 2 |
Definition at line 150 of file lzma_common.h.
#define POS_STATES_MAX (1 << LZMA_PB_MAX) |
Maximum number of position states. A position state is the lowest pos bits number of bits of the current uncompressed offset. In some places there are different sets of probabilities for different pos states.
Definition at line 28 of file lzma_common.h.
#define REPS 4 |
Definition at line 223 of file lzma_common.h.
#define STATES 12 |
Total number of states.
Definition at line 73 of file lzma_common.h.
#define update_literal | ( | state | ) |
Indicate that the latest state was a literal.
Definition at line 80 of file lzma_common.h.
#define update_long_rep | ( | state | ) | state = ((state) < LIT_STATES ? STATE_LIT_LONGREP : STATE_NONLIT_REP) |
Indicate that the latest state was a long repeated match.
Definition at line 92 of file lzma_common.h.
#define update_match | ( | state | ) | state = ((state) < LIT_STATES ? STATE_LIT_MATCH : STATE_NONLIT_MATCH) |
Indicate that the latest state was a match.
Definition at line 88 of file lzma_common.h.
#define update_short_rep | ( | state | ) | state = ((state) < LIT_STATES ? STATE_LIT_SHORTREP : STATE_NONLIT_REP) |
Indicate that the latest state was a short match.
Definition at line 96 of file lzma_common.h.
enum lzma_lzma_state |
This enum is used to track which events have occurred most recently and in which order. This information is used to predict the next event.
Events:
The event names are in from STATE_oldest_older_previous. REP means either short or long repeated match, and NONLIT means any non-literal.
Definition at line 56 of file lzma_common.h.
|
inlinestatic |
Validates lc, lp, and pb.
Definition at line 33 of file lzma_common.h.
References LZMA_LCLP_MAX, LZMA_PB_MAX, and options.
Referenced by is_options_valid(), lzma_decoder_init(), lzma_lzma_decoder_memusage(), and lzma_lzma_lclppb_encode().
|
inlinestatic |
Definition at line 130 of file lzma_common.h.
References assert(), bit_reset, i, LITERAL_CODER_SIZE, and LZMA_LCLP_MAX.
Referenced by lzma_decoder_reset(), and lzma_lzma_encoder_reset().