iPXE
|
Decompressor. More...
#include <deflate.h>
Data Fields | |
void * | resume |
Resume point. More... | |
enum deflate_format | format |
Format. More... | |
uint32_t | accumulator |
Accumulator. More... | |
uint32_t | rotalumucca |
Bit-reversed accumulator. More... | |
unsigned int | bits |
Number of bits within the accumulator. More... | |
unsigned int | header |
Current block header. More... | |
size_t | remaining |
Remaining length of data (e.g. More... | |
unsigned int | length_index |
Current length index within a set of code lengths. More... | |
unsigned int | length_target |
Target length index within a set of code lengths. More... | |
unsigned int | length |
Current length within a set of code lengths. More... | |
unsigned int | extra_bits |
Number of extra bits required. More... | |
size_t | dup_len |
Length of a duplicated string. More... | |
size_t | dup_distance |
Distance of a duplicated string. More... | |
struct deflate_alphabet | litlen |
Literal/length Huffman alphabet. More... | |
uint16_t | litlen_raw [DEFLATE_LITLEN_MAX_CODE+1] |
Literal/length raw symbols. More... | |
unsigned int | litlen_count |
Number of symbols in the literal/length Huffman alphabet. More... | |
struct deflate_alphabet | distance_codelen |
Distance and code length Huffman alphabet. More... | |
uint16_t | distance_codelen_raw [DEFLATE_DISTANCE_MAX_CODE+1] |
Distance and code length raw symbols. More... | |
unsigned int | distance_count |
Number of symbols in the distance Huffman alphabet. More... | |
uint8_t | lengths [((DEFLATE_LITLEN_MAX_CODE+1)+(DEFLATE_DISTANCE_MAX_CODE+1)+1)/2] |
Huffman code lengths. More... | |
void* deflate::resume |
Resume point.
Used as the target of a computed goto to jump to the appropriate point within the state machine.
Definition at line 162 of file deflate.h.
Referenced by deflate_finished(), and deflate_inflate().
enum deflate_format deflate::format |
Format.
Definition at line 164 of file deflate.h.
Referenced by deflate_inflate(), and deflate_init().
uint32_t deflate::accumulator |
Accumulator.
Definition at line 167 of file deflate.h.
Referenced by deflate_accumulate(), and deflate_consume().
uint32_t deflate::rotalumucca |
Bit-reversed accumulator.
Don't ask.
Definition at line 172 of file deflate.h.
Referenced by deflate_accumulate(), deflate_consume(), and deflate_decode().
unsigned int deflate::bits |
Number of bits within the accumulator.
Definition at line 174 of file deflate.h.
Referenced by deflate_accumulate(), deflate_consume(), deflate_decode(), and deflate_discard_to_byte().
unsigned int deflate::header |
size_t deflate::remaining |
Remaining length of data (e.g.
within a literal block)
Definition at line 179 of file deflate.h.
Referenced by deflate_inflate().
unsigned int deflate::length_index |
Current length index within a set of code lengths.
Definition at line 181 of file deflate.h.
Referenced by deflate_inflate().
unsigned int deflate::length_target |
Target length index within a set of code lengths.
Definition at line 183 of file deflate.h.
Referenced by deflate_inflate().
unsigned int deflate::length |
Current length within a set of code lengths.
Definition at line 185 of file deflate.h.
Referenced by deflate_inflate().
unsigned int deflate::extra_bits |
Number of extra bits required.
Definition at line 187 of file deflate.h.
Referenced by deflate_inflate().
size_t deflate::dup_len |
Length of a duplicated string.
Definition at line 189 of file deflate.h.
Referenced by deflate_inflate().
size_t deflate::dup_distance |
Distance of a duplicated string.
Definition at line 191 of file deflate.h.
Referenced by deflate_inflate().
struct deflate_alphabet deflate::litlen |
Literal/length Huffman alphabet.
Definition at line 194 of file deflate.h.
Referenced by deflate_alphabet_name(), and deflate_inflate().
uint16_t deflate::litlen_raw[DEFLATE_LITLEN_MAX_CODE+1] |
unsigned int deflate::litlen_count |
Number of symbols in the literal/length Huffman alphabet.
Definition at line 201 of file deflate.h.
Referenced by deflate_inflate().
struct deflate_alphabet deflate::distance_codelen |
Distance and code length Huffman alphabet.
The code length Huffman alphabet has a maximum Huffman symbol length of 7 and a maximum code value of 18, and is thus strictly smaller than the distance Huffman alphabet. Since we never need both alphabets simultaneously, we can reuse the storage space for the distance alphabet to temporarily hold the code length alphabet.
Definition at line 212 of file deflate.h.
Referenced by deflate_alphabet_name(), and deflate_inflate().
uint16_t deflate::distance_codelen_raw[DEFLATE_DISTANCE_MAX_CODE+1] |
unsigned int deflate::distance_count |
Number of symbols in the distance Huffman alphabet.
Definition at line 220 of file deflate.h.
Referenced by deflate_inflate().
uint8_t deflate::lengths[((DEFLATE_LITLEN_MAX_CODE+1)+(DEFLATE_DISTANCE_MAX_CODE+1)+ 1)/2] |
Huffman code lengths.
The literal/length and distance code lengths are constructed as a single set of lengths.
The code length Huffman alphabet has a maximum code value of 18 and the set of lengths is thus strictly smaller than the combined literal/length and distance set of lengths. Since we never need both alphabets simultaneously, we can reuse the storage space for the literal/length and distance code lengths to temporarily hold the code length code lengths.
Definition at line 237 of file deflate.h.
Referenced by deflate_inflate(), deflate_length(), and deflate_set_length().